文章目录

  • 前言
  • 往期文章
  • 1 多元回归
    • 1.1 选取数据
    • 1.2 构建训练集与测试集,并构建模型
    • 1.3 模型预测
    • 1.4 模型评估
  • 2 logistic回归
    • 2.1 鸢尾花数据集
    • 2.2 绘制散点图
    • 2.3 逻辑回归分析
  • 结语

前言

Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
 
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
 
初学Python 小白阶段
文章仅作为自己的学习笔记 用于知识体系建立以及复习
题不在多 学一题 懂一题
知其然 知其所以然!

往期文章

Python数学建模系列(一):规划问题之线性规划

Python数学建模系列(二):规划问题之整数规划

Python数学建模系列(三):规划问题之非线性规划

Python数学建模系列(四):数值逼近

Python数学建模系列(五):微分方程

Python数学建模系列(六):蒙特卡洛算法

Python数学建模系列(七):差分

Python数学建模系列(八):图论

1 多元回归

注: 这里实在没有找到数据集
引用于:https://blog.csdn.net/HHTNAN/article/details/78843722?utm_source=blogxgwz7
以下代码未验证

1.1 选取数据

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl   #显示中文
def mul_lr():pd_data=pd.read_excel('../profile/test.xlsx')print('pd_data.head(10)=\n{}'.format(pd_data.head(10)))
font = {"family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)
mpl.rcParams['axes.unicode_minus']=False
sns.pairplot(pd_data, x_vars=['中证500','泸深300','上证50','上证180'], y_vars='上证指数',kind="reg", size=5, aspect=0.7)
plt.show()

1.2 构建训练集与测试集,并构建模型

from sklearn.model_selection import train_test_split #这里是引用了交叉验证
from sklearn.linear_model import LinearRegression  #线性回归
from sklearn import metrics
import numpy as np
import matplotlib.pyplot as plt
def mul_lr():   #续前面代码#剔除日期数据,一般没有这列可不执行,选取以下数据http://blog.csdn.net/chixujohnny/article/details/51095817X=pd_data.loc[:,('中证500','泸深300','上证50','上证180')]y=pd_data.loc[:,'上证指数']X_train,X_test, y_train, y_test = train_test_split(X,y,test_size = 0.2,random_state=100)print ('X_train.shape={}\n y_train.shape ={}\n X_test.shape={}\n,  y_test.shape={}'.format(X_train.shape,y_train.shape, X_test.shape,y_test.shape))linreg = LinearRegression()model=linreg.fit(X_train, y_train)print (model)# 训练后模型截距print (linreg.intercept_)# 训练后模型权重(特征个数无变化)print (linreg.coef_)

1.3 模型预测

#预测
y_pred = linreg.predict(X_test)
print (y_pred) #10个变量的预测结果

1.4 模型评估

    #评价#(1) 评价测度# 对于分类问题,评价测度是准确率,但这种方法不适用于回归问题。我们使用针对连续数值的评价测度(evaluation metrics)。# 这里介绍3种常用的针对线性回归的测度。# 1)平均绝对误差(Mean Absolute Error, MAE)# (2)均方误差(Mean Squared Error, MSE)# (3)均方根误差(Root Mean Squared Error, RMSE)# 这里我使用RMES。sum_mean=0for i in range(len(y_pred)):sum_mean+=(y_pred[i]-y_test.values[i])**2sum_erro=np.sqrt(sum_mean/10)  #这个10是你测试级的数量# calculate RMSE by handprint ("RMSE by hand:",sum_erro)#做ROC曲线plt.figure()plt.plot(range(len(y_pred)),y_pred,'b',label="predict")plt.plot(range(len(y_pred)),y_test,'r',label="test")plt.legend(loc="upper right") #显示图中的标签plt.xlabel("the number of sales")plt.ylabel('value of sales')plt.show()

2 logistic回归

2.1 鸢尾花数据集

鸢尾花有三个亚属,分别是山鸢尾(Iris-setosa)、变色鸢尾(Iris- versicolor)和维吉尼亚鸢尾(Iris-virginica)。

该数据集一共包含4个特 征变量,1个类别变量。共有150个样本,iris是鸢尾植物,这里存储了其萼片 和花瓣的长宽,共4个属性,鸢尾植物分三类。

2.2 绘制散点图

Demo代码

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
#获取花卉两列数据集
DD = iris.data
X = [x[0] for x in DD]
Y = [x[1] for x in DD]
plt.scatter(X[:50], Y[:50], color='red', marker='o', label='setosa')
plt.scatter(X[50:100], Y[50:100], color='blue', marker='x', label='versicolor')
plt.scatter(X[100:], Y[100:],color='green', marker='+', label='Virginica')
plt.legend(loc=2) #左上角
plt.show()

运行结果

2.3 逻辑回归分析

Demo代码

from sklearn.linear_model import LogisticRegression
iris = load_iris()
X = iris.data[:, :2]   #获取花卉两列数据集
Y = iris.target
lr = LogisticRegression(C=1e5)
lr.fit(X,Y)
#meshgrid函数生成两个网格矩阵
h = .02
x_min, x_max = X[:, 0].min()-.5, X[:, 0].max()+.5
y_min, y_max = X[:, 1].min()-.5, X[:, 1].max()+.5
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = lr.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.figure(1, figsize=(8,6))
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)
plt.scatter(X[:50,0], X[:50,1], color='red',marker='o', label='setosa')
plt.scatter(X[50:100,0], X[50:100,1], color='blue', marker='x', label='versicolor')
plt.scatter(X[100:,0], X[100:,1], color='green', marker='s', label='Virginica')
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.legend(loc=2)
plt.show()

运行结果

结语

学习来源:B站及其课堂PPT,对其中代码进行了复现

https://www.bilibili.com/video/BV12h411d7Dm
参考资料:https://blog.csdn.net/HHTNAN/article/details/78843722?utm_source=blogxgwz7

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

Python数学建模系列(九):回归相关推荐

  1. Python数学建模系列(五):微分方程

    文章目录 前言 往期文章 1.微分方程分类 2.微分方程解析解 3.微分方程数值解 3.1 场线图与数值解 3.2 洛伦兹曲线与数值解 4.传染病模型 模型一:SI-Model 模型二:SIS mod ...

  2. Python数学建模系列(六):蒙特卡洛算法

    文章目录 前言 往期文章 1.蒙特卡洛算法 样例1 样例2 样例3 2.三门问题 3.M*M豆问题 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   ...

  3. Python数学建模系列(八):图论

    文章目录 前言 往期文章 1 图论模型 - Dijkstra 样例1 2 图论模型-Floyd 样例2 3 机场航线设计 0.Airlines.csv数据 1.数据导入.观察变量 2.数据清洗 3.时 ...

  4. Python数学建模系列(四):数值逼近

    文章目录 前言 往期文章 1. 一维插值 ​1.1 线性插值与样条插值(B-spline) 1.2 高阶样条插值 2. 二维插值 2.1 图像模糊处理--样条插值 2.2 二维插值的三维图 3. 最小 ...

  5. Python数学建模系列(二):规划问题之整数规划

    文章目录 前言 整数规划 例题 方法一:分支定界法(使用scipy库) 方法二:使用pulp库进行求解 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- ...

  6. Python数据分析学习系列 九 绘图和可视化

    Python数据分析学习系列 九 绘图和可视化 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 信息可视化 ...

  7. 【Python数学建模】SEIR传染病模型模型延伸-SEIDR模型(一),加入疫苗接种、政府管控、病毒变异等因素的影响

    目录 一. SEIR传染病模型 二. SEIR模型的延伸--SEIDR模型 三. 模型延伸--影响因素1:疫苗接种 四. 模型延伸--影响因素2:政府管控 五. 模型延伸--影响因素3:病毒变异 写在 ...

  8. python数学建模(二)线性规划2.实战(思路清晰\过程完整、详细)

    文章目录 (一)简单陈述本文章的内容 (二)线性规划例题(实战) 2.1 实战题目 2.2 符号规定和基本假设 2.3 模型的分析 2.4 模型的建立 2.5 模型一的求解和分析 2.5.1 (代码) ...

  9. python数学建模--绘图动态可视化图表

    目录 写在本博客的开篇 关于matplotlib绘图的两种模式 阻塞模式 交互模式 总结 绘制动态图的例子 二维折线图 结果演示 代码 三维折线图 结果演示 代码 三维散点图 结果演示 代码 写在本博 ...

  10. python可以用来数学建模吗_怎么用Python数学建模:python数据建模工具

    怎么用Python数学建模 djcjfhfhhjdvjfhvfghhfgbdthhgdchfjfuivvh DSI方法在几何建模上的应用 本节叙述如何应用DSI方法来与曲面S相联系的二维图形图3.1) ...

最新文章

  1. 深度学习的实时面部姿势估计研究
  2. 中国最大的python社区-python中的最小最大算法
  3. 泛型类型通常在Dao和Service 中使用BaseDaoT extends Serializable的泛型
  4. 开源配置管理平台-Apollo
  5. 第3讲--3.1旋转矩阵
  6. CVPR 2022 57 篇论文分方向整理 + 打包下载|涵盖目标检测、语义分割、人群计数、异常检测等方向
  7. application.yml等yaml格式单独配置-横杠报错
  8. 洛谷 P1849 [USACO12MAR]拖拉机Tractor
  9. 【典型错误】The type java.lang.Object cannot be resolved.
  10. 搭建MyBatis框架
  11. 关于STM32库中 __IO 修饰符(volatile修饰符,反复无常的意思)
  12. 深度学习教程(1) | 深度学习概论(吴恩达·完整版)
  13. 【Android第一行代码第三版】【01】
  14. 2022最新教程,半小时速通Git和Github的基本操作。
  15. linux 网络速度非常慢,Linux认证:解决ubuntu8.10上网速度慢的问题
  16. CCF-CSP201809-4 再卖菜
  17. 方法论:后台产品经理的前世今生(一)
  18. PAT A1129 重载小于号快速解答
  19. 100个python算法超详细讲解:存钱
  20. c语言车辆限行,机动车尾号限行提示器

热门文章

  1. Android抓包从未如此简单
  2. VSC为_LCC 和 VSC (MMC) 的底层特性区别
  3. selenium反爬
  4. 数据包络分析(DEA)详解(以第八届宁夏省赛为例)
  5. 数据包络分析法(DEA) R实现
  6. “github中文版”来了,这个神器一键帮你汉化
  7. 本地快速搭建FTP服务器
  8. vue 3.0(通用) 表格导出成Excel文件或HTML转word文档
  9. halcon 深度学习标注_Halcon教程之-HALCON 18.05正式发布,深度学习不再需要GPU
  10. 红外遥控器-VS1838B/HS0038红外接收方案(包含原理图+PCB+BOM表+程序)