TypeError:__init __获得了意外的关键字参数“ i”

问题描述

我正在尝试为机器学习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)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...