机器学习项目经验总结

关于特征处理

吴恩达老师的方法

吴恩达老师的视频中所提到的特征处理的一个原因是为了能够更好的进行梯度下降,我们试想一下,有一个多元的目标函数表达式,这个表达式里有很多特征,如果这些特征取值范围不一样,有的是0~1之间的小数,有的是几百几千的大数,那么如果我们进行梯度下降,则损失函数的等高线映射到平面上就是一个很扁的椭圆,如下图所示:
在这里插入图片描述
然后就会梯度下降的困难:(1)下降时不稳定 (2)下降速率特别慢,需要比较长的时间才可以达到最优解。
吴恩达老师建议是不需要把特征放缩到同一个范围,只是需要不同特征之间的范围很接近就可以了。

项目中的方法总结

在项目中,不同特征之间的取值相差很大,有些特征0.几,也有些特征能够达到几千的数值,选择的特征处理方法为标准化。

关于训练集测试集的划分

训练集和测试集的划分,一般划分有8:2,7:3 这就不多说了。主要的一个问题是在整个项目代码中,什么时候开始进行训练集和测试集的划分?
在平时的网课视频和资料中,都是将scikit-learn或者datasets里面自带的数据包里的数据调出来,然后标准化 /归一化处理,接下来进行训练集和测试集的划分。
但是考虑到实际项目中,我们最终需要得到一个在面对全新的数据集依旧表现非常好的模型,所以为了提升模型的泛化能力,我们需要在项目代码开始前,即在归一化/标准化之前进行训练集和测试集的划分。然后测试集使用训练集的信息进行数据处理。

关于模型评估

由于项目是分类问题,所以用到了分类问题中最长用的指标:accuracy, precision, recall, f1-score,和ROC曲线AUC值(这俩不仅仅是在二分类中可以用,在多分类也可以绘制,详情请见大佬博客:python实现二分类和多分类的ROC曲线)。

关于假设检验

西瓜书中提到“假设检验中的 ‘假设’ 是对学习器泛化错误率分布的某种判断或猜想,现实任务中我们并不知道学习器的泛化错误率,只能获取其测试错误率,但直观上,二者接近的可能性应比比较大,二者相差很远的可能性比较小。因此,可以通过测试错误率估推出泛化错误率的分布”。

Delong test

二分类中比较不同方法的显著性差异。
这里的不同方法有两种情况:
(1)同一个数据集使用不同的模型
(2)不同的数据集使用同一个模型

Friedman test 和 Nemenyi后续检验

Delong test只能是判断二分类任务,但是对于多分类任务,项目选择使用Friedman test and Nemenyi后续检验。Friedman检验可以比较在多个数据集上,不同算法性能是否有显著性差异,一般设置的P为0.05,如果小于0.05则认为具有显著性差异,这个时候需要Nemenyi后续检验,画出Critical Difference 图(CD图)。
关于Friedman test 在周志华西瓜书上有详细介绍。个人使用体会:这个检验只针对小的数据集数量和少的算法模型有用,猜测如果用较多的算法那么同一个算法在不同数据集上的排名等级就会有前几名和后几名的情况出现,用F检验可能会更好些。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kaggle是一个非常适合初学者去实操实战技能的网站,它提供了各种机器学习项目供用户参与。通过在Kaggle上完成项目,你可以评估自己的得分和排名,从而更清楚地了解自己的能力水平。此外,Kaggle还提供了许多项目的教程,可以帮助你学习各种操作并逐步熟悉机器学习的实践。在平时的学习中,我们更多地接触到的是理论知识,缺少实战的平台和项目练习。因此,通过在Kaggle上进行机器学习项目实战,你可以巩固自己的知识,并发现更多有用的技能。\[1\] 在Kaggle上,你可以找到各种机器学习项目,其中包括房价预测项目。在这个项目中,你可以使用各种机器学习算法来预测房价。例如,你可以使用sklearn库中的线性算法,它利用了BLAS算法库,具有高效率和性能优势。相比于集成算法,如GradientBoost等,线性算法的运行时间更短,例如在CrossValidate和Lasso时只需要20秒左右,而集成算法需要约200~300秒左右。\[2\] 在进行机器学习项目实战时,你可以创建多个模型来进行比较和评估。常见的模型包括K近邻分类器(KNeighborsClassifier)、逻辑回归(LogisticRegression)、高斯朴素贝叶斯分类器(GaussianNB)、决策树分类器(DecisionTreeClassifier)、随机森林分类器(RandomForestClassifier)、梯度提升分类器(GradientBoostingClassifier)和支持向量机分类器(SVC)等。通过创建多个模型并进行比较,你可以找到最适合解决问题的模型。\[3\] #### 引用[.reference_title] - *1* *3* [机器学习实战——kaggle 泰坦尼克号生存预测——六种算法模型实现与比较](https://blog.csdn.net/yangshaojun1992/article/details/106314927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Kaggle机器学习实战总结](https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/78937265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九久呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值