学习内容:线性回归练习
学习时间:2020/9/24
教学视频、数据集等:
https://www.bilibili.com/video/BV1Xt411s7KY
代码实现:
https://github.com/boxes757/Machine-learning-exercises
学习笔记:
练习题目
- 假设你是一家餐厅的CEO,正在考虑开一家分店,根据该城市的人口数据预测其利润
(我们拥有不同城市对应的人口数据以及利润) - 假设你现在打算卖房子,想知道房子能卖多少钱?
(我们拥有房子面积和卧室数量以及房子价格之间的对应数据)
相关工具(包)
numpy(计算,处理多维数组)、pandas(数据分析)、matplotlib.pyplot(绘图框架)
参数
-
代价函数(损失函数)
注:除以2m的原因
对于计算最小的J(θ)来说,在1/m的基础上除以2并不影响结果,而在利用梯度下降法时会利用到对θ进行求导,求导过程中平方求导后可以和1/2相乘而抵消 -
梯度下降函数
读取数据
示例:data = pd.read_csv(‘01-linear regression/ex1data1.txt’, names=[‘population’,‘profit’])
注:read_csv中有多种参数,对于不同文件需要改变参数,参考下面网站
https://www.cnblogs.com/traditional/p/12514914.html
- pycharm中.head()函数不显示
pandas工具中的.head()函数作用是显示前五行的数据,而在pycharm中想要输出数据都需要使用print。所以应该写作print(xxx.head())。
注:.tail()可以查看最后五行数据,.describe()可以查看数据的一些基本情况(平均值)
数据准备
-
特征归一化:数据中的不同特征值(除了目标值的各列)可能会对目标值产生不同程度的影响。特征归一化可以使各特征值处于同一数量级,提高模型的收敛速度和精确度。
常见的有两种方式:
Z-score标准化:
z = x i − μ δ z=\frac{x_{i}-\mu}{\delta} z=δxi−μ其中μ和δ为对应特征的均值和标准差,量化后的特征将分布在[-1,1]
最大最小标准化:
z = x i − m i n ( x i ) m a x ( x i ) − m i n (