本文主要介绍非线性回归分析,使用数据来自网站 房屋数据。
一、多项式回归
# 读取数据
import pandas as pd
df = pd.read_csv('housing.csv', header = None, sep = '\s+')
df.columns = ['CRIM', 'ZN', 'INDUS', 'CHAS',
'NOX', 'RM', 'AGE', 'DIS', 'RAD',
'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
df.head()
# 拟合房屋价格和LSTAT之间的模型
# 获取数据
X = df[['LSTAT']].values
y = df['MEDV'].values
regr = LinearRegression()
# 导入多项式函数
from sklearn.preprocessing import PolynomialFeatures
# 创建多项式数据
quadratic = PolynomialFeatures(degree=2)
cubic = PolynomialFeatures(degree=3)
X_quad = quadratic.fit_transform(X)
X_cubic = cubic.fit_transform(X)
# 线性拟合
X_fit = np.arange(X.min(), X.max(), 1)[:, np.newaxis]
regr = regr.fit(X, y)
y_lin_fit = regr.predict