有一组数据,通过这组数据来建立回归方程:

先画一个散点图:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
#设置中文显示
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = Falsepath = 'C:/Users/Lenovo/Desktop/shuzizuoye/example/data.txt'
data = pd.read_csv(path, header=None)
plt.scatter(data[:][0], data[:][1], marker='+')#画出数据散点图
data = np.array(data)
y = data[:, 1]#y取第二列数据
x = data[:, :1]

model = LinearRegression()
model.fit(x,y)
plt.scatter(x,y)
plt.plot(x,model.predict(x),color='red')
plt.xlabel('人口')#x轴随便命名--例如人口
plt.ylabel('工资')#y轴随便命名--例如工资
plt.show()
model.coef_,model.intercept_

这里的1.19就是y=ax+b中的a,-3.89就是b。

但是对于有些数据来说不适合使用一次线性回归,更适合二次或者更高的此时,这里还是使用这组数据举例。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegressionplt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = Falsepath = 'C:/Users/Lenovo/Desktop/shuzizuoye/example/data.txt'
data = pd.read_csv(path, header=None)
plt.scatter(data[:][0], data[:][1], marker='+')#画出数据散点图
data = np.array(data)
y = data[:, 1]#y取第二列数据
x = data[:, :1]# 用于增加一个多次项内容的模块PolynomialFeatures
from sklearn.preprocessing import PolynomialFeatures# 设置最高次项为二次项,为生成二次项数据(x^2)做准备
poly_reg = PolynomialFeatures(degree=2)# 将原有的X转换为一个新的二维数组X_,该二维数组包含新生成的二次项数据(x^2)和原有的一次项数据(x)。
X_ = poly_reg.fit_transform(x)model = LinearRegression()
model.fit(X_,y)plt.scatter(x,y)
plt.plot(x,model.predict(X_),color='r')
plt.show()model.coef_,model.intercept_

这里0代表y=ax^2+bx+c中的c,1.1代表b,0.003代表a。

当degree=1时与一次回归方程一样。

建立完回归方程之后需要对方程进行评估,

R-squared(即统计学中的R2)、Adj.R-squared(即Adjusted R2)、P值。

其中R-squared和Adj.R-squared用来衡量线性拟合的优劣,P值用来衡量特征变量的显著性。

R-squared和Adj.R-squared的取值范围为0~1,它们的值越接近1,则模型的拟合程度越高;P值在本质上是个概率值,其取值范围也为0~1,P值越接近0,则特征变量的显著性越高,即该特征变量真的和目标变量具有相关性。
原文链接:https://blog.csdn.net/qq_42433311/article/details/124097370

import statsmodels.api as sm# add_constant()函数给原来的特征变量X添加常数项,并赋给X2,这样才有y=ax+b中的常数项,即截距b
X2 = sm.add_constant(X_)
# 用OLS()和fit()函数对Y和X2进行线性回归方程搭建
est = sm.OLS(y,X_).fit()
est.summary()

另一种计算r2的方式:

from sklearn.metrics import r2_score
r2 = r2_score(y,model.predict(X_))
print(r2)

回归模型---一次函数与高次函数相关推荐

  1. R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型、使用ggcoxzph函数可视化进行Schoenfeld残差图检验模型是否满足等比例风险

    R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型.使用ggcoxzph函数可视化进行Schoenfeld残差图检验模型是否满足等比例风险 目录

  2. R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型、使用anova函数进行方差分析通过p值确认指定连续变量和风险值HR之间是否存在非线性关系

    R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型.使用anova函数进行方差分析通过p值确认指定连续变量和风险值HR之间是否存在非线性关系 目录

  3. R语言使用caret包的knnreg函数拟合KNN回归模型:使用predict函数和训练好的模型进行预测推理、使用plot函数可视化线图对比预测值和实际值曲线

    R语言使用caret包的knnreg函数拟合KNN回归模型:使用predict函数和训练好的模型进行预测推理.使用plot函数可视化线图对比预测值和实际值曲线 目录

  4. R语言使用mgcv包的gam函数拟合广义加性模型回归模型:使用predict函数和训练好的模型进行预测推理、使用ggplot2可视化预测值和实际值的曲线进行对比分析

    R语言使用mgcv包的gam函数拟合广义加性模型回归模型:使用predict函数和训练好的模型进行预测推理.使用ggplot2可视化预测值和实际值的曲线进行对比分析 目录

  5. R语言使用xgboost包拟合xgboost回归模型、使用predict函数和训练好的模型进行预测推理、计算回归模型的评估指标MAE、MSE、RMSE

    R语言使用xgboost包拟合xgboost回归模型.使用predict函数和训练好的模型进行预测推理.计算回归模型的评估指标MAE.MSE.RMSE 目录

  6. R语言构建无序多分类逻辑回归模型、mlogit.display函数获取无序多分类逻辑回归模型的汇总统计信息(各分组模型对应的系数及标准差、相对危险降低率RRR值及其置信区间、AIC值等)

    R语言使用nnet包的multinom函数构建无序多分类logistic回归模型.使用epiDisplay包的mlogit.display函数获取无序多分类logistic回归模型的汇总统计信息(各分 ...

  7. 机器学习之逻辑回归模型

    文章目录 分类思想 逻辑回归模型公式 公式推导 sigmoid函数 避免过拟合 降低模型复杂度 加入L1/L2正则项 正则化的作用 增加训练数据 使用逻辑回归模型进行多分类的几种方式 One vs O ...

  8. Python实现逻辑回归模型教程

    理解多个预测变量与连续响应变量之间关系通常适用线性回归,但当响应变量为类别变量时需要适用逻辑回归. 逻辑回归是尝试从数据集中把W观测记录分为不同类别的分类算法. 常见的分类回归场景有: 通过信用分和账 ...

  9. 回归分析(三)二项逻辑斯蒂回归模型

    回归分析(三)二项逻辑斯蒂回归   学了一段时间突然又遇到逻辑斯蒂回归,结果发现已经忘完了,所以今天重新梳理一下. (1)逻辑斯蒂分布   先看一下逻辑斯蒂分布函数F(x)F(x)F(x),其概率密度 ...

最新文章

  1. 一文读懂线性回归、岭回归和Lasso回归
  2. xcode 4.2 如何调试 EXC_BAD_ACCESS
  3. 仪表指针样式_Qt自定义Widget之仪表盘
  4. 《面向对象分析与设计》一3.2 参与者
  5. DataGrid 导出 EXCEL(简单,实用)
  6. 如何避免JDBC内存溢出问题
  7. 【技术评测】ArcBlock:试图一同江湖的网络层,实现难度比较大
  8. pycharm 文件修改的星号(*)提示||文件是否修改过
  9. Web XR 混合现实浏览器
  10. 题解 P1217 【[USACO1.5]回文质数 Prime Palindromes】
  11. 什么是SIT测试,、UAT测试?
  12. matlab无法显示图片
  13. sockscap+Bitvise Tunnelier 做内网渗透
  14. 木马免杀实践-golang
  15. 通过H5(浏览器/WebView/其他)唤起本地app
  16. 如何在linux下解压缩rar和zip格式的文件压缩包
  17. (转载)基于LBS地图的开发,满足地图上有头像的需求
  18. 知网下载论文(通过深圳图书馆)
  19. 状态码的含义,以及HTTP中常见的状态码
  20. VisualVM使用方法

热门文章

  1. cisco3560交换机cpu过高怎么处理
  2. 什么是进程➡进程调度
  3. 第2节-分支和循环语句
  4. 抖音下拉宝粉丝经济如何培养,转化加微信吧!
  5. c语言 typedef
  6. Matlab机器人工具箱(0)——旋转与平移变换
  7. 安装博图V15时出现缺少.net3.5sp1解决办法
  8. IDEA中用java实现简单记事本(保姆级)
  9. 东北大学OJ-1224: 实验4-6 :存款利息的计
  10. springboot+flyway+oracle11g+mysql8 整合包