代码地址 Github
1 首先安装matplotlib
输入 sudo apt-get install python-matplotlib
安装matplotlib
一元线性回归
题目:
应用一元线性回归预测移动餐车的利润。假设你是一家餐饮连锁店的CEO,
考虑在不同的城市开辟新店。该餐饮店已在许多城市拥有移动餐车,现有各个城
市移动餐车的利润和城市人口的数据。这些数据将帮助你选择在哪个城市进行新
店扩张。请按要求完成实验。
数据集:
文件ex1data1.txt 为该实验部分的数据集,第一列表示城市人口(单位为万人),第二列表示该城市的移动餐车的利润(单位为万美元,若利润为负值,表示损失)。
步骤与要求:
1)在开始任务之前,进行数据的可视化对于了解数据特征是很有帮助的。请你导入数据并以人口为横标,利润为纵坐标画出散点图并观察数据分布特征。
(建议:用python 的matplotlib)
2)将线性回归参数初始化为0,然后计算代价函数(cost function)并求出初始值。
3)使用线性回归的方法对数据集进行拟合,并用梯度下降法求解线性回归参数。(eg:迭代次数=1500,alpha=0.01)
4)画出数据的拟合图形。
5)预测人口数量为35000 和70000 时,利润为多少。
1 直接用最小二乘法求解:
比较简单,直接显示执行结果:
2 梯度下降求解(实验要求我们用梯度下降求解:):
直线方程:
代价函数:
(除以m,是因为让代价数值变小一点,不然可能会超范围)
参数更新公式:
(除以m同样是为了避免数值过大)
需要对读入文件进行预处理:
x为:
y值为: