如何提高我的逻辑回归模型的准确性和精确度?

Posted

技术标签:

【中文标题】如何提高我的逻辑回归模型的准确性和精确度?【英文标题】:How to Increase accuracy and precision for my logistic regression model? 【发布时间】:2021-06-02 23:52:53 【问题描述】:

我的机器学习模型数据集是具有 300 行和 14 个属性的 cleaveland 数据库——预测一个人是否患有心脏病。 但目的是在逻辑回归上创建一个分类模型...... 我对数据进行了预处理,并使用 x_train、Y_train、X_test、Y_test.. 运行了模型,并获得了 82% 的平均准确率......

因此,为了提高准确性,我确实删除了彼此高度相关的特征 [因为它们会提供相同的信息]

我做了 RFE[递归特征消除]

其次是PCA[主成分分析]进行降维...

我仍然没有发现数据集的准确性更好..

为什么会这样?

另外,为什么我的模型每次都显示不同的准确度?是不是每次都取不同的x_train,Y_train,X_test,Y_test?

我应该改变我的模型以获得更好的准确性吗? 80% 的平均准确率是好是坏?

【问题讨论】:

【参考方案1】:

尝试用尽网格搜索或随机参数优化来调整您的超参数。

见:Documentation for hyperparameter tuning with sklearn

【讨论】:

【参考方案2】:

我应该改变我的模型以获得更好的准确性吗?

至少你可以尝试。正确模型的选择高度依赖于具体的用例。尝试其他方法绝不是一个坏主意:)

另一个想法是通过 PCA 获得方差最大的两个特征。如果您的数据是线性可分的,那么您可以在 2D 空间中绘制它以获得更好的感觉。

还有为什么我的模型每次显示的准确率都不一样?

我假设您正在使用 scikit-learn 的 train_test_split 方法,所以拆分您的数据? 默认情况下,此方法随机打乱您的数据。您可以将random_state 参数设置为固定值以获得可重现的结果。

【讨论】:

嗨,伙计!有没有办法通过逻辑决策提高准确性?我尝试使用 PCA 进行绘图,但线性分离似乎有点困难...... 好吧,据我所知,逻辑回归是一个线性分类器,所以它最适合线性可分离特征(显然:))为了解决这个问题,你可以尝试坚持这个帖子:***.com/questions/55937244/… 因为我不知道这是否有帮助,如果你能告诉我你是否可以提高你的准确性,我将不胜感激。 谢谢...上面的帖子并不能帮助我解决逻辑回归问题...但它让我对使用非线性回归有了更好的了解...我很感激。谢谢:)【参考方案3】:

请参阅 (https://github.com/dnishimoto/python-deep-learning/blob/master/Credit%20Card%20Defaults%20-%20hyperparameter.ipynb) 以提高您进行超调以及降维和缩放的准确性。超调正在寻找最佳参数。而降维是删除对精度降低噪声没有贡献的特征。缩放或归一化可减少分布中的噪声。

查看 GridSearch 以找到最佳参数

【讨论】:

以上是关于如何提高我的逻辑回归模型的准确性和精确度?的主要内容,如果未能解决你的问题,请参考以下文章

使用逻辑回归进行特征选择

逻辑回归模型

为啥我的逻辑回归模型准确率达到 100%?

R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)

在 Python 中使用逻辑回归的预测向量的准确度得分

快速上手逻辑回归模型?读这篇就够了(Python机器学习)