美文网首页
回归问题建模

回归问题建模

作者: iriscong | 来源:发表于2019-04-09 18:12 被阅读0次

本文以python内置数据集“波士顿发房价预测”为例,总结常见的回归模型用法。

  • 多元线性回归
  • 多项式回归

一、导入文件

# 导入模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import sklearn
from sklearn import datasets
from sklearn.cross_validation import train_test_split
# from sklearn.model_selection import train_test_split,cross_val_score 
file = datasets.load_boston()

# 确定自变量和因变量
x = file.data
y = file.target
x_train, x_test, y_train, y_test = train_test_split(x, y)

二、建模

(一)多元线性回归

原理

通过构建x和y之间的超定方程来预测,使用最小二乘法进行求解。

代码

# 多元线性回归
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x_train, y_train)
y_model = model.predict(x_test)

(二)多项式回归

线性回归模型拟合直线,多项式拟合曲线。线性回归方程所有变量的指数都是1,多项式( Polynomial /,pɒlɪ'nəʊmɪəl/)回归方程至少有一个变量的指数大于1。

原理

通过构建x和y之间的方程来预测y。
通常情况下,指数越高,在训练集上拟合的点更多,拟合效果更好,但是在未知数据集上面的应用效果差,这就是过拟合。

代码

# 多项式回归
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

PolynomialFeatures = PolynomialFeatures(degree=2)
x_train2 = PolynomialFeatures.fit_transform(x_train) # 重新构建x
x_test2 = PolynomialFeatures.fit_transform(x_test)

model = LinearRegression()
model.fit(x_train2, y_train)
y_model = model.predict(x_test2)

3、岭回归

正则化(Regularization)是用来防止拟合过度的一堆方法。scikit-learn提供了一些方法来使线性回归模型正则化。其中之一是岭回归(Ridge Regression,RR,也叫Tikhonov regularization),通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获
得回归系数更为符合实际、更可靠的回归方法。岭回归增加L2范数项(相关系数向量平方和的平方根)来调整成本函数(残差平方和)。

4、LASSO

5、弹性网

三、评估

1、判定系数r2

R的平方,判定系数,介于0-1之间,越接近1,说明模型效果越好,当模型拟合非常差的时候,可能会出现负值。

# 方法一:
model.score(x_test, y_test) # 在测试集评分
print(cross_val_score(model, x, y,cv=5).mean()) # 采用交叉验证,在整个数据集上评分,无需给model进行fit训练即可使用交叉验证评分。
print(cross_val_score(model, x_train, y_train,cv=5).mean()) # 训练集交叉验证R方值
print(cross_val_score(model, x_test, y_test,cv=5).mean()) # 训练集交叉验证R方值

# 方法二:
from sklearn import metrics
print(metrics.r2_score(y, y_model))

2、均方误差MSE

越小越好

from sklearn import metrics
print('MSE:', metrics.mean_squared_error(y, y_model))

3、平均绝对误差MAE

越小越好

from sklearn import metrics
MAE = metrics.mean_absolute_error(y, y_model)
print('MAE:', MAE)

相关文章

  • 回归问题建模

    本文以python内置数据集“波士顿发房价预测”为例,总结常见的回归模型用法。 多元线性回归 多项式回归 一、导入...

  • [机器学习算法]泊松回归

    需要泊松回归的原因 对因变量是离散型变量的问题建模时,普通的线性回归模型、定序回归模型和逻辑回归模型已经能解决我们...

  • python 逐步回归

    分析建模,日常问题整理(二十八) 2019.8.5~2019.9.14 1 逐步回归 在训练评分卡模型的时候要注意...

  • 4.sklearn_regression

    1.sklearn回归建模 1.1 线性回归 1.2 放假数据集 Source: https://archive....

  • 《机器学习实战》笔记(九):Ch9 - 树回归

    第九章 树回归(代码) 树回归算法的优缺点优点:可以对复杂和非线性的问题建模.缺点:结果不容易理解.适用数据类型:...

  • 算法概述-02

    1.逻辑回归和线性回归的联系和区别: 逻辑回归和线性回归的都是广义的线性回归。 线性回归是根据最小二乘法来建模,逻...

  • 树回归

    原理: 将数据集切分成很多份易建模的数据 利用线性回归技术建模 优点 可以对复杂和非线性的数据建模 缺点 结果不易...

  • python数据分析(十四)

    # -*- coding: utf-8 -*- #逻辑回归 自动建模 import pandas as pd #参...

  • 数据挖掘3

    建模调参 内容介绍 线性回归模型:线性回归对于特征的要求;处理长尾分布;理解线性回归模型; 模型性能验证:评价函数...

  • 10. 线性回归

    回归算法-线性回归分析 线性回归定义:线性回归通过一个或多个自变量与因变量之间进行建模的回归分析,其中可以为一个或...

网友评论

      本文标题:回归问题建模

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