반응형
sns.clustermap을 이용하면 공분산 행렬의 히트 맵 표현을 플로팅하고 비지도 군집화인 hierarchical clustering algorithm을 실행하여 군집의 개수를 자동적으로 묶어주면서 가장 밀접하게 관련된 feature를 선별할수 있습니다.
corr_matrix = df.corr()
correlations_array = np.asarray(corr_matrix)
linkage = hierarchy.linkage(distance.pdist(correlations_array), \
method='average')
g = sns.clustermap(corr_matrix,row_linkage=linkage,col_linkage=linkage,\
row_cluster=True,col_cluster=True,figsize=(10,10),cmap='Greens')
plt.setp(g.ax_heatmap.yaxis.get_majorticklabels(), rotation=0)
plt.show()
label_order = corr_matrix.iloc[:,g.dendrogram_row.reordered_ind].columns
correlated_features = corr [ corr > 0.1 ] . index . tolist ()
corr_matrix = df [ correlated_features ] . corr ()
correlations_array = np . asarray ( corr_matrix )
연결 = 계층 . linkage ( distance . pdist ( correlations_array ), \
method = 'average' )
g = sns . clustermap ( corr_matrix , row_linkage = linkage , col_linkage = linkage , \
row_cluster = True , col_cluster = True , figsize = ( 6 , 6 ), cmap = 'Greens' )
plt . setp ( g . ax_heatmap . yaxis . get_majorticklabels (), 회전= 0 )
plt . 표시 ()
label_order = corr_matrix . iloc [:, g . dendrogram_row . reorder_ind ] . 열
print ( "상관 강도 :" )
print ( corr [ corr > 0.1 ] . sort_values ( 오름차순 = False ))
1 단계 : 가장 강력한 상관 관계가있는 feature 을 선택합니다.
2 단계 : 두 번째 상관관계의 feature를 가져 와서 이미 선택한 기능과 밀접하게 연관되어 있는지 (클러스터 맵에서 인접) 확인합니다.
3 단계 : (1) 목표 피처 수에 도달하거나 (2) 상관 관계가 높은 피처를 모두 사용할 때까지이 프로세스를 반복합니다.
참고 -
반응형
'딥러닝' 카테고리의 다른 글
l1 l2 tv loss 정리 (0) | 2020.12.07 |
---|---|
[CNN]tensorflow 없이 numpy로만 convolution 날코딩 하기 (0) | 2020.11.10 |
Gpu 인식 못했을 경우 확인코드 (0) | 2020.11.10 |
Classification metrics can t handle a mix of unknown and multiclass targets (0) | 2020.11.10 |
밸리데이션 로스(validation loss)가 안줄어들 경우 체크해볼 3가지 (0) | 2020.11.10 |
댓글