回归拟合(一)

作者: 那未必 | 来源:发表于2017-11-01 21:14 被阅读64次

基础准备

首先需要安装 statsmodels:

pip install statsmodels

statsmodels是一个python的统计分析包,有很多统计模型可以使用。编程时,习惯的引入方式是:

import statsmodels.api as sm

一元线性回归拟合

创建实验数据

为了验证方便,首先自己创建一组散点,分布在 y=1+10x 直线的周围。

import statsmodels.api as sm
import numpy as np

# 先自己创造一组随机坐标点
# 坐标点在 y=1+10x 附近
# 模拟策略:
# 设想有若干个 y=kx+m, k=10, m=1,
# x 是某区间中的一组随机数,
# 然后算出 y
# 用矩阵相乘的方式来表达这个过程比较方便

nsample=100
x=np.linspace(0,10,nsample)
X=sm.add_constant(x)
beta=np.array([1,10])
# 添加一点随机扰乱值
e=np.random.normal(size=nsample)
# 两个矩阵相乘,得到y值
y=np.dot(X,beta)+e

拟合数据

这才是本文的重点。如果已经有了前面创建的 y、 X数据,现在只需要用 sm.OLS 模型拟合一下。总共就两步:第一、创建模型;第二、fit 数据。

model=sm.OLS(y,X)
result=model.fit()

打印一下拟合结果:

print result.params

输出:

[  0.85704777  10.00038404]

也就是 m=0.86, k=10.00

还可以输出更详细的拟合结果报告:

print result.summary()
拟合结果

输出结果中,coef 列是 k和m值,而 std err 列则表达了相关性,可以认为是 1-相关系数。

图示化展现

y_fitted=result.fittedvalues
fig,ax=plt.subplots(figsize=(8,6))
ax.plot(x,y,'o',label='data')
ax.plot(x,y_fitted,'r--.',label='OLS')
ax.legend(loc='best')
拟合图像

相关文章

  • 回归算法预测波士顿地区房价

    正规方程 梯度下降 岭回归 岭回归模型 关于拟合曲线程度的判定(正常拟合为最佳) 拟合曲线 关于拟合程度(以识别汽...

  • 回归拟合(一)

    基础准备 首先需要安装 statsmodels: statsmodels是一个python的统计分析包,有很多统计...

  • Logistic回归

    用一条直线对一些数据点进行拟合(该线称为最佳拟合直线),这个拟合过程就成为回归。 利用Logistic回归进行分类...

  • CH1 统计学习方法概论|1.5.1正则化《统计学习方法》-学习

    文章原创,最近更新:2018-06-11 1.线性回归的过拟合与欠拟合2.逻辑回归的过度拟合3.解决过拟合的方法4...

  • 总结

    线性回归,用线去拟合数据,预测连续值逻辑回归(对数几率回归,简称对率回归),用来解决分类问题正则化,解决过拟合问题...

  • ML04-局部加权线性回归

    本主题讲述线性回归的欠拟合问题:怎么评估拟合效果 一. 回归中的问题   回归一词来自一种任务背景,测试孩子与父母...

  • 机器学习实战第8章-回归

    8-1 用线性回归创建最佳拟合曲线创建regression.py 调用regression.py,并拟合回归曲线 ...

  • Logistic回归

    Logistic回归 回归是对一些数据点进行拟合,该拟合过程称为回归,这样的思想是用来做预测的。为什么能用来分类呢...

  • Gradient Boosting —— 梯度迭代增强

    回归问题(Regression) 考虑一个回归问题,已知n个样本 需要拟合一个函数 ,使得误差最小。 迭代拟合残差...

  • 机器学习系列(二十三)——过拟合overfitting和欠拟合u

    过拟合和欠拟合 有了多项式回归的方式,我们就可以对非线性的数据做拟合了,不过,复杂度不够的多项式回归会导致欠拟合问...

网友评论

    本文标题:回归拟合(一)

    本文链接:https://www.haomeiwen.com/subject/zqfnpxtx.html