首页 > 解决方案 > Scikit-learn KNeighborsClassfier 自定义权重的形状是什么?

问题描述

我想知道自定义重量应该是什么形状。下面是我在 KNN 中使用自定义权重的代码。但是我遇到了这个错误。我不知道为什么会发生错误。

from sklearn.neighbors import KNeighborsClassfier

def custom_dist(train_ftr1, train_ftr2, test_ftr1, test_ftr2):
    return (train_ftr1 - test_ftr1) * (train_ftr2, test_ftr2)

# Split data
X_train = train.drop(['Label'], axis=1)
y_train = train['Label']

X_test = np.array([[test_ftr1, test_ftr2]])

# training model
knn = KNeighborsClassfier(n_neighbors=k, weights=custom_dist)
knn.fit(X_train, y_train)

# predict
y_test_pred = knn.predict(X_test)
TypeError: custom_dist() missing 3 required positional arguments: 'train_ftr2', 'test_ftr1', and 'test_ftr2'

标签: scikit-learnknn

解决方案


推荐阅读