ML——回归模型(三)
2018-08-12 10:20
78 查看
Polynomial regression多项式回归
这里我们沿用上一节的房价数据,对LSTAT(底层人口比例)和MEDV(房价)做回归分析(原因见Axes网格图),同时将多项式回归结果与简单线性回归效果作比较。其中关于多项式回归在https://blog.csdn.net/After__today/article/details/81352891中有介绍。
[code]import os import pandas as pd import matplotlib.pyplot as plt import numpy as np from sklearn.linear_model import LinearRegression from sklearn.preprocessing import PolynomialFeatures os.chdir('C:/Users/Administrator/Desktop/jpynb/机器学习') df = pd.read_csv('./data/housing.csv') df.head() # 载入数据 X = df[['LSTAT']].values y = df['MEDV'].values # 添加模型 pr = LinearRegression() lr = LinearRegression() # degree多项式的阶数 quadratic = PolynomialFeatures(degree=2) # fit_transform对数据预处理,先调用fit(),后调用transform() X_quad = quadratic.fit_transform(X) # 用来做预测的数据,np.newaxis规范矩阵计算 X_fit = np.arange(X.min(), X.max(), 1)[:, np.newaxis] # 训练简单线性模型 lr.fit(X, y) y_lin_fit = lr.predict(X_fit) # 训练多项式模型 pr.fit(X_quad, y) y_quad_fit = pr.predict(quadratic.fit_transform(X_fit)) # 画出结果图 plt.scatter(X, y, label='training points') plt.plot(X_fit, y_lin_fit, label='linear fit', linestyle='--') plt.plot(X_fit, y_quad_fit, label='quadratic fit') plt.legend(loc='upper left') plt.tight_layout()
看看效果图:
可以很直观看出多项式回归的效果明显好于简单线性回归,我们可以通过调整多项式的阶数来使模型效果更加逼近数据点,做非线性回归。
阅读更多相关文章推荐
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- [ML] 逻辑斯谛回归与最大熵模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 【Python-ML】SKlearn库RANSAC拟合高鲁棒性回归模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型
- 初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型