赞
踩
本实验课程是计算机、人工智能、软件工程等专业学生的一门专业课程,通过实验,帮助学生更好地掌握数据挖掘与机器学习相关概念、技术、原理、应用等;通过实验提高学生编写实验报告、总结实验结果的能力;使学生对机器学习模型、算法等有比较深入的认识。要掌握的知识点如下:
推荐使用Python编程语言(允许使用numpy库,需实现详细实验步骤,不允许直接调用scikit-learn中关于回归、分类等高层API)。
基于California Housing Prices数据集,完成关于房价预测的线性回归模型训练、测试与评估。
首先有
a. 假设函数:
b. 参数:
c. 损失函数:
d. 优化目标:
m个样本,d维特征。为了计算简便,通常把w,b统一起来,给x增加一列1,b作为w0,有:
对于目标有
求导得
令导数为0
定义损失函数为
对J(w,b) 计算偏导得
参数按照如下进行更新
最后得到参数theta,最后使用模型进行预测。
(a)读取数据并查看数据组成
从这里可以看到数据有9个feature,8个类型为浮点其中有一个为文本。而对于文本数据,则需要进行OneHot编码。
(b)对文本进行onehot编码。
©删除无效值
这时候数据的预处理基本已经完成,接下来可以对features和label进行分割。
(d)分割特征和label
(e)划分训练集和测试集
按照3:7划分训练集和测试集
(f)训练模型
为了达到更好的训练效果,梯度下降的实现需要进行特征归一化。
通过查看损失函数和迭代次数的曲线,可以得知模型已经接近收敛。
(g)展示分别通过闭合形式参数和梯度下降预测的结果
(h)通过R2评估模型
根据预测的结果可以得知,使用正规方程的方法比梯度下降的效果更好。
(4)展示实验结果,比较两种求解方式的优劣
**在这次实验中,使用正规方程等方法比梯度下降更佳。**通过实验,总结出两种不同方法的特性。一般,当特征维数比较小时,正规方程计算是一个很好的方法,当特征维数比较多的时候,通常采用梯度下降方法。对复杂的模型来说,求导过程可能相当复杂,只能用梯度下降法不断向最优解处逼近。对于模型而言,往往超过10000维度则可以视为维度高,这时候也可以引入PCA降维等方法。
梯度下降 | 正规方程 |
---|---|
需要多次选择学习率 | 不需要选择学习率,不用迭代 |
需要多次迭代 | 需要计算(XTX)-1 |
当特征维度很大仍然适用 | 特征维度大时运行会比较慢 |
(5)讨论实验结果,分析各个特征与目标预测值的正负相关性
从结果上看,median_income特征与房价正相关,并且影响最大。
从结果上看,median_income特征与房价正相关,并且影响最大。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。