gpt4 book ai didi

Python-机器学习

转载 作者:太空狗 更新时间:2023-10-29 22:18:14 27 4
gpt4 key购买 nike

目前我正在尝试了解机器学习算法的工作方式,但我没有真正了解的一件事是预测标签的计算准确度与视觉混淆矩阵之间的明显差异。我会尽量解释清楚。

这是数据集的片段(这里你可以看到 9 个样本(在真实数据集中大约 4k),6 个特征和 9 个标签(代表的不是数字,而是一些含义,不能比较像 7 > 4 > 1)):

f1      f2      f3      f4      f5    f6   label
89.18 0.412 9.1 24.17 2.4 1 1
90.1 0.519 14.3 16.555 3.2 1 2
83.42 0.537 13.3 14.93 3.4 1 3
64.82 0.68 9.1 8.97 4.5 2 4
34.53 0.703 4.9 8.22 3.5 2 5
87.19 1.045 4.7 5.32 5.4 2 6
43.23 0.699 14.9 12.375 4.0 2 7
43.29 0.702 7.3 6.705 4.0 2 8
20.498 1.505 1.321 6.4785 3.8 2 9

出于好奇,我尝试了多种算法(线性、高斯、SVM(SVC、SVR)、贝叶斯等)。据我对手册的理解,就我而言,最好使用分类器(离散),而不是回归(连续)。使用常见的:

model.fit(X_train, y_train) 
model.score(X_test, y_test)

我得到了:

Lin_Reg: 0.855793988736
Log_Reg: 0.463251670379
DTC: 0.400890868597
KNC: 0.41425389755
LDA: 0.550111358575
Gaus_NB: 0.391982182628
Bay_Rid: 0.855698151574
SVC: 0.483296213808
SVR: 0.647914795849

连续算法取得了更好的结果。当我使用贝叶斯岭的混淆矩阵(必须将 float 转换为整数)来验证其结果时,我得到以下信息:

Pred  l1   l2   l3   l4   l5   l6   l7   l8   l9
True
l1 23, 66, 0, 0, 0, 0, 0, 0, 0
l2 31, 57 1, 0, 0, 0, 0, 0, 0
l3 13, 85, 19 0, 0, 0, 0, 0, 0
l4 0, 0, 0, 0 1, 6, 0, 0, 0
l5 0, 0, 0, 4, 8 7, 0, 0, 0
l6 0, 0, 0, 1, 27, 36 7, 0, 0
l7 0, 0, 0, 0, 2, 15, 0 0, 0
l8 0, 0, 0, 1, 1, 30, 8, 0 0
l9 0, 0, 0, 1, 0, 9, 1, 0, 0

是什么让我明白 85% 的准确率是错误的。这怎么解释呢?这是因为float/int转换吗?

感谢任何直接的回答/链接等。

最佳答案

您在这里混合了机器学习的两个截然不同的概念:回归和分类。回归通常处理连续值,例如温度或股票市场值(value)。另一方面,分类可以告诉您记录中有哪些鸟类——这正是您要使用混淆矩阵的地方。它会告诉您算法正确预测标签的次数以及出错的地方。您正在使用的 SciPy 对两者都有单独的部分。

对于分类和回归问题,您可以使用不同的指标对其进行评分,因此永远不要假设它们具有可比性。正如@javad 指出的那样,“确定系数”与准确性有很大不同。我还建议阅读 precision and recall .

在您的情况下,您显然存在分类问题,因此应该予以处理。另外,请注意 f6 看起来它有一组离散的值。

如果您想快速尝试不同的方法,我可以推荐例如H2O , 除了漂亮的 API 之外,它还具有出色的用户界面并允许进行大规模并行处理。 XGBoost也很优秀。

关于Python-机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40178202/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com