python实现逻辑回归-清风数学建模-二分类水果数据

这篇具有很好参考价值的文章主要介绍了python实现逻辑回归-清风数学建模-二分类水果数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

所用数据

👉👉👉二分类水果数据
python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模

1.数据预处理

可以看到有4个特征,2种分类结果,最后4个没有分类结果的数据是拿来预测的

# 1. 数据预处理
import pandas as pd
df = pd.read_excel('oridata/二分类水果数据.xlsx',usecols=lambda col:col!='ID') #不读入第一列ID
df_willpred = df[df['fruit_name'].isnull()].drop(columns='fruit_name') #把要预测的对象拆分出来(最后4个)
df = df[~df['fruit_name'].isnull()] #去除最后4个数据
X = df.drop(columns='fruit_name') # 取出4列feature
Y = df['fruit_name'] # 取出target

X(特征)
python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模

python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模
Y(target)
python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模

2. 数据可视化

# 2. 可视化数据
import seaborn as sns
import matplotlib.pyplot as plt
## 不同特征组合对于不同类别的花的散点分布
sns.pairplot(data=df,hue='fruit_name')# 参数详解:data-数据集,hue-数据集中的目标变量
plt.show()

## 特征箱型图
column_name=list(X.columns)
fig,axes=plt.subplots(2,2,figsize=(10, 5))
idx=0
for i in range(2):
    for j in range(2):
        sns.boxplot(data=df,x='fruit_name',y=column_name[idx],palette='pastel',ax=axes[i,j])
        # 参数详解:data-数据集,x,y-从数据集中取横坐标、纵坐标,palette-调色,ax-子图位置坐标
        idx+=1
plt.show()

python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模
python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模

3. 划分test和train

# 3. 划分test和train
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2,random_state=111)
 #参数详解:test_size:用多少样本量做测试集,random_state:随便取数,只是为了每一次运行结果都相同

4.模型搭建

# 4. 模型搭建
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(solver='liblinear',random_state=111) # 初始化模型,sovler为求解器类型,,random_state同上
model.fit(X_train, Y_train) # 训练

5. 模型分类结果和准确率

# 5. 模型分类结果和准确率
## 查看test的分类结果
Y_test_pred = model.predict(X_test)
Y_pred_proba = model.predict_proba(X_test)
Y_train_pred=model.predict(X_train)
tmp = pd.DataFrame()
tmp['Y_test'] = list(Y_test[:20]) #[:20] 只是保证每一列个数相等
tmp['Y_pred_proba'] = list(Y_pred_proba[:20])
tmp['Y_test_pred'] = list(Y_test_pred[:20])

## 模型准确率
from sklearn.metrics import accuracy_score
print("train分类准确率:",accuracy_score(Y_train_pred, Y_train))
print("test分类准确率:",accuracy_score(Y_test_pred, Y_test))

python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模

6. 预测分类

# 6. 预测分类
print(model.predict(df_willpred))

最后四个预测结果:
python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模

7. 计算混淆矩阵

# 7. 混淆矩阵
from sklearn.metrics import  confusion_matrix
confusion_matrix_res=confusion_matrix(Y_test,Y_test_pred)
sns.heatmap(data=confusion_matrix_res,annot=True,cmap='Blues')
plt.show()

python实现逻辑回归-清风数学建模-二分类水果数据,数学建模,python,逻辑回归,数学建模文章来源地址https://www.toymoban.com/news/detail-607150.html

完整代码

# 1. 数据预处理
import pandas as pd
df = pd.read_excel('oridata/二分类水果数据.xlsx',usecols=lambda col:col!='ID') #不读入第一列ID
df_willpred = df[df['fruit_name'].isnull()].drop(columns='fruit_name') #把要预测的对象拆分出来(最后4个)
df = df[~df['fruit_name'].isnull()] #去除最后4个数据
X = df.drop(columns='fruit_name') # 取出4列feature
Y = df['fruit_name'] # 取出target

# 2. 可视化数据
import seaborn as sns
import matplotlib.pyplot as plt
## 不同特征组合对于不同类别的花的散点分布
sns.pairplot(data=df,hue='fruit_name')# 参数详解:data-数据集,hue-数据集中的目标变量
plt.show()

## 特征箱型图
column_name=list(X.columns)
fig,axes=plt.subplots(2,2,figsize=(10, 5))
idx=0
for i in range(2):
    for j in range(2):
        sns.boxplot(data=df,x='fruit_name',y=column_name[idx],palette='pastel',ax=axes[i,j])
        # 参数详解:data-数据集,x,y-从数据集中取横坐标、纵坐标,palette-调色,ax-子图位置坐标
        idx+=1
plt.show()

# 3. 划分test和train
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2,random_state=111)
 #参数详解:test_size:用多少样本量做测试集,random_state:随便取数,只是为了每一次运行结果都相同

# 4. 模型搭建
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(solver='liblinear',random_state=111) # 初始化模型,sovler为求解器类型,,random_state同上
model.fit(X_train, Y_train) # 训练

# 5. 模型分类结果和准确率
## 查看test的分类结果
Y_test_pred = model.predict(X_test)
Y_pred_proba = model.predict_proba(X_test)
Y_train_pred=model.predict(X_train)
tmp = pd.DataFrame()
tmp['Y_test'] = list(Y_test[:20]) #[:20] 只是保证每一列个数相等
tmp['Y_pred_proba'] = list(Y_pred_proba[:20])
tmp['Y_test_pred'] = list(Y_test_pred[:20])

## 模型准确率
from sklearn.metrics import accuracy_score
print("train分类准确率:",accuracy_score(Y_train_pred, Y_train))
print("test分类准确率:",accuracy_score(Y_test_pred, Y_test))

# 6. 预测分类
print(model.predict(df_willpred))

# 7. 混淆矩阵
from sklearn.metrics import  confusion_matrix
confusion_matrix_res=confusion_matrix(Y_test,Y_test_pred)
sns.heatmap(data=confusion_matrix_res,annot=True,cmap='Blues')
plt.show()

总结

  1. 先用特征组合展示数据散点图,从直观上看哪些特征能有效区分水果
  2. 分类准确率不算太高:清风视频里用的spss准确率也只有76%,因此属于正常范围

到了这里,关于python实现逻辑回归-清风数学建模-二分类水果数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 清风数学建模——拟合算法

    概念 在前面的篇幅中提到可以使用插值算法,通过给定的样本点推算出一定的曲线从而推算出一些想要的值。但存在一些问题。一是若样本点过多,那么多项式的次数过高会造成龙格现象;二是为了避免龙格现象而通过分段的思想求得拟合曲线,但这样会导致曲线函数非常复

    2024年02月12日
    浏览(38)
  • 数学建模 based on 清风

    原文链接(我的主页):https://rick2pc.github.io/2022/07/30/AHP/ 层次分析法,即:“The analytic hierarchy process”, 简称AHP 1.建模比赛中最基础的模型之一; 2.主要解决评价类问题; 3.文章中所有图片来自于 清风数学建模课程 的课件。 我们用一个例子来介绍这个建模方法: “填好志

    2024年02月16日
    浏览(41)
  • 典型相关分析——数学建模清风笔记

    典型相关分析(Canonical Correlation analysis)研究两组变量(每组变量中都可能有多个指标)之间相关关系的一种多元统计方法。 它能够揭示出两组变量之间的内在联系。 典型相关分析目的是识别并量化两组变量之间的联系,将两组变量相关关系的分析,转化为一组变量的线性

    2024年02月19日
    浏览(41)
  • 灰色关联度分析(清风数学建模笔记)

    记录一下建模学习笔记 灰色关联分析主要有两个作用,一是进行系统分析,判断影响系统发展的因素的重要性。第二个作用就是用于综合评价问题,给出研究对象或者方案的优劣排名。 在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二

    2024年02月06日
    浏览(41)
  • 【数学建模】清风数模更新5 灰色关联分析

    诸如经济系统、生态系统、社会系统等抽象系统都包含许多因素,系统整体的发展受各个因素共同影响。 为了更好地推动系统发展,我们需要清楚哪些因素是主要的,哪些是次要的,哪些是积极的,哪些是消极的,这就要求我们进行系统分析。 数理统计中的系统分析方法包

    2024年02月12日
    浏览(42)
  • 清风老师数学建模笔记——层次分析法

    1.层次分析法的概念;层次分析法(The Analytic Hierarchy Process即 AHP)是由美国运筹学家、匹兹堡大学教授T . L. Saaty于20世纪70年代创立的一种系统分析与决策的综合评价方法,是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。 2.层次

    2024年02月02日
    浏览(44)
  • 【数学建模】清风数模正课3 插值算法

    在数模比赛中,很多类型的题目都需要根据已知的函数点进行数据分析和模型处理; 当此时题目所给的数据较少时,我们就无法进行准确科学的分析,所以需要更多的数据,也就是函数点; 这就需要使用数学方法, 模拟生成一些新的、较靠谱的值来满足需求,这就是插值的

    2024年02月11日
    浏览(39)
  • 【数学建模】清风数模中正课4 拟合算法

    在插值算法中,我们得到的曲线一定是要经过所有的函数点的;而用拟合所得到的曲线则不一样, 拟合问题中,不需要得到的曲线一定经过给定的点 。 拟合的目的是寻求一个函数曲线,使得该曲线在某种准则下与所有的数据点最为接近,也就是曲线拟合地最好。 为了确定拟

    2024年02月11日
    浏览(33)
  • 优劣解距离法(TOPSIS)——数学建模清风笔记

    构造计算评分的公式:    max,min指已知数据中的最大值和最小值而不是理论上的最大值和最小值 三点解释: (1)比较的对象一般要远大于两个。(例如比较一个班级的成绩) (2)比较的指标也往往不只是一个方面的,例如成绩、工时数、课外竞赛得分等。 (3)有很多指

    2024年01月17日
    浏览(42)
  • 清风数学建模学习笔记(一)层次分析法

    目录 一、基本介绍 二、利用层次分析法解决评价类问题 2.1判断矩阵 2.2判断矩阵一致性检验  2.3计算权重  2.4算数平均法求权重  2.5几何平均法求权重  2.6特征值求权重 三、总结  层次分析法是评价类模型中的一种常见算法,它是用来根据多种准则,或是说因素从候选方案

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包