机器学习算法单变量线性回归
1 预测数值型数据:回归
1.1 什么是回归?
-
大自然让我们回归到一定的区间范围之内;反过来说就是,有一个平均的水平,可以让突出的事物能向他靠拢。
-
回归是由达尔文(Charles Darwin)的表兄弟Francis Galton发明的。 Galton于1877年完成了第一次回归预测,目的是根据上一代豌豆种子(双亲)的尺寸来预测下一代豌豆种子(孩子)的尺寸。Galton在大量对象上应用了回归分析,甚至包括人的身高。他注意到,如果双亲的高度比平均高度高,他们的子女也倾向于比平均高度高,但尚不及双亲。孩子的高度向着平均高度回退(回归)。Galton在多项研究上都注意到这个现象,所以尽管这个英文单词跟数值预测没有任何关系,但这种研究方法仍被称作回归 2 。
-
那些高个子的后代的身高,有种回归到大众身高的趋势。 eg: 姚明身高2米26,叶莉身高1米90, 但是他们后代的身高是会逐渐回归到正常的身高水平。
1.2 回归的目的是预测数值型的目标值。
1.3 回归可以做什么事?
回归可以做任何事情。然而大多数公司常常使用回归法做一些比较沉闷的事情,例如:
- 销售量预测
- 制造缺陷预测。
当然也可以做有新意的应用,例如:
- 预测名人的离婚率。
- 预测所在地区的房价。
2 线性回归模型表示
2.1 线性回归的基本概念
- 回归,一般都是指线性回归(linear regression).
从我们最熟悉的开始, 已知两点,求直线公式设 y = ax+b, 带入两点,求得解析解为 y = 3x-60
- 回归方程 (regression equation): y = 3x-60
- 回归系数 (regression weights): 3和-60可以称为回归系数
- 回归: 求这些回归系数的过程
2.2 西安高新区房价预测
这个例子是预测住房价格的,我们要使用一个数据集,数据集包含西安市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。比方说,如果你朋友的房子是40平方米大小,你要告诉他们这房子能卖多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,也许你可以告诉你的朋友,他能以大约78万(人民币)左右的价格卖掉这个房子。这就是监督学习算法的一个例子。
m:表示训练集数据的总量
x:表示输入变量
y:表示输出变量
(x,y): 表示一个训练样本
(x(i),y(i)): 表示第i个训练样本
3 回归的一般方法
3.1 线性回归的一般步骤
对于一元线性回归(单变量线性回归)来说,学习算法为 y = ax + b
我们换一种写法: hθ(x) = θ0 + θ1x1
3.2 利用Sklearn做线性回归的预测
- 实现步骤
1). 模拟数据
2). 调用sklearn拟合数据, 把theta0 theta1求出来
3). 预测
from sklearn.linear_model import LinearRegression
import numpy as np
# 1).模拟数据
X = np.random.rand(100, 1)
Y &