【发布时间】:2019-03-22 07:29:45
【问题描述】:
我想用三个不同的分类器在 SciKit-Learn 中训练一个投票分类器。我在最后一步遇到问题,即打印分类器的最终准确度分数。
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
import pandas as pd
import numpy as np
log_clf=LogisticRegression()
rnd_clf=RandomForestClassifier()
svm_clf=SVC()
voting_clf=VotingClassifier(estimators=[('lr',log_clf),('rf',rnd_clf),('svc',svm_clf)],voting='hard')
voting_clf.fit(X_train, y_train)
运行以下代码时出现错误:
for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
clf.fit(X_train, y_train)
y_predict=clf.predict(X_test)
print(clf._class_._name_,accuracy_score(y_test,y_pred))
当我运行这段代码时,我得到以下信息:
AttributeError: 'LogisticRegression' object has no attribute '_class_'
我假设调用 'class' 有点过时,所以我将 class 更改为 'classes_':
for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
clf.fit(X_train, y_train)
y_pred=clf.predict(X_test)
print(clf.classes_._name_,accuracy_score(y_test,y_pred))
当我运行这段代码时,我得到以下信息:
AttributeError: 'numpy.ndarray' object has no attribute '_name_'
当我删除 'name' 并运行以下代码时,我仍然收到错误:
for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
clf.fit(X_train, y_train)
y_pred=clf.predict(X_test)
print(clf.classes_,accuracy_score(y_test,y_pred))
错误:
NameError: name 'accuracy_score' is not defined
看到导入的库,我不确定为什么没有定义 accuracy_score
【问题讨论】:
标签: python class printing scikit-learn classification