《机器学习》之《模型评估与选择》作业

本文探讨了在《机器学习》中模型评估与选择的相关概念。数据集包含1000个样本,通过留出法评估,估算出有约2.986×10^26种不同的训练和测试集划分方式。介绍了真正例率(TPR)、假正例率(FPR)、查准率(P)和查全率(R)之间的关系,指出TPR与R相等,而FPR与P无直接关系。同时,讨论了错误率与ROC曲线的关系,ROC曲线展示了模型在不同阈值下的性能,而错误率是固定阈值下的错误样本比例。

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

《机器学习》之《模型评估与选择》作业

数据集包含1000个样本,其中500个正例、500个反例,将其划分为包含70%样本的训练集和30%样本的测试集用于留出法评估,试估算共有多少种划分方式?

留出法评估直接将数据集随机划分为两个互斥的集合。

按照题意,70%样本作为训练集,30%样本作为测试集。

于是,根据分层采样原则,我们从500个正例中拿出350个作为训练集,剩下150个作为测试集;对于500个反例,我们也这样划分。

划分方式的总数= C n m × C n m C_n^m×C_n^m Cnm×Cnm,其中 n n n=500, m m m=350,使用Matlab的nchoosek函数计算组合数,[nchoosek(500,350)]2≈2.9859×10262

试述真正例率(TPR)、假正例率(FPR)与查准率(P)、查全率(R)之间的关系

首先我们要了解混淆矩阵,如下表所示:

真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

然后得到真正例率、假正例率、查准率、查全率的概念和公式:

  • 真正例率:真实正例被预测为正例的比例
  • 假正例率:真实反例被预测为正例的比例
  • 查准率:又叫精准率,预测为正例的实例中真实正例的比例
  • 查全率:又叫召回率,真实正例被预测为正例的比例
指标公式
真正例率 T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
假正例率 F P R = F P F P + T N FPR=\frac{FP}{FP+TN} FPR=FP+TNFP
查准率 P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
查全率 R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

显然,真正例率(TPR)和查全率(R)是相等的。而假正例率(FPR)和查准率(P)并没有直接的数值关系。

试述错误率与ROC曲线之间的关系

错误率:错分样本占全部样本的比例。

错误率的计算公式: E = F N + F P T P + F N + F P + T N = 1 − T P + T N T P + F N + F P + T N E=\frac{FN+FP}{TP+FN+FP+TN}=1-\frac{TP+TN}{TP+FN+FP+TN} E=TP+FN+FP+TNFN+FP=1TP+FN+FP+TNTP+TN

ROC曲线以假正例率(FPR)为横轴,以真正例率(TPR)为纵轴,表示了模型在不同截断点取值下的泛化性能。

错误率是在阈值固定的情况下得出的,ROC曲线是在阈值随着样本预测值变化的情况下得出的。ROC曲线上的每一个点,都对应着一个错误率。

ROC中越接近(1,0)点的越完美,常常需要计算错误率实现查准率(P)和查全率(R)的折中,而P、R则反映了我们所侧重部分的错误率。

目 录 ............................................................... I 实验 1 监督学习中的分类算法应用 .................................. - 1 - 实验目标 .................................................. - 1 - 实验软、硬件环境 .......................................... - 1 - 实验任务.................................................. - 2 - 实验 1.1 Python 开发环境搭建 ...................................... - 2 - 实验目标 .................................................. - 2 - 实验任务 .................................................. - 2 - (1)Python 安装配置 ............................. - 2 - (2)Pycharm 安装和配置 ............................ - 4 - (3)Python 中安装第三方库 ........................ - 11 - 实验 1.2 K-近邻算法实现 ......................................... - 14 - 实验目标 ................................................. - 14 - 实验任务 ................................................. - 14 - (1)电影类别分类 ................................. - 14 - (2)约会网站配对效果判定 ......................... - 14 - 实验 1.3 决策树算法实现 ......................................... - 16 - 实验目标 ................................................. - 16 - 实验任务 ................................................. - 16 - (1)银行房屋贷款申请 ............................. - 16 - (2)患者佩戴隐形眼镜类型预测 ..................... - 17 - 实验 1.4 朴素贝叶斯算法实现 ..................................... - 19 - 实验目标 ................................................. - 19 - 实验任务 ................................................. - 19 - (1)文本分类 1 ................................... - 19 - (2)文本分类 2 ................................... - 19 - 实验 1.5 Logistic 回归算法实现 ................................... - 21 - 实验目标 ................................................. - 21 - 目 目 录 II 实验任务 ................................................. - 21 - (1)构建 Logistic 回归分类模型 .................... - 21 - (2)预测患疝气病的马的存活问题 ................... - 21 - 实验 1.6 SVM 算法实现 ............................................ - 23 - 实验目标 ................................................. - 23 - 实验任务 ................................................. - 23 - (1)构建 SVM 分类模型 ............................. - 23 - 实验 1.7 监督学习中的分类算法综合应用 ........................... - 24 - 实验目标 ................................................. - 24 - 实验任务 ................................................. - 24 - (1)手写识别系统 ................................. - 24 - (2)电子邮件垃圾过滤 ............................. - 25 - 实验 2 监督学习中的回归算法应用 ................................. - 26 - 实验目标 ................................................. - 26 - 实验软、硬件环境 ......................................... - 26 - 实验任务 ................................................. - 26 - (1)鲍鱼年龄预测 ................................. - 26 - (2)乐高玩具价格预测 ............................. - 27 - 实验 3 无监督学习中的聚类算法应用 ............................... - 29 - 实验目标 ................................................. - 29 - 实验软、硬件环境 ......................................... - 29 - 实验任务 ................................................. - 29 - (1)使用 K 均值算法对数据进行聚类分析 ............. - 29 - (2)对地图上的点进行聚类 ......................... - 30 -
作业一(Matlab) 假设x=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20),y=( 2.94, 4.53, 5.96, 7.88, 9.02, 10.94, 12.14, 13.96, 14.74, 16.68, 17.79, 19.67, 21.20, 22.07, 23.75, 25.22, 27.17, 28.84, 29.84, 31.78).请写出拟合的直线方程,并画图(包括原数据点及拟合的直线),请打印出来。 请使用线性回归模型来拟合bodyfat数据。数据集介绍可阅读:https://www.mathworks.com/help/nnet/examples/body-fat-estimation.html 在matlab中,在命令行中输入[X,Y] = bodyfat_dataset; 即可获得一个拥有13个属性,252个样本的数据集。使用前200个样本来获得模型,并写出你所获得的模型。使用后52个样本做测试,汇报你所获得的泛化误差。 编程实现对数回归,并给出教材89页上的西瓜数据集3.0上的结果。要求采用4折交叉验证法来评估结果。因为此处一共17个样本,你可以去掉最后一个样本,也可以用所有数据,然后测试用5个样本。在汇报结果时,请说明你的选择。请在二维图上画出你的结果(用两种不同颜色或者形状来标注类别),同时打印出完整的代码。 作业二 采用信息增益准则,基于表4.2中编号为1、2、3、6、7、9、10、14、15、16、17的11个样本的色泽、根蒂、敲声、文理属性构建决策树。(本次作业可以用笔算,鼓励编程实现,但都需要列出主要步骤,其中log2(3)=1.585,log2(5)=2.322,log2(6)=2.585,log2(7)=2.807,log2(9)=3.17,log2(10)=3.322,log2(11)=3.459) 用表4.2中编号为4、5、8、11、12、13的样本做测试集,对上题的训练数据采用预剪枝策略构建决策树,并汇报验证集精度。 用表4.2中编号为4、5、8、11、12、13的样本做测试集,对题1所构建的决策树进行后剪枝,并汇报验证集精度。 作业三(Matlab) 试编程实现累积BP算法,在西瓜数据集2.0上(用训练数据)训练一个单隐层网络,用验证集计算出均方误差。要自己实现,不能直接调用现成的库函数。 作业四 下载并安装libsvm,http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ,在西瓜数据集3.0a上分别用线性核训练一个SVM。用正类1-6和负类9-14作为训练集,其余作为测试集。C取不同的值,其它参数设为默认值。作出测试正确率随C取值变化的图,C=[1 100 10000 10^6 10^8]。 换成高斯核(宽度设为1),重复上题的步骤。 作业五 以西瓜数据集2.0(见教材76页表4.1)中样本1--16为训练集训练一个朴素贝叶斯分类器,对测试样本17进行分类。请写出详细的计算过程。 假设x_k是一个班上学生的分数,对应的分数及其分布是 x_1=30, P1=0.5,一共有14个学生; x_2=18, P2=mu,有6个学生; x_3=20, P3=2mu,有9个学生; x_4=23, P4=0.5-3mu,有10个学生; 通过最大对数似然法求出mu的值。 作业六(Python) 1 使用PCA对Yale人脸数据集进行降维,并分别观察前20、前100个特征向量所对应的图像。请随机选取3张照片来对比效果。数据集http://vision.ucsd.edu/content/yale-face-database
### 关于头歌平台机器学习模型评估选择作业的解题思路 在解决头歌平台上的机器学习模型评估选择作业时,可以从以下几个方面入手: #### 1. 数据预处理的重要性 数据的质量直接影响到模型的表现。因此,在进行模型训练之前,应确保完成必要的数据清洗工作,包括去除噪声、填补缺失值以及标准化/归一化特征值[^1]。 #### 2. 模型选择依据 针对不同的业务场景和需求,合理挑选适合的算法至关重要。例如,对于分类任务可以考虑支持向量机(SVM),随机森林(Random Forests)或者神经网络;而对于回归分析,则可能更适合采用线性回归(Linear Regression),决策树(Decision Trees)[^2]。 #### 3. 性能度量标准设定 为了公平有效地比较各个候选方案的效果,需定义清晰准确的目标函数作为评价准则。常用的指标有精确率(Precision),召回率(Recall),F1分数(F1 Score),均方误差(Mean Squared Error,MSE)等等[^3]。 #### 4. 超参数调优策略 通过网格搜索(Grid Search)或贝叶斯优化(Bayesian Optimization)等方式探索最佳超参组合来提升最终预测能力。 以下是实现上述流程的一个简单Python代码示例: ```python from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.metrics import classification_report from sklearn.ensemble import RandomForestClassifier # 假设X为特征矩阵,y为目标变量 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) param_grid = { 'n_estimators': [50, 100], 'max_depth' : [None, 10, 20] } rfc = RandomForestClassifier() cv_rfc = GridSearchCV(estimator=rfc,param_grid=param_grid,cv=5) cv_rfc.fit(X_train,y_train) predictions = cv_rfc.predict(X_test) print(classification_report(y_test,predictions)) ``` 此脚本展示了如何利用随机森林分类器配合交叉验证来进行超参数调整,并输出测试集上各类别的性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

UestcXiye

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

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

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

打赏作者

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

抵扣说明:

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

余额充值