pythonで、k近傍法において、k=3に固定し、 混同行列を生成し、この時の訓練データに対するPositive rate、つまり真陽性率を求めようとしています。
使用するデータはピマ・インディアン の糖尿病に関するデータでgroup_dataに格納されています。コードは以下の通りです。
Python
1from sklearn import preprocessing 2from sklearn.model_selection import train_test_split 3from sklearn.model_selection import cross_val_score 4from sklearn.neighbors import KNeighborsClassifier 5 6X = preprocessing.scale(group_data[["npreg","glu","bp","skin","bmi","ped","age"]]) 7y = group_data.type 8 9X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0, train_size=0.7) 10 11knn = KNeighborsClassifier(n_neighbors=3) 12scores = cross_val_score(knn, X_train, y_train, cv=10, scoring='accuracy') 13 14from sklearn.metrics import accuracy_score 15from sklearn.metrics import confusion_matrix 16# 混同行列を表示 17cmat = scores 18cmat
しかし、実行結果は
Python
1array([0.75 , 0.75 , 0.73913043, 0.69565217, 0.73913043, 2 0.69565217, 0.73913043, 0.65217391, 0.82608696, 0.65217391])
となり、本来求めたいはずの2行2列の行列ではない行列が出力されてしまいます。
どこを改善すれば良いのでしょうか。よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/21 17:07
2020/05/21 17:18
退会済みユーザー
2020/05/21 17:29