学习通课后习题 https://github.com/changmushu/Machine-Learning-Expermients/blob/master/Exam/Promble.md
(一)根据给定数据集,利用线性回归和多项式回归模型训练和测试一个数据预测模型,并对模型的性能和预测能力进行分析;
要求:
(1)线性回归,用1次曲线,2次曲线,并画出曲线观察;
(2)用多项式回归,并画出多项式次数n取不同值时的拟合曲线,并观察分析n取多少时,模型效果最好。
(二)利用线性回归模型进行波斯顿房价预测
利用马萨诸塞州波士顿郊区的房屋信息数据,利用线性回归模型训练和测试一个房价预测模型,并对模型的性能和预测能力进行测试分析;
要求:(1)画出误差变化曲线图;(2)画出预测值与真实值的对应变化曲线并分析
(三)利用逻辑回归模型进行莺尾花分类预测
(四)利用逻辑回归模型进行心脏病预测
心脏病是人类健康的头号杀手。全世界1/3的人口死亡是因心脏病引起的,而我国,每年有几十万人死于心脏病。 所以,如果可以通过提取人体相关的体侧指标,通过数据挖掘的方式来分析不同特征对于心脏病的影响,对于预测和预防心脏病将起到至关重要的作用。
要求:(1)画出混淆矩阵;(2)画出代价函数变化趋势曲线 ;(3)画出ROC曲线,并分析模型特性。
SVM向量机 使用SMO算法设计实现SVM的分类算法:
(1)给定一个有两个特征、包含两种类别数据集testSet.txt,然后用线性核函数的SVM算法进行分类;最后把SVM算法拟合出来的分隔超平面画出来。
(2)构建一个对非线性可分的数据集testSetRBF.txt进行有效分类的分类器,该分类器使用了径向基核函数K(x,y)如下所示。
其中,σ是用户定义的用于确定到达率(reach)或者说函数值跌落到0的速度参数。 上述高斯核函数将数据从其特征空间映射到更高维的空问,具体来说这里是映射到一个无穷维的空问。 首先,需要确定σ的大小,然后利用该核函数构建出一个分类器。 你可以尝试更换不同的σ参数以观察测试错误率、训练错误率、支持向量个数随k1的变化情况。例如给出当σ=0.1,或σ=1.3时的结果。最后把不同σ的SVM算法拟合出来的分隔超平面画出来。通过修改模型参数σ的值,可以调整分隔超平面的形状,观察结果有什么变化。比如σ值太大,太小对分隔效果有什么影响。
(3)网易财经上获得的上证指数的历史数据,爬取了20年的上证指数数据。根据给出当前时间前150天的历史数据,预测当天上证指数的涨跌。用sklearn提供的包完成。
(4)(选做)用支持向量机模型设计实现手写数字识别问题。可以用scklearn提供的包完成。
(1)基于信息熵准则进行划分选择的决策树算法的实现过程(不使用现有的机器学习包),并画出所生成决策树。数据集使用西瓜数据集3.0,实现语言为Python。
(2)试编程实现基于基尼指数进行划分选择的决策树算法,并画出生成的决策树,并为表4.2中数据生成预剪枝、后剪枝决策树,并与未剪枝决策树进行比较。实现语言为Python。
(3)人体运动状态预测 可穿戴式设备的流行,让我们可以更便利地使用传感器获取人体的各项数据,甚至生理数据。当传感器采集到大量数据后,我们就可以通过对数据进行分析和建模,通过各项特征的数值进行用户状态的判断,根据用户所处的状态提供给用户更加 精准、便利的服务。 数据介绍:我们现在收集了来自A,B,C,D,E 5位用户的可穿戴设备上的传感器数据,每位用户的数据集包含一个特征文件(a.feature)和一个标签文件(a.label)。 特征文件中每一行对应一个时刻的所有传感器数值,标签文件中每行记录了和特征文件中对应时刻的标记过的用户姿态,两个文件的行数相同,相同行之间互相对应。 假设现在出现了一个新用户,但我们只有传感器采集的数据,那么该如何得到 这个新用户的姿态呢?又或者对同一用户如果传感器采集了新的数据,怎么样根据新的数据判断当前 用户处于什么样的姿态呢?在明确这是一个分类问题的情况下,我们可以选定某种分类模型(或者说是 算法),通过使用训练数据进行模型学习,然后对每个测试样本给出对应的分类 结果。可选择经典的分类算法,如K近邻、决策树和朴素贝叶斯的原理和实现。
(1)按照BP网络结构,编程实现一个带有一个隐层的BP网络,实现对鸢尾花数据集的分类。通过BP网络各项参数的不同设置,观察BP算法的学习效果。观察比较BP网络各项参数变化对于训练结果的影响。
(2)手写数字识别是一个多分类问题,共有10个分类,每个手写数字图像的 类别标签是0~9中的其中一个数。利用sklearn来训练一个简单的全连接神经网络,即多层感知机(Multilayer perceptron,MLP)用于识别数据集DBRHD的手写数字。
(3)采本实例利用sklearn来训练一个K最近邻(k-Nearest Neighbor,KNN)分类器,用于识别数据集DBRHD的手写数字。邻居数量K影响分析:设置K为1、3、5、7的KNN分类器,对比他们的实验效果。
(4)比较KNN的识别效果与多层感知机的识别效果。