实验四、回归模型演示
一、实验目的
- 1.理解线性回归和对应参数调节。
- 2.掌握使用任意公式进行广义线性回归拟合的方法。
二、实验内容
- 1.调用 sklearn 的多项式特征 PolynomialFeatures 进行多项式拟合。
- 2.调用逻辑斯蒂回归直线 LinearRegression 进行线性拟合。
- 3.使用任意函数为 curve_fit 调用以拟合任意规律数据。
三、实验步骤
- 1、线性回归 利用 sklearn 用于学习逻辑斯蒂回归直线的 LinearRegression 和多项式转换 PolynomialFeatures 可以拟合多项式曲线。
- 2、广义线性回归 scipy 有一种拟合函数 curve_fit,可利用这个函数进行多种函数的拟合。不少 分布是非线性的,例如泊松分布、二项分布,本质上是指数分布,灵活运用 curve_fit 可拟合不同类型的函数。这里使用正态分布公式拟合。
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
x = np.arange(0,1,0.002)
y = stats.norm.rvs(0,size=500,scale=0.1)
y = y + x ** 0.5
plt.scatter(x,y,s=5)
degree = [1,2,300]
y_test = np.array([])
for d in degree:
clf = Pipeline(
[('poly',PolynomialFeatures(degree=d)),
('linear',LinearRegression(fit_intercept=False))]
)
clf.fit(x[:,np.newaxis],y)
y_test = clf.predict(x[:,np.newaxis])
plt.plot(x,y_test,linewidth=2)
plt.grid()
plt.legend([str(nu) for nu in degree],loc='upper left')
plt.show()