机器学习-Python实践Day6(选择算法--算法评估矩阵(分类))

本文探讨了在机器学习中评估分类算法的多种方法,包括分类准确度、对数损失函数、AUC图、混淆矩阵和分类报告。虽然分类准确度是常见指标,但在类别不平衡的情况下可能产生误导。通过10折交叉验证和独立的训练、测试数据集,分别计算这些评估指标以更全面地理解模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


选择能够展示机器学习算法模型准确度的评估矩阵,是比较和选择算法模型最好的方式。
分类和回归有不同的评估矩阵。

1.1、分类算法矩阵

1.1.1、分类准确度

分类准确度就是将算法分类正确的样本数除以全量样本数得出的结果。通常情况下,准确度越高,分类模型越好。
不过有时候准确度高并不代表算法一定好,比如对某一地区某天的地震预测,假设有一堆特征作为地震分类的依据属性,分类的标签是发生地震和不发生地震。一个不加思考的分类器将每个评估样本都划分为不发生地震,不过它的分类准确度却高达99%。为什么会这样。因为数据分布太不均匀了。发生地震的样本太少,不发生地震的样本太多。这样训练出来的模型就不能仅仅根据准确度去评判了。
因此在面对分类标签不均匀的情况下,尽量避免使用准确度去评估模型。
①导入数据

# 导入数据
import pandas as pd

names=['preg','plas','pres','skin','test','mass','pedi','age','class']
df=pd.read_csv('pima_data.csv',names=names)
# X为特征集
X=df.iloc[:,0:8].values
# Y为标签集
Y=df.iloc[:,8].values
# 查砍前5行
df.head()

在这里插入图片描述
②通过10折交叉验证评估模型的准确率

# 通过10折交叉验证评估模型的准确率
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression

num_folds=10
seed=4
kfold=KFold(n_splits=num_folds,random_state=seed)
lr=LogisticRegression()
result=cross_val_score(lr,X,Y,cv=kfold)
print('通过10折交叉验证评估模型的准确率')
print('算法评估结果准确度:%.3f%%(%.3f%%)' %(result.mean()*100,result.std()*100))

在这里插入图片描述
③通过分离训练数据集和评估数据集评估模型的准确率

# 通过分离训练数据集和评估数据集评估模型的准确率
from sklearn.model_selection import
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值