文章目录
多特征实例–房价预测案例拓展
问题描述
我们除了知道房子的大小
x
1
x_1
x1外,还收集到了房间数
x
2
x_2
x2,楼层
x
3
x_3
x3,房子的年龄
x
4
x_4
x4等信息,这使得我们可以利用更多的信息来预测房价
y
y
y。
其中,
m
m
m表示样本数量,
n
n
n表示特征数量,
x
(
i
)
x^{(i)}
x(i)表示第
i
i
i个样本的输入,
x
j
(
i
)
x^{(i)}_j
xj(i)表示第
i
i
i个训练样本的第
j
j
j个特征。
假设函数形式及简化表示
在只有房屋大小一个特征时,假设函数为
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
h_\theta(x)=\theta_0+\theta_1x_1
hθ(x)=θ0+θ1x1
现在我们共拥有四个房屋特征,假设函数为
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
3
+
θ
4
x
4
h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\theta_4x_4
hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4
多个特征对应的假设函数一般形式:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
…
+
θ
n
x
n
h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+…+\theta_nx_n
hθ(x)=θ0+θ1x1+θ2x2+…+θnxn
简化表示:假设
x
0
=
1
x_0=1
x0=1
将各特征和对应参数看做
n
+
1
n+1
n+1维向量,分别为下图的
x
,
θ
\boldsymbol x,\boldsymbol \theta
x,θ
假设函数可以表示为参数向量的转置与特征向量的内积,即
h
θ
(
x
)
=
θ
T
x
h_\theta(x)=\boldsymbol \theta^T\boldsymbol x
hθ(x)=θTx
多元梯度下降
多元线性回归的假设函数,参数,损失函数及梯度下降方法如下图所示:
具体过程:
梯度下降的实用技巧
特征缩放/归一化
对于多特征的机器学习问题,如果这些特征的取值在相近的范围内,则梯度下降法就能更快的收敛。
例如,考虑取值范围相差较大的两个特征的情况,损失函数等值线将呈现出扁椭圆形,相差倍数越大,椭圆越扁。在这样的等值线上运行梯度下降,需要花很长一段时间,并可能来回波动,最终收敛到全局小值。
改善这一状况的有效做法是特征缩放,使两个特征的取值范围靠近。此时损失函数等值线更接近圆,从数学上可以证明,梯度下降会找到一条更直接的路径(迭代次数减少)通向全局最小值。
常用方法:除最大值,均值归一化等。
学习率 α \alpha α的选择
- 如何确保梯度下降在正常工作,何时收敛
方法一:如果梯度下降在正常工作,则每一次迭代后损失函数值都应该下降。绘制损失函数值关于迭代次数的图像,观察图像是否持续下降来判断是否工作正常;观察图像何时趋于平坦,判断梯度下降算法经多少次迭代后收敛(不同的机器学习问题所需的迭代次数相差较大)。
是否收敛的判断方法二:迭代后损失函数下降的值小于某一足够小的阈值 ε \varepsilon ε,则收敛。
但方法二中,对于不同的机器学习问题,合适的 ε \varepsilon ε的选取十分困难。
因此,对是否收敛的判断,推荐方法一。 - 如何选择学习率(步长)
α
\alpha
α
步长过大可能导致损失函数值不降反升。
实际应用中,可以尝试不同大小的 α \alpha α值,绘制相应的损失函数随步长变化的曲线,选择能使得损失函数快速下降的 α \alpha α值。---------------------就是玄学调参了hh
特征的构造和选取
继续讨论房价预测问题,已知特征有房子的临街宽度(frontage)和纵深(depth),用两者乘积得到的房屋面积(area)作为新特征建模,效果要好于用临街宽度和纵深两特征建模。因为更可能是房屋面积影响了房价而非临街宽度或纵深。
但如果买房子是为了开店,希望临街宽度稍微大些,纵深权重相应低些,此时则不宜用面积代替宽度和纵深。(不同的任务对应不同的算法)
有时通过定义新的特征,我们可能会得到一个更好地模型。
多项式回归
假设有以下关于房屋价格的数据集,我们当然可以选取单变量线性回归模型(一条直线)对其进行拟合,但显然效果不会太好。
紧接着,我们会考虑选用二次函数(如下图蓝色曲线)来进行拟合。但二次函数意味着,随着房屋大小的进一步增大,价格会有下降的趋势,这似乎并不符合客观事实。
然后,我们考虑选用三次函数(如下图绿色曲线)来进行拟合,看起来似乎比二次函数效果更好一些。
当然,三次函数随着房屋大小的进一步增大,价格会急剧上升,我们同样可以认为其不符合客观事实。我们还有很多选择,比如平方根函数。
正规方程求模型参数
梯度下降法通过多次迭代,找到全局最优解;正规方程(normal equation)直接求最优解(优点:迅速,不需要特征缩放;缺点也很明显,要求解析解一定存在)
正规方程一个最简单的例子如下图,令导数(偏导)等零,求得的
θ
\theta
θ就是最优解。
当有多个特征时,
θ
\theta
θ不再是简单标量,而是一个向量,此时求解本质就是矩阵运算。因为
y
=
X
∗
θ
\boldsymbol y=\boldsymbol X*\boldsymbol \theta
y=X∗θ,由矩阵运算(方程两边先左乘
X
T
X^T
XT再求逆,不直接对
X
X
X求逆因为逆可能不存在)可知
θ
=
(
X
T
X
)
−
1
X
T
y
\theta=(X^TX)^{-1}X^Ty
θ=(XTX)−1XTy
对比梯度下降与正规方程优缺点
n
在
10000
n在10000
n在10000以下量级时,可以考虑正规方程;更大量级时只能选取梯度下降。
正规方程在矩阵不可逆时的解决方法
有时会出现
X
T
X
X^TX
XTX不可逆的情况,此时可用伪逆代替逆进行计算。
不可逆产生的原因:特征之间存在线性相关关系(删去多余特征);特征数大于样本数(删去一些特征或者使用正则化regularization)。
20200909 16:38