本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.使用LogisticRegression建立模型
1
2
3
4
5
6
| from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
iris = load_iris()
clf = LogisticRegression()
clf.fit(iris.data, iris.target)
|
2.计算准确率
👉方法一:
1
2
3
| predicted = clf.predict(iris.data)
acc = sum(iris.target == predicted) / len(iris.target)
print("acc = ", acc) #acc = 0.96
|
👉方法二:
1
2
3
4
| from sklearn.metrics import accuracy_score
acc = accuracy_score(iris.target, predicted)
print("acc = ", acc) #acc = 0.96
|
但在数据很不平衡时,准确率变得毫无意义。需要使用混淆矩阵来判断模型的性能。
3.建立混淆矩阵
1
2
3
4
| from sklearn.metrics import confusion_matrix
m = confusion_matrix(iris.target, predicted)
print(m)
|
1
2
3
| [[50 0 0]
[ 0 45 5]
[ 0 1 49]]
|
4.可视化呈现混淆矩阵
1
2
3
| import seaborn
seaborn.heatmap(m)
|
5.评估结果
计算查全率、查准率和F1:
1
2
3
| from sklearn.metrics import classification_report
print(classification_report(iris.target, predicted))
|
1
2
3
4
5
6
7
| precision recall f1-score support
0 1.00 1.00 1.00 50
1 0.98 0.90 0.94 50
2 0.91 0.98 0.94 50
avg / total 0.96 0.96 0.96 150
|
第0行的结果基于混淆矩阵:
第1行的结果基于混淆矩阵:
第2行的结果基于混淆矩阵:
6.代码地址
- 混淆矩阵