在 Pycharm 中使用 scikit-learn 未解析的属性引用“predict()”

ina*_*zed 5 python warnings pycharm scikit-learn

当使用 scikit-learn 中的决策树分类器时,文档显示您将存储分类器的变量重新分配给调用该fit()方法的自身输出:

clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
Run Code Online (Sandbox Code Playgroud)

但是,现在如果我调用预测方法:

clf.predict([[1,1]])
Run Code Online (Sandbox Code Playgroud)

Pycharm 温暖了我:

Unresolved attribute reference 'predict' for class 'object'
Run Code Online (Sandbox Code Playgroud)

您可以轻松地在 Pycharm 中查找 的声明fit(),该方法仅返回self,因此不需要重新分配,您可以将其删除,这样我就可以:

clf = tree.DecisionTreeClassifier()
clf.fit(X, Y)
Run Code Online (Sandbox Code Playgroud)

一切都运行顺利,但 Pycharm 没有给我关于后者的警告。我很好奇,因为我对 Python 和 Pycharm 相当陌生,为什么它会给我这个警告?有没有办法让这个 IDE 识别该方法返回self,因此仍然是具有相同方法的相同类型predict()?否则有什么办法可以消除这个警告吗?

Zac*_*ght 0

你会想要做这样的事情来避免警告

km = KMeans(n_clusters=size)
km.fit(x)
predictions = km.predict(x)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,fit返回一个对象类型。我不确定这是否是故意的。KMeans 初始值设定项返回正确的类型并且fit就位。