问题描述
我正在尝试为机器学习KNneighbors算法确定合适的邻居号。
from sklearn.neighbors import KNeighborsClassifier
training_accuracy = []
test_accuracy = []
n_s = range(1,11)
for i in n_s:
clf = KNeighborsClassifier(i=i)
clf.fit(X_train,y_train)
training_accuracy.append(clf.score(X_train,y_train))
test_accuracy.append(clf.score(X_test,y_test))
我得到的错误:
TypeError Traceback (most recent call last)
<ipython-input-12-80ad682622ef> in <module>
4 n_s = range(1,11)
5 for i in n_s:
----> 6 clf = KNeighborsClassifier(i=i)
7 clf.fit(X_train,y_train)
8 training_accuracy.append(clf.score(X_train,y_train))
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\neighbors\_classification.py in __init__(self,n_neighbors,weights,algorithm,leaf_size,p,metric,metric_params,n_jobs,**kwargs)
152 leaf_size=leaf_size,metric=metric,p=p,153 metric_params=metric_params,--> 154 n_jobs=n_jobs,**kwargs)
155 self.weights = _check_weights(weights)
TypeError: __init__() got an unexpected keyword argument 'i'
如何解决此问题?
解决方法
使用i
代替使用n_neighbors
参数。
for i in n_s:
clf = KNeighborsClassifier(n_neighbors=i)
检查documentation of KNeighborsClassifier。在这里,您可以看到没有i
参数,而n_neighbors
是第一个参数。
算法的语法在时间上几乎没有更新 现在这对我有用!!
> for i in range(1,40):
> knn = RandomForestClassifier(i)