ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python机器学习之简单线性回归分析

2021-05-13 23:02:06  阅读:129  来源: 互联网

标签:直线 机器 Python 50 np 拟合 线性 model


简单线性回归

​ 这一节我们来介绍一下最广为人知的线性回归模型——将数据拟合成一条直线。直线方程为:y = ax + b,其中a是直线的斜率,b是直线的截距。

数据分析

首先导入常用的数据库:

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np

接下来,我们将直线方程的斜率定为2,截距定为5来进行实验。

#np.random.RandomState()是伪随机数发生器,会产生一个随机状态的种子
#RandomState(1)是将种子设置为1,只要种子相同,产生的随机数序列就是相同的。
rng = np.random.RandomState(1)
#将随机数赋给rng
x = 10 * rng.rand(50)
#rand(50)返回50个一维数组,即50个随机数
y = 2 * x - 5 + rng.randn(50)
#randn函数返回50个随机数,且具有标准正态分布。
plt.scatter(x,y);
#生成一个散点图

线性回归数据图如下:

在这里插入图片描述

拟合数据

下一步我们用Scikit-Learn的LinearRegression评估器来拟合数据, 并获得最佳拟合直线。我们的操作步骤分为以下几步:

1.建立线性回归评估器

from sklearn.linear_model import LinearRegression
#线性回归,安装scikit-learn包
model = LinearRegression(fit_intercept=True)
#LinearRegression → 线性回归评估器,用于拟合数据得到拟合直线fit_intercept参数为True代表计算截距

2.拟合直线

model.fit(x[:, np.newaxis], y)
#model.fit(x,y) → 拟合直线,参数分别为x与y
#x[:,np.newaxis] → 将数组变成(n,1)形状

3.创建测试数据

xfit = np.linspace(0,10,1000)
# 这是将0到10内的数分成1000份
yfit = model.predict(xfit[:, np.newaxis])
# 创建测试数据xtest,并根据拟合曲线求出ytest
# model.predict → 预测

4.生成数据图

plt.scatter(x,y)
#生成一个散点图
plt.plot(xfit,yfit);
#生成直线

最终生成的线性回顾模型图如下:

在这里插入图片描述

标签:直线,机器,Python,50,np,拟合,线性,model
来源: https://blog.csdn.net/qq_48508092/article/details/116769291

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有