一元非线性回归分析(Univariate Nonlinear Regression)
如果在回归分析中,只包含一个自变量和一个因变量,且两者的关系可用一条曲线近似表示,这种回归分析称为一元非线性回归分析.
如:一元二次方程,一元三次方程,一元n次方程
一元非线性回归方程一般都是先转成多元一次回归方程,然后建模:
如:y=a2x2+a1x1+a0x^0
转为:y=a2x2+a1x1+a0x0
案例代码:
import pandasimport numpy
data=pandas.read_csv('/Users/cenguangda/Downloads/4.3/data.csv')
x=data[['等级']]y=data[['资源']]
import matplotlib.pyplot as plt
plt.figure()
plt.rcParams['font.sans-serif']=['SimHei']
plt.xlabel('等级')plt.ylabel('资源')
plt.title('等级&资源')
plt.plot(x,y,'k.')plt.grid(True)
plt.show()
#转换成多元一次方程,degree值可多次调试以达最佳效果
from sklearn.preprocessing import PolynomialFeatures
pf=PolynomialFeatures(degree=2)
x_fit=pf.fit_transform(x)
# 建模
from sklearn.linear_model import LineaRegression
lModel=LinearRegression()
lModel.fit(x_fit,y)
lModel.score(x_fit,y)
#评估结果
lModel.score(x,y)
Out[30]: 0.93928850730154045
#绘图验证,和原图比较
plt.figure()
plt.rcParams['font.sans-serif']=['SimHei']
plt.xlabel('等级')
plt.ylabel('资源')
plt.title('等级&资源')
plt.plot(x,lModel.predict(x_fit),'k.')