조롱박 상관계수를 사용하는 분층 집합 중의 가장 좋은 거리와 방법을 고려하다.
개시하다
층을 나누어 분류할 때 어느 거리와 방법을 사용하는 것이 좋은지 헷갈릴 수 있다.특히 정답을 준비하지 않은 집단 중에서는
이번에는 거리와 방법에 따라 파라핀 상관수를 계산해 집합의 타당성을 조사했다.이 값은 1에 가까울수록 좋다.(상세 정보여기.
데이터 준비
이번에는 아이리스의 데이터 집합을 사용했다.# irisのデータセットを得る。
from sklearn import datasets
dataset = datasets.load_iris()
dataset_data = dataset.data
dataset_target = dataset.target
target_names = dataset.target_names
dataset_labels = target_names[dataset_target]
# データの標準化を行う。
from sklearn.preprocessing import scale
data = scale(dataset_data)
파라핀 상관수를 계산하다
우선 분류에서 사용할 수 있는 거리와 방법을 보여 줍니다.데이터 형식에 맞는 몇 가지 물건을 준비하다.METORICS = ['euclidean', 'minkowski', 'cityblock', 'seuclidean',
'sqeuclidean', 'cosine', 'correlation', 'hamming',
'jaccard', 'chebyshev', 'canberra', 'braycurtis',
'mahalanobis']
METHODS = ['single', 'complete', 'average', 'weighted',
'centroid', 'median', 'ward']
# minkowski距離に使うノルム。デフォルトだと2で、ユークリッド距離となるので、とりあえず3。
P_NORM = 3
고핀 상관계수를 계산할 때scipy
의cophenet
를 사용했다.(상세 정보여기.# 距離と方法を変えてコーフェン相関係数(CPCC)を計算する。
import itertools
from scipy.spatial.distance import pdist
from scipy.cluster.hierarchy import linkage, cophenet
result = []
for metric, method in itertools.product(METORICS, METHODS):
distance_matrix = pdist(X=data, metric=metric, p=P_NORM)
linkage_matrix = linkage(y=distance_matrix, method=method)
cpcc, _ = cophenet(linkage_matrix, distance_matrix)
result.append([metric, method, cpcc])
데이터를 처리하기 위해 pandas
의Dataframe
에 계산 결과를 입력합니다.철검과 관련된 최대 거리와 방법을 얻었다.import pandas as pd
cpcc_df = pd.DataFrame(result, columns=['metric', 'method', 'CPCC'])
# コーフェン相関係数が最大である距離と方法を得る
best_metoric = cpcc_df.loc[cpcc_df['CPCC'].idxmax(), 'metric']
best_method = cpcc_df.loc[cpcc_df['CPCC'].idxmax(), 'method']
print ("距離:{0}, 方法:{1} でコーフェン相関係数が最大。".format(best_metoric,best_method))
실행 결과는 다음과 같습니다.距離:correlation, 方法:average でコーフェン相関係数が最大。
이것만으로는 잘 몰라서 seaborn
의heatmap
를 사용해 전체적으로 봤습니다.# DataFrameを整形。
cpcc_df = cpcc_df.set_index(keys=['metric', 'method']).unstack()
cpcc_df.columns = cpcc_df.columns.droplevel()
# heatmapで表示。
import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots(figsize=(8.5, 8))
ax = sns.heatmap(data=cpcc_df, annot=True)
fig.show()
heatmap
를 보면 방법보다 거리가 하키 상관수에 영향을 미치기 쉽다.이런 경향은 모인 데이터에 따라 달라질 수 있다.
단델크의 작도
계산 결과에서 얻은 가장 좋은 거리와 방법으로 단드도를 그리면 완성된다.# コーフェン相関係数が最大である距離と方法でデンドログラムを描く。
from scipy.cluster.hierarchy import linkage, dendrogram
best_linkage = linkage(y=data, metric=best_metoric, method=best_method)
fig, ax = plt.subplots(figsize=(5,13))
ax = dendrogram(Z=best_linkage,
orientation='right',
labels=dataset_labels)
fig.show()
최후
이번에 계산된 페놀과 관련된 수량은 이것만으로 완벽한 집합이 아니라 하나의 지표일 뿐이다.나는 여러 가지 지표를 사용한 집단을 목표로 공부하고 싶다.끝까지 함께 해주셔서 감사합니다.
Reference
이 문제에 관하여(조롱박 상관계수를 사용하는 분층 집합 중의 가장 좋은 거리와 방법을 고려하다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yasaigirai/items/c198a52652952d0f98de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 아이리스의 데이터 집합을 사용했다.
# irisのデータセットを得る。
from sklearn import datasets
dataset = datasets.load_iris()
dataset_data = dataset.data
dataset_target = dataset.target
target_names = dataset.target_names
dataset_labels = target_names[dataset_target]
# データの標準化を行う。
from sklearn.preprocessing import scale
data = scale(dataset_data)
파라핀 상관수를 계산하다
우선 분류에서 사용할 수 있는 거리와 방법을 보여 줍니다.데이터 형식에 맞는 몇 가지 물건을 준비하다.METORICS = ['euclidean', 'minkowski', 'cityblock', 'seuclidean',
'sqeuclidean', 'cosine', 'correlation', 'hamming',
'jaccard', 'chebyshev', 'canberra', 'braycurtis',
'mahalanobis']
METHODS = ['single', 'complete', 'average', 'weighted',
'centroid', 'median', 'ward']
# minkowski距離に使うノルム。デフォルトだと2で、ユークリッド距離となるので、とりあえず3。
P_NORM = 3
고핀 상관계수를 계산할 때scipy
의cophenet
를 사용했다.(상세 정보여기.# 距離と方法を変えてコーフェン相関係数(CPCC)を計算する。
import itertools
from scipy.spatial.distance import pdist
from scipy.cluster.hierarchy import linkage, cophenet
result = []
for metric, method in itertools.product(METORICS, METHODS):
distance_matrix = pdist(X=data, metric=metric, p=P_NORM)
linkage_matrix = linkage(y=distance_matrix, method=method)
cpcc, _ = cophenet(linkage_matrix, distance_matrix)
result.append([metric, method, cpcc])
데이터를 처리하기 위해 pandas
의Dataframe
에 계산 결과를 입력합니다.철검과 관련된 최대 거리와 방법을 얻었다.import pandas as pd
cpcc_df = pd.DataFrame(result, columns=['metric', 'method', 'CPCC'])
# コーフェン相関係数が最大である距離と方法を得る
best_metoric = cpcc_df.loc[cpcc_df['CPCC'].idxmax(), 'metric']
best_method = cpcc_df.loc[cpcc_df['CPCC'].idxmax(), 'method']
print ("距離:{0}, 方法:{1} でコーフェン相関係数が最大。".format(best_metoric,best_method))
실행 결과는 다음과 같습니다.距離:correlation, 方法:average でコーフェン相関係数が最大。
이것만으로는 잘 몰라서 seaborn
의heatmap
를 사용해 전체적으로 봤습니다.# DataFrameを整形。
cpcc_df = cpcc_df.set_index(keys=['metric', 'method']).unstack()
cpcc_df.columns = cpcc_df.columns.droplevel()
# heatmapで表示。
import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots(figsize=(8.5, 8))
ax = sns.heatmap(data=cpcc_df, annot=True)
fig.show()
heatmap
를 보면 방법보다 거리가 하키 상관수에 영향을 미치기 쉽다.이런 경향은 모인 데이터에 따라 달라질 수 있다.
단델크의 작도
계산 결과에서 얻은 가장 좋은 거리와 방법으로 단드도를 그리면 완성된다.# コーフェン相関係数が最大である距離と方法でデンドログラムを描く。
from scipy.cluster.hierarchy import linkage, dendrogram
best_linkage = linkage(y=data, metric=best_metoric, method=best_method)
fig, ax = plt.subplots(figsize=(5,13))
ax = dendrogram(Z=best_linkage,
orientation='right',
labels=dataset_labels)
fig.show()
최후
이번에 계산된 페놀과 관련된 수량은 이것만으로 완벽한 집합이 아니라 하나의 지표일 뿐이다.나는 여러 가지 지표를 사용한 집단을 목표로 공부하고 싶다.끝까지 함께 해주셔서 감사합니다.
Reference
이 문제에 관하여(조롱박 상관계수를 사용하는 분층 집합 중의 가장 좋은 거리와 방법을 고려하다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yasaigirai/items/c198a52652952d0f98de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
METORICS = ['euclidean', 'minkowski', 'cityblock', 'seuclidean',
'sqeuclidean', 'cosine', 'correlation', 'hamming',
'jaccard', 'chebyshev', 'canberra', 'braycurtis',
'mahalanobis']
METHODS = ['single', 'complete', 'average', 'weighted',
'centroid', 'median', 'ward']
# minkowski距離に使うノルム。デフォルトだと2で、ユークリッド距離となるので、とりあえず3。
P_NORM = 3
# 距離と方法を変えてコーフェン相関係数(CPCC)を計算する。
import itertools
from scipy.spatial.distance import pdist
from scipy.cluster.hierarchy import linkage, cophenet
result = []
for metric, method in itertools.product(METORICS, METHODS):
distance_matrix = pdist(X=data, metric=metric, p=P_NORM)
linkage_matrix = linkage(y=distance_matrix, method=method)
cpcc, _ = cophenet(linkage_matrix, distance_matrix)
result.append([metric, method, cpcc])
import pandas as pd
cpcc_df = pd.DataFrame(result, columns=['metric', 'method', 'CPCC'])
# コーフェン相関係数が最大である距離と方法を得る
best_metoric = cpcc_df.loc[cpcc_df['CPCC'].idxmax(), 'metric']
best_method = cpcc_df.loc[cpcc_df['CPCC'].idxmax(), 'method']
print ("距離:{0}, 方法:{1} でコーフェン相関係数が最大。".format(best_metoric,best_method))
距離:correlation, 方法:average でコーフェン相関係数が最大。
# DataFrameを整形。
cpcc_df = cpcc_df.set_index(keys=['metric', 'method']).unstack()
cpcc_df.columns = cpcc_df.columns.droplevel()
# heatmapで表示。
import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots(figsize=(8.5, 8))
ax = sns.heatmap(data=cpcc_df, annot=True)
fig.show()
계산 결과에서 얻은 가장 좋은 거리와 방법으로 단드도를 그리면 완성된다.
# コーフェン相関係数が最大である距離と方法でデンドログラムを描く。
from scipy.cluster.hierarchy import linkage, dendrogram
best_linkage = linkage(y=data, metric=best_metoric, method=best_method)
fig, ax = plt.subplots(figsize=(5,13))
ax = dendrogram(Z=best_linkage,
orientation='right',
labels=dataset_labels)
fig.show()
최후
이번에 계산된 페놀과 관련된 수량은 이것만으로 완벽한 집합이 아니라 하나의 지표일 뿐이다.나는 여러 가지 지표를 사용한 집단을 목표로 공부하고 싶다.끝까지 함께 해주셔서 감사합니다.
Reference
이 문제에 관하여(조롱박 상관계수를 사용하는 분층 집합 중의 가장 좋은 거리와 방법을 고려하다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yasaigirai/items/c198a52652952d0f98de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(조롱박 상관계수를 사용하는 분층 집합 중의 가장 좋은 거리와 방법을 고려하다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yasaigirai/items/c198a52652952d0f98de텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)