Я пытаюсь выполнить k-кратный поиск по сетке перекрестной проверки с использованием алгоритма KNN с использованием python sklearn, при этом параметрами поиска являются количество соседей K и метрика расстояния. Я включаю mahalanobis и seuclidean в качестве показателей расстояния и понимаю, что у них есть параметр, который необходимо указать, а именно 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) (*)
Строка (*) выдает эту ошибку при выполнении:
Ошибка типа: __init__() получила неожиданный ключевой аргумент 'V'
Я также пробовал VI вместо V, но получаю ту же ошибку.
Я столкнулся с потенциальными решениями ниже, но они не помогают.
https://github.com/scikit-learn/scikit-learn/issues/ 6915а>
Scikit-learn: как мы определяем параметр метрики расстояния для поиска по сетке
Любая помощь приветствуется!
Это также мой первый вопрос, поэтому любая обратная связь будет полезна и в этом отношении.