“AttributeError: type object ‘RocCurveDisplay‘ has no attribute ‘from_predictions‘ “.
Posted Data+Science+Insight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“AttributeError: type object ‘RocCurveDisplay‘ has no attribute ‘from_predictions‘ “.相关的知识,希望对你有一定的参考价值。
"AttributeError: type object 'RocCurveDisplay' has no attribute 'from_predictions' ".
目录
"AttributeError: type object 'RocCurveDisplay' has no attribute 'from_predictions' ".
问题:
使用sklearn中的RocCurveDisplay函数from_predictions发生问题、因为版本低的问题。
import numpy as np
from sklearn import datasets
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.metrics import RocCurveDisplay
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
X, y = make_classification(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(
X, y, random_state=0)
clf = SVC(random_state=0).fit(X_train, y_train)
y_pred = clf.decision_function(X_test)
RocCurveDisplay.from_predictions(
y_test, y_pred)
plt.show()
解决:
版本更新一下、因为sklearn的版本低的缘故,需要升级。
scikit-learn 1.0之后才提供了
from_predictions这些函数、类;
pip install --upgrade scikit-learn
import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.metrics import RocCurveDisplay from sklearn.model_selection import train_test_split from sklearn.svm import SVC X, y = make_classification(random_state=0) X_train, X_test, y_train, y_test = train_test_split( X, y, random_state=0) clf = SVC(random_state=0).fit(X_train, y_train) y_pred = clf.decision_function(X_test) RocCurveDisplay.from_predictions( y_test, y_pred) plt.show()
完整错误:
"AttributeError: type object 'RocCurveDisplay' has no attribute 'from_from_estimator' ".
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-6-c15b1ea4b93e> in <module> 32 for i, (train, test) in enumerate(cv.split(X, y)): 33 classifier.fit(X[train], y[train]) ---> 34 viz = RocCurveDisplay.from_estimator( 35 classifier, 36 X[test], AttributeError: type object 'RocCurveDisplay' has no attribute 'from_estimator'
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于php和Perl语言。
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2.易于阅读:Python代码定义的更清晰。
3.易于维护:Python的成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
8.数据库:Python提供所有主要的商业数据库的接口。
9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
参考:Receiver Operating Characteristic (ROC) with cross validation — scikit-learn 1.1.2 documentation
以上是关于“AttributeError: type object ‘RocCurveDisplay‘ has no attribute ‘from_predictions‘ “.的主要内容,如果未能解决你的问题,请参考以下文章