该文件为电子科技大学学生完成的机器学习课程相关作业集合,包含多个实践项目和理论分析报告,旨在通过实际操作加深对机器学习算法和技术的理解与应用。
作业一(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数据集,通过在Matlab中输入[X,Y] = bodyfat_dataset; 来获取拥有13个属性和252个样本的数据。利用前200个样本来建立模型,并写出获得的模型。然后用后52个样本进行测试并汇报所得泛化误差。
编程实现对数回归,使用教材89页上的西瓜数据集3.0的结果。采用4折交叉验证法评估结果(此处共17个样本),可以选择去掉最后一个样本或者保留所有数据,并用其中的五个样本来做测试。在二维图上画出结果并标注类别差异,同时打印完整的代码。
作业二
根据信息增益准则构建决策树,基于表中编号为1、2、3、6、7、9、10、14、15、16和17的样本数据(包括色泽、根蒂、敲声及文理属性),给出log2(3)=1.585, log2(5)=2.322, log2(6)=2.585, log2(7)=2.807, log2(9)=3.17和log2(10)=3.322。使用表中编号为4、5、8、11、12及13的样本作为测试集,采用预剪枝策略构建决策树,并汇报验证集精度。
对上题中的训练数据进行后剪枝处理,并用同样的测试集合来评估模型性能并报告其准确性。
作业三(Matlab)
编写代码实现累积BP算法,在西瓜数据集2.0中使用训练样本建立一个单隐层网络,利用验证集计算均方误差。要求自己完成编程工作而非调用现有库函数。
作业四
下载安装libsvm后在西瓜数据集3.0a上应用线性核进行SVM模型的构建和测试(正类1-6与负类9-14作为训练样本,其余为测试)。对于不同的C值设置作出测试正确率变化图。同样地,在高斯核条件下重复上述步骤。
作业五
以西瓜数据集2.0中的前十六个样本进行朴素贝叶斯分类器的训练,并对第十七号样本做出预测结果分析,详细列出计算过程和推理依据。
假设x_k代表一个班级学生的分数分布:x_1=30, P1=0.5(对应五名学生);x_2=18, P2=mu(六人); x_3=20, P3=2mu (九位同学);以及x_4=23,P4为(0.5-3mu),十名成员。通过最大对数似然法求解参数 mu 的最优值。
作业六(Python)
使用PCA方法将Yale人脸数据集进行降维处理,并观察前二十和一百个特征向量所对应的图像变化情况。随机选取三张照片来对比分析不同维度下的视觉效果差异。