【机器学习】我如何解释线性回归(欢迎指正讨论)
线性回归问题属于机器学习-监督学习中的回归问题。
回归问题是通过已知的变量来预测或者解释另一个变量,其输出是一个连续值。
线性是指使用线性模型去解决问题。
以房价预测为例。
问题是:已有往年的卖房案例数据,需要根据已知数据,预测现在这个案例的房子的价格。
我们最终要达到的目的是:预测值尽量贴近实际值。
为了简化问题,假设影响房价的三个因素:面积、层数和房龄(特征,Feature),那么可以将房价预测模型表述为:
其中,x1、x2、x3分别代表案例的面积、层数和房龄数据,w1、w2、w3分别代表这三个因素影响房价的权重,b表示当以上三个因素都为0时房子的价格,f(x)表述该案例的房价预测值。第一个公式是向量的表述方式。
现在就得到了一个线性回归模型,下一个问题就是要找到w和b的取值。
由于我们的目的是让预测值和实际值之间的差值尽量小,那么为了衡量这种差值,提出了cost function,其表述为:
cost function是关于w,b的函数,其中m代表的是训练样本的个数。此处用square error来表述差值,然后进行平均化处理,进而来表达整个训练样本上的差值情况。
根据我们的目的,下一步要做的:
为了解决这个问题,此处使用了梯度下降算法,直觉上理解就是,为了找到最低点,w和b的每一次变化都朝着让J减小的方向进行,知道找到最小值,该过程的数学表达式为:
以上两个公式可以让w和b朝着让J减小的方向变化,公式中的 α(学习率)表示w和b前进的步子大小:
α越大,前进的步子越大,但是过大可能会导致发散,无法到达最小点。
α越小,前进的步子越小,梯度下降的速度就会很慢。
所以选择一个合适的学习率是很重要的。
当到达最低点时,J关于w和b的导数为0,此时w和b不再变化,也就是找到了合适的w和b的值。
以上是一个简化的线性回归模型解决问题的过程,其中还存在很多问题:
如何选择合适的学习率?
如果特征之间的size相差较大要怎么处理?(Feature scaling)
如何检测是否梯度下降算法收敛?(learning curve / ε)
实际代码要如何实现?
……
以上问题后续继续编写
参考:
1、西瓜书
2、吴恩达老师的课程【官方中英】2025年公认最好的【吴恩达机器学习课程】附课件、代码及实战项目!!!--人工智能/机器学习/深度学习_哔哩哔哩_bilibili
3、ds老师、Chat老师……