机器学习十大经典算法——线性回归

前言:为什么要做这期博客呢,主要有两个意愿,一个是想买米10,希望各位帅哥美女支持一下,觉得不错就打赏下,另为一个是想将十大经典算法的推导以及思路清清楚楚的理下,希望这整期教程对大家有帮助,第一期咱们讲线性回归。这期不似之前的实践或者接的单子,主要是将之前北风网学到的东西做一个汇总,若有不对或者缺点,希望大家提出,大家一起进步。

1:什么是线性回归

用来构建一个算法模型(函数)来做属性(x)与标签之间的映射关系,在算法的学习过程中,试图寻找函数,使得参数之间的关系拟合性最好。

2:图解

图中的点为数据的分布,直线为一个映射函数,如何才能找到一个最好的函数?

 将图中的d1+d2+d3+d4+d5+d6+d7累加在一起最小,是不是就是最好的函数?

所以我们构造出函数

 最终要求是计算出 的值,并选择最优的值构成算法公式,我们就要用到似然函数

 我们将原属数据进行变换,并且带入

这个式子表示当一定时,x取值下y的概率密度为多少,咱们需要的是越大越好,所以考虑取最大值,但是这个只是一个变量,咱们需要将所有的变量加起来,组成联合概率,联合概率等于各个概率的乘积,所以得出方程为:

 我们现在要求的是最大值,但是乘积的最大值很难求出,所以通过取对数,将乘法转化为加法

 最后化简得到

 我们要求的是最大值,之前的都是常量,所以我们将后的提取,得到

 之后我们有三种办法将变量求出,我这里主要用梯度下降的算法,进行求解,具体梯度下降我会在之后的系列中更新,梯度下降主要求偏导,我讲具体的过程列出

 之后有BDG,SDG,MBDG求出每次更新的

 到这算是大致的线性回归,其余的是优化过程,如果时间充裕,我将会一点一点出的,下面主要给大家一些代码,用这些代码可以快速的用sklearn库进行模型构建,具体可以看我

十大经典算法_家庭用电预测:线性回归算法(时间与功率&功率与电流之间的关系)(https://blog.csdn.net/qq_39309652/article/details/104349850

from sklearn.linear_model import LinearRegression
## 模型训练
lr = LinearRegression()
lr.fit(X_train, Y_train) ## 训练模型
## 模型校验
y_predict = lr.predict(X_test) ## 预测结果

print("训练R2:",lr.score(X_train, Y_train))
print("测试R2:",lr.score(X_test, Y_test))
mse = np.average((y_predict-Y_test)**2)
rmse = np.sqrt(mse)
print("rmse:",rmse)
发布了76 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39309652/article/details/104366657
今日推荐