一元回归分析

2019-08-29 10:18:25 浏览数 (1)

什么是回归分析

回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。运用十分广泛,回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且自变量之间存在线性相关,则称为多重线性回归分析。

其实就是给你一些点,求线性方程

让直接入门吧

代码语言:javascript复制
import numpy as npimport matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0,30,50)
y = x  2*np.random.rand(50) 
plt.figure(figsize=(10,8))
plt.scatter(x,

图上有50个点,赶紧来求线性方程吧

代码语言:javascript复制
from sklearn.linear_model import LinearRegression  #导入线性回归model = LinearRegression()  #初始化模型x1 = x.reshape(-1,1)   # 将行变列  得到x坐标y1 = y.reshape(-1,1)   # 将行变列  得到y坐标model.fit(x1,y1)  #训练数据model.predict(40) #预测下x=40 ,y的值
代码语言:javascript复制
array([[40.90816511]]) # x=40的预测值

还是画个图来看看比较好

代码语言:javascript复制
plt.figure(figsize=(12,8))
plt.scatter(x,y)
x_test = np.linspace(0,40).reshape(-1,1)
plt.plot(x_test,model.predict(x_test))

有图可我不知道方程的参数 都有model了怎么能不知道

代码语言:javascript复制
model.coef_   #array([[1.00116024]])   斜率model.intercept_   # array([0.86175551])  截距

y = 1.00116024 * x 0.86175551

那怎么评价这个模型的好坏 当然是越靠近越好 不就是点到直线的距离的平方越小越好

代码语言:javascript复制
np.sum(np.square(model.predict(x1) - y1))
代码语言:javascript复制
16.63930773735106 # 这个不错,挺小的

我不信是最好的,那就稍稍加一点截距0.01

代码语言:javascript复制
y2 = model.coef_*x1   model.intercept_   0.01np.sum(np.square(y2 - y1))   #  16.64430773735106

还是画个图

代码语言:javascript复制
plt.figure(figsize=(10,10))
plt.scatter(x1,y1)
plt.plot(x1,model.predict(x1),color = 'r')
plt.plot(x1 , model.coef_*x1   model.intercept_  1, color = 'b')  # 用大的1区别这两条线,0.01两条线几乎重合

欧克 现在引出回归分析的步骤

1、提出问题 一切机器学习的目标都是为了解决我们生活或工作中遇到的实际问题。

2、数据预处理 理解数据包括三方面内容:

  • 一是采集数据,根据研究问题采集相关的数据。
  • 二是导入数据,将存放各个地方的数据导入到PYTHON数据结构中,比如读取数据到PYTHON的数据框中。
  • 三是查看数据集信息,包括描述统计信息,从整体上理解这个数据。

3、数据清洗 数据清洗也叫数据预处理,就是对数据进行整容整成我们希望的样子,这个过程实质是从数据集中提取我们想要的特征信息。

4、构建模型 使用训练数据构建模型,就是使用上面第3部分的特征放入机器学习的算法中获得数据标签。机器学习里面最核心的就是机器学习的算法,而机器学习会有不同的算法。

5、评估 有了模型以后,要对这个模型进行评估。通过测试数据来评估模型的预测效果如何。

0 人点赞