python sklearn を使用して KNN アルゴリズムを使用して k 分割交差検証グリッド検索を実行しようとしています。検索のパラメーターは、近傍数 K と距離メトリックです。私はマハラノビスとセクリディアンを距離メトリックとして含めており、これらには指定する必要があるパラメーター、つまり V または VI (特徴の共分散行列またはこれの逆行列) があることを理解しています。
以下は私のコードです:
X_train, X_test, y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=10,stratify=y)
knn=KNeighborsClassifier()
grid_param={'n_neighbors':np.arange(1,51),'metric':['euclidean','minkowski','mahalanobis','seuclidean'],'metric_params':[{'V': np.cov(X_train)}]}
knn_gscv=GridSearchCV(knn,grid_param,cv=5)
knn_gscv.fit(X_train,y_train) (*)
(*) 行を実行すると、次のエラーがスローされます。
TypeError: __init__() が予期しないキーワード引数 'V' を取得しました
V の代わりに VI も試しましたが、同じエラーが発生しました。
以下の潜在的な解決策に出くわしましたが、これらは役に立ちません。
https://github.com/scikit-learn/scikit-learn/issues/6915
scikit-learn:グリッド検索の距離メトリックのパラメーターをどのように定義しますか
どんな助けでも大歓迎です!
これは私の最初の質問でもあるので、この点に関してもフィードバックがあれば役に立ちます。