Python-简单的线性回归模型

简介: 线性回归模型

在Python中使用线性回归算法

Scikit-Learn 涵盖了主流的机器学习算法,我们先介绍常用的几个库:

  • lienar_model:线性模型算法库,包括Logistic回归算法等;
  • neighbors:最邻近算法库;
  • naive-bayes:朴素贝叶斯算法库;
  • tree:决策树算法;
  • svm:支持向量机算法;
  • neural_network:神经网络算法。

如下,简单解释线性回归算法。其数学表达式如下:
$$\boldsymbol{\hat y} = \boldsymbol{W} \boldsymbol{x}$$

# 导入所需库
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()

在这里插入图片描述

同时,此处对线性回归算法进行简单的解释。

# 从Scikit-Learn库导入线性回归算法
from sklearn import linear_model
# x训练线性回归模型
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查看截距和$\boldsymbol{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()

在这里插入图片描述

以上便是一次完整的简单的线性回归过程。

下面,我们讨论线性回归算法的优缺点:

优缺点 描述
优点 简单,容易理解和实现,可解释性强
缺点 表达复杂模型时不理想,且对非线性问题表现不好
应用场景 金融、气象等
目录
相关文章
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【视频】Python基于SVM和RankGauss的低消费指数构建模型
【视频】Python基于SVM和RankGauss的低消费指数构建模型
|
1天前
|
安全 Python
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
|
2天前
|
机器学习/深度学习 人工智能 数据可视化
python用回归模型对水泥生产关键温度点预测模型
python用回归模型对水泥生产关键温度点预测模型
|
4天前
|
机器学习/深度学习 TensorFlow API
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
|
4天前
|
vr&ar Python
Python ARIMA时间序列模型预测航空公司的乘客数量
Python ARIMA时间序列模型预测航空公司的乘客数量
17 0
|
5天前
|
机器学习/深度学习 数据采集 算法
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
10 1
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
|
5天前
|
数据采集 机器学习/深度学习 搜索推荐
使用Python实现推荐系统模型
使用Python实现推荐系统模型
16 1
|
5天前
|
机器学习/深度学习 自然语言处理 算法框架/工具
python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译
python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译
13 5
|
5天前
|
数据可视化 Python
R语言和Python对copula模型Gaussian、t、Clayton 和Gumbel族可视化理论概念和文献计量使用情况
R语言和Python对copula模型Gaussian、t、Clayton 和Gumbel族可视化理论概念和文献计量使用情况
|
6天前
|
人工智能 自然语言处理 Python
使用Python实现自然语言处理模型
使用Python实现自然语言处理模型
13 1