12. 多项式回归

多项式回归

多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。

sklearn中多项式回归

这里的多项式回归实际上是先将变量 X X X处理成多项式特征,然后使用线性模型学 习多项式特征的参数,以达到多项式回归的目的。
例如: X = [ x 1 , x 2 ] X = [x_1 , x_2 ] X=[x1,x2]

  • 使用PolynomialFeatures构造 X X X的二次多项式特征 X _ P o l y X\_Poly X_Poly X _ P o l y = [ x 1 , x 2 , x 1 x 2 , x 1 2 , x 2 2 ] X\_Poly = [x_1 , x_2 , x_1 x_2 , x_1^2 , x_2^2 ] X_Poly=[x1,x2,x1x2,x12,x22]
  • 使用linear_model学习 X P o l y X_Poly XPoly y y y之间的映射关系。

房屋价格预测

import numpy as np
import matplotlib.pyplot as plt
# 线性回归模块
from sklearn import linear_model
# 多项式特征构造模块
from sklearn.preprocessing import PolynomialFeatures

# 读取数据集
dataset_X = []
dataset_Y = []
fr = open('Data/prices.txt', 'r')
lines = fr.readlines()
for line in lines:
    items = line.strip().split(',')
    dataset_X.append(int(items[0]))
    dataset_Y.append(int(items[1]))

length = len(dataset_X)
dataset_X = np.array(dataset_X).reshape([length, 1])
dataset_Y = np.array(dataset_Y)

minX = min(dataset_X)
maxX = max(dataset_X)
X = np.arange(minX, maxX).reshape([-1, 1])

# degree=2表示建立dataset_X的二次多项式特征X_poly
poly_reg = PolynomialFeatures(degree=2)
X_poly = poly_reg.fit_transform(dataset_X)
# 创建线性回归,使用线性模型学习X_poly
# 和dataset_Y之间的映射关系
lin_reg_2 = linear_model.LinearRegression()
lin_reg_2.fit(X_poly, dataset_Y)

# 图像中显示
plt.scatter(dataset_X, dataset_Y, color='red')
plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color='blue')
plt.xlabel('Area')
plt.ylabel('Price')
plt.show()

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值