by28777换哪了 by28777( 五 )


输出图形如下图所示 , 其中黑色散点图表示真实的企业成本和利润的关系 , 绿色直线为一元线性回归方程 , 红色虚曲线为二次多项式方程 。它更接近真实的散点图 。

by28777换哪了  by28777

文章插图
【by28777换哪了by28777】这里我们使用R方(R-Squared)来评估多项式回归预测的效果 , R方也叫确定系数(Coefficient of Determination) , 它表示模型对现实数据拟合的程度 。计算R方的 *** 有几种 , 一元线性回归中R方等于皮尔逊积矩相关系数(Pearson Product Moment Correlation Coefficient)的平方 , 该 *** 计算的R方是一定介于0~1之间的正数 。另一种是Sklearn库提供的 *** 来计算R方 。R方计算代码如下:
print('1 r-squared', clf.score(X, Y))print('2 r-squared', regressor_quadratic.score(x_train_quadratic, Y))
输出如下所示:
('1 r-squared', 0.9118311887769025)('2 r-squared', 0.94073599498559335)
by28777换哪了  by28777

文章插图
一元线性回归的R方值为0.9118 , 多项式回归的R方值为0.9407 , 说明数据集中超过94%的价格都可以通过模型解释 。最后补充5次项的拟合过程 , 下面只给出核心代码 。
# -*- coding: utf-8 -*-# By:Eastmount CSDN 2021-07-03from sklearn.linear_model import LinearRegressionfrom sklearn.preprocessing import PolynomialFeaturesimport matplotlib.pyplot as pltimport numpy as np#X表示企业成本 Y表示企业利润X = [[400], [450], [486], [500], [510], [525], [540], [549], [558], [590], [610], [640], [680], [750], [900]]Y = [[80], [89], [92], [102], [121], [160], [180], [189], [199], [203], [247], [250], [259], [289], [356]]print('数据集X: ', X)print('数据集Y: ', Y)#之一步 线性回归分析clf = LinearRegression()clf.fit(X, Y)X2 = [[400], [750], [950]]Y2 = clf.predict(X2)print(Y2)res = clf.predict(np.array([1200]).reshape(-1, 1))[0]print('预测成本1200元的利润:$%.1f' % res)plt.plot(X, Y, 'ks') #绘制训练数据集散点图plt.plot(X2, Y2, 'g-') #绘制预测数据集直线#第二步 多项式回归分析xx = np.linspace(350,950,100)quadratic_featurizer = PolynomialFeatures(degree = 5)x_train_quadratic = quadratic_featurizer.fit_transform(X)X_test_quadratic = quadratic_featurizer.transform(X2)regressor_quadratic = LinearRegression()regressor_quadratic.fit(x_train_quadratic, Y)#把训练好X值的多项式特征实例应用到一系列点上,形成矩阵xx_quadratic = quadratic_featurizer.transform(xx.reshape(xx.shape[0], 1))plt.plot(xx, regressor_quadratic.predict(xx_quadratic), "r--",label="$y = ax^2 + bx + c$",linewidth=2)plt.legend()plt.show()print('1 r-squared', clf.score(X, Y))print('5 r-squared', regressor_quadratic.score(x_train_quadratic, Y))# ('1 r-squared', 0.9118311887769025)# ('5 r-squared', 0.98087802460869788)
输出如下所示 , 其中红色虚线为五次多项式曲线 , 它更加接近真实数据集的分布情况 , 而绿色直线为一元线性回归方程 , 显然相较于五次多项式曲线 , 线性方程拟合的结果更差 。同时 , 五次多项式曲线的R方值为98.08% , 非常准确的预测了数据趋势 。
by28777换哪了  by28777

文章插图
最后补充一点 , 建议多项式回归的阶数不要太高 , 否则会出现过拟合现象 。
四.逻辑回归1.基础原理在前面讲述的回归模型中 , 处理的因变量都是数值型区间变量 , 建立的模型描述是因变量的期望与自变量之间的线性关系或多项式曲线关系 。比如常见的线性回归模型:
by28777换哪了  by28777

文章插图
而在采用回归模型分析实际问题中 , 所研究的变量往往不全是区间变量而是顺序变量或属性变量 , 比如二项分布问题 。通过分析年龄、性别、体质指数、平均血压、疾病指数等指标 , 判断一个人是否换糖尿病 , Y=0表示未患病 , Y=1表示患病 , 这里的响应变量是一个两点(0或1)分布变量 , 它就不能用h函数连续的值来预测因变量Y(Y只能取0或1) 。
总之 , 线性回归或多项式回归模型通常是处理因变量为连续变量的问题 , 如果因变量是定性变量 , 线性回归模型就不再适用了 , 此时需采用逻辑回归模型解决 。
逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题 , 常见的是二分类或二项分布问题 , 也可以处理多分类问题 , 它实际上是属于一种分类 ***。

推荐阅读