[机器学习]如何选择模型--cross validation

本文探讨了在机器学习中如何选择模型,主要关注特征选择、算法选取和参数设定。通过介绍交叉验证的概念,如使用训练数据集D_train、测试数据集D_cv,以及K折交叉验证的方法,阐述了如何评估和选择最佳模型。Andrew Ng的建议是将数据分为训练、交叉验证和测试集,并推荐使用5折或10折交叉验证来确保模型的泛化能力。

 对于一个机器学习系统,有以下几个问题需要解决:

1,如何选择feature?

2,该选用哪个算法?

3,给这个算法设置怎样的参数?

这些问题合在一起,就是“如何选择模型”的问题。


例如:可以实现分类系统的算法有 one-vs-all logistic regression,neural network,SVM等等,我们该用哪一个。


要解决个这个问题,我们就要用不同的组合(包括算法,参数,feature)对数据D_train进行training,得到不同的model。

要对这些model做测试,需使用新的数据D_cv。然后,对model的分类预测结果做一个评价(如何评价?


Cross Validation

### 机器学习模型评估、选择与验证的方法 #### 数据分割方法 在机器学习实践中,数据通常被划分为训练集和测试集两部分。一般做法是采用80%的数据作为训练集用于构建模型,剩余20%的数据作为测试集来检验模型的表现[^4]。 #### 性能度量标准 对于分类问题而言,常用的性能评价指标有准确率(Accuracy),精确率(Precision),召回率(Recall)以及F1分数(F1 Score)[^1];而对于回归类的任务,则更多依赖均方误差(Mean Squared Error,MSE),平均绝对误差(Mean Absolute Error,MAE)等统计学上的损失函数来进行衡量。 #### 十折交叉验证法 十折交叉验证(Cross Validation,CV)是一种广泛应用于监督式学习算法中的技术手段。具体操作方式为:将原始样本随机分成十个子集,在每次迭代过程中选取其中一个子集作为验证集合其余九个共同组成新的训练集完成一轮完整的建模流程并记录下相应的评分结果;最终取这十次实验所得分值的算术平均数作为该模型的整体效能估计值[^3]。 ```python from sklearn.model_selection import cross_val_score scores = cross_val_score(model, X, y, cv=10) print("Cross-validation scores:", scores.mean()) ``` #### 正则化处理 为了避免过拟合现象的发生,在建立复杂度较高的非线性映射关系之前往往会对目标函数施加一定的约束条件—即引入正则项(regularization term)—以此达到简化假设空间的目的。常见的形式包括Lasso(L1范数惩罚)和支持向量机(SVMs)里的软间隔最大化策略等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值