机器学习算法笔记:线性回归-Linear regression

1. 什么是线性回归?解决什么问题?

线性回归属于机器学习 -->监督学习–>回归任务–>线性回归

监督学习的主要任务:回归与分类。

回归的任务就是解决预测问题,如:预测明天天气温度、预测股票走势等。 通过训练学习,能够根据历史数据预测未来的结果。

什么是线性回归:如果 2 个或者多个变量之间存在“线性关系”,那么我们就可以通过历史数据,摸清变量之间的“套路”,建立一个有效的模型,来预测未来的变量结果。

线性回归模型是利用线性函数对一个或多个自变量和因变量(y)之间关系进行拟合的模型。

一元线性回归的推导

2. 优缺点

优点:建模速度快,不需要很复杂的计算,在数据量大的情况下依然运行速度很快。可以根据系数给出每个变量的理解和解释。

缺点:不能很好地拟合非线性数据。所以需要先判断变量之间是否是线性关系。

3. 意义

一方面,线性回归所能够模拟的关系其实远不止线性关系。线性回归中的“线性”指的是系数的线性,而通过对特征的非线性变换,以及广义线性模型的推广,输出和特征之间的函数关系可以是高度非线性的。另一方面,也是更为重要的一点,线性模型的易解释性使得它在物理学、经济学、商学等领域中占据了难以取代的地位。

4. 线性回归 VS 逻辑回归

1.线性回归只能用于回归问题,逻辑回归多用于分类问题。 2.线性回归要求因变量是连续性数值变量,而逻辑回归要求离散因变量 3.线性回归要求自变量和因变量呈线性关系,而逻辑回归不要求自变量和因变量呈线性关系 4.线性回归可以直观的表达自变量和因变量之间的关系,逻辑回归则无法表达变量之间的关系

代码示例

from sklearn import datasets

from sklearn.linear_model import LinearRegression

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split

loaded_data = datasets.load_boston()

X_data = loaded_data.data

y_data = loaded_data.target

X_train,X_test,y_train,y_test = train_test_split(X_data,y_data,test_size = 0.3,random_state = 42)

model = LinearRegression()

model.fit(X_train,y_train)

y_hat = model.predict(X_test)

from sklearn.metrics import r2_score

r2_score(y_hat,y_test)

r2_score(y_test,y_hat)

r2 = model.score(X_test,y_test)

plt.plot(range(len(y_test)),sorted(y_test),c='k',label = 'real')

plt.plot(range(len(y_hat)),sorted(y_hat),c='r',label = 'predict')

plt.legend()

plt.show()

参考

https://blog.csdn.net/qq_44971458/article/details/107092324 https://easyai.tech/ai-definition/machine-learning/#ai-ml-dl https://easyai.tech/ai-definition/linear-regression/#what

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。