在Python中使用线性回归算法
Scikit-Learn 涵盖了主流的机器学习算法,我们先介绍常用的几个库:
- lienar_model:线性模型算法库,包括Logistic回归算法等;
- neighbors:最邻近算法库;
- naive-bayes:朴素贝叶斯算法库;
- tree:决策树算法;
- svm:支持向量机算法;
- neural_network:神经网络算法。
如下,简单解释线性回归算法。其数学表达式如下:
^y=Wx
| |
| import numpy as np |
| from matplotlib import pyplot as plt |
| |
| x= np.linspace(-10, 10, 20) |
| segma= np.random.randn(20) |
| y= 3* x+ segma |
| |
| plt.scatter(x, y) |
| plt.show() |

同时,此处对线性回归算法进行简单的解释。
| |
| from sklearn import linear_model |
| |
| model= linear_model.LinearRegression() |
| model.fit(X, y) |
| |
| model.predit(x_) |
如果此时直接将我们上面的得到的x,y传入模型,代码会提示数据维度错误,这是因为Scikit-Learn中线性回归算法中的fit()方法需要传入x和y两组矩阵,即:
x:[[样本1],...,[样本n]]
y:[[样本1],...,[样本n]]
下面,我们可以利用的Python的List将序列变成矩阵。
| X= [[i] for i in x] |
| y= [[i] for i in y] |
| from sklearn import linear_model |
| model= linear_model.LinearRegression() |
| model.fit(X, y) |
| LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False) |
这样,我们就得到了算法所需的正确数据格式。但是,为了检验训练的结果,我们还需要一组测试用的x_。
| x_= [[1], [2]] |
| y_= model.predict(x_) |
| y_ |
| array([[2.8780171 ], |
| [5.90230701]]) |
我们可以通过display函数通过model.intercept_和model.coef_查看截距和W.
| display(model.intercept_) |
| display(model.coef_) |
| array([-0.1462728]) |
| |
| |
| |
| array([[3.02428991]]) |
我们还可以可视化模型的拟合效果。
| y__= model.predict(X) |
| plt.scatter(x, y__) |
| plt.plot(X, y__, 'g-') |
| plt.show() |

以上便是一次完整的简单的线性回归过程。
下面,我们讨论线性回归算法的优缺点:
优缺点 |
描述 |
优点 |
简单,容易理解和实现,可解释性强 |
缺点 |
表达复杂模型时不理想,且对非线性问题表现不好 |
应用场景 |
金融、气象等 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」