数据集:

数据集获取,百度网盘:

复制这段内容后打开百度网盘手机App,操作更方便哦 链接:

网盘地址

https://pan.baidu.com/s/1i9PAcOQ9g15qtMyiCvl3lQ

提取码:6z30

上代码:

import matplotlib.pyplot as plt
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
import seaborn as sns
import numpy as np
# 前三个函数是为了把.xlsx文件转化为.csv
def get_excel_sheet_list(filename):df = pd.read_excel(filename, sheet_name=None,engine='openpyxl')return df.keys()def get_excel_sheet_data(filename, sheetname=None):df = pd.read_excel(filename, sheet_name=sheetname,engine='openpyxl')dataList = df.to_dict(orient='records')  # 转换为列表return dataListdef file_trans(Read_filepath):sheet_list = get_excel_sheet_list(Read_filepath)file_list=[]for file in sheet_list:Save_filepath = file + '.csv'file_list.append(Save_filepath)sheetData = pd.DataFrame(get_excel_sheet_data(Read_filepath, file))if sheetData.empty:continuesheetData.to_csv(Save_filepath, index=False, mode='w', encoding='utf-8')return file_list# 补足缺省值和返回训练数据,切片
def getDataSet():Read_filepath = "../xiangmu/pythonProject/数据集_25.xlsx"list_file = file_trans(Read_filepath)df = pd.read_csv(list_file[0])# 所用的数据df_usage=df.iloc[:,:]df_usage.columns=['年龄','阶段','地区','文化程度','家庭教养','孩子性格','家庭情感','孩子应对','自我效能','交流情况','上网目的','创伤成长']df_index = df_usage.columns.values# df_usage = df_usage.reindex(np.random.permutation(df_usage.index))# print(df_index)# 数据转化为列表df_list=df_usage.values.tolist()return df_list,df_indexdef splitData(aaaaaaaaaa,bbbbbbbbbb):nrow = len(aaaaaaaaaa)ncol = len(bbbbbbbbbb)nxval=5test_data=[]train_data=[]for ixval in range(nxval):# 每一次循环将count置为零test_index = [a for a in range(nrow) if a % nxval == ixval]train_index = [a for a in range(nrow) if a % nxval != ixval]test_data = [aaaaaaaaaa[r] for r in test_index]train_data = [aaaaaaaaaa[r] for r in train_index]x_train=[]y_train=[]x_test=[]y_test=[]for i in test_data:x_test.append(i[:-1])y_test.append(i[-1])for j in train_data:x_train.append(j[:-1])y_train.append(j[-1])return x_train,y_train,x_test,y_testaa,bb=getDataSet()
x_train,y_train,x_test,y_test=splitData(aa,bb)
## 定义 决策树模型
clf = DecisionTreeClassifier(criterion='entropy',max_depth=10,min_samples_leaf=2,min_samples_split=2)
# 在训练集上训练决策树模型
clf.fit(x_train, y_train)## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf.predict(x_train)
test_predict = clf.predict(x_test)
from sklearn import metrics## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('训练准确率:',metrics.accuracy_score(y_train,train_predict))
print('测试准确率:',metrics.accuracy_score(y_test,test_predict))## 查看混淆矩阵 (预测值和真实值的各类情况统计矩阵)
confusion_matrix_result = metrics.confusion_matrix(test_predict,y_test)
print('混淆矩阵:\n',confusion_matrix_result)# 利用热力图对于结果进行可视化
plt.figure(figsize=(8, 6))
sns.heatmap(confusion_matrix_result, annot=True, cmap='BrBG_r')
plt.xlabel('true')
plt.ylabel('predict')
plt.show()

结果:

准确率达到0.97,已经是很高的数值了

利用决策树进行企鹅分类相关推荐

  1. 基于决策树的企鹅分类(python)

    实验目的 采用决策树算法对企鹅进行分类 源代码和数据集下载 你可以在这里找到源代码和数据集.Github地址 数据集介绍 样本总数:344 7个特征变量(所在岛屿,嘴巴长度,嘴巴深度,脚蹼长度,身体体 ...

  2. 【机器学习】决策树案例一:利用决策树进行年龄与音乐类型喜好分类预测

    利用决策树进行年龄与音乐类型喜好分类预测 1 利用决策树进行年龄与音乐类型喜好分类预测 1.1 导入模块与加载数据 1.2 划分数据 1.3 模型创建与训练 1.4 模型应用 1.5 模型可视化 1. ...

  3. 文本分类 决策树 python_NLTK学习笔记(六):利用机器学习进行文本分类

    关于分类文本,有三个问题 怎么识别出文本中用于明显分类的特征 怎么构建自动分类文本的模型 相关的语言知识 按照这个思路,博主进行了艰苦学习(手动捂脸..) 一.监督式分类:建立在训练语料基础上的分类 ...

  4. 【机器学习】决策树案例二:利用决策树进行鸢尾花数据集分类预测

    利用决策树进行鸢尾花数据集分类预测 2 利用决策树进行鸢尾花数据集分类预测 2.1 导入模块与加载数据 2.2 划分数据 2.3 模型创建与应用 2.4 模型可视化 手动反爬虫,禁止转载: 原博地址 ...

  5. 【机器学习】决策树案例三:利用决策树进行泰坦尼克号事故人员存活分类预测

    利用决策树进行泰坦尼克号事故人员存活分类预测 3 利用决策树进行泰坦尼克号事故人员存活分类预测 3.1 导入模块与加载数据 3.2 特征工程 3.3 划分数据 3.4 模型创建与应用 3.5 模型可视 ...

  6. python利用决策树进行特征选择

    python利用决策树进行特征选择(注释部分为绘图功能),最后输出特征排序: import numpy as np import tflearn from tflearn.layers.core im ...

  7. Spark 数据挖掘 - 利用决策树预测森林覆盖类型

    Spark 数据挖掘-利用决策树预测森林覆盖类型 1 前言 预测问题记住一点:最垃圾的预测就是使用平均值,如果你的预测连比直接给出平均值效果都要差,那就省省吧! 统计学诞生一个多世纪之后,随着现在机器 ...

  8. 面向对象程序设计课程设计:利用决策树方法判定西瓜质量

    目录 第一章课程设计的目的及要求 1.1课程设计目标 1.2课程设计实验环境 1.3课程设计的预备知识 1.4课程设计要求 第二章课程设计的内容 2.1c++语言程序设计--<利用决策树方法判定 ...

  9. 机器学习(五)常用分类模型(K最近邻、朴素贝叶斯、决策树)和分类评价指标

    机器学习(五)常用分类模型(K最近邻.朴素贝叶斯.决策树)和分类评价指标 文章目录 机器学习(五)常用分类模型(K最近邻.朴素贝叶斯.决策树)和分类评价指标 综述 常用分类模型 K最近邻模型 朴素贝叶 ...

最新文章

  1. Doxygen使用介绍
  2. php act index漏洞,浅析PHP程序中的目录遍历漏洞
  3. Web安全——易班优课YOOC课群在线测试自动答题解决方案
  4. spring里的controller之间的跳转
  5. @JsonSerialize 使用:注解方式 实现条件判断属性值、条件修改属性值
  6. JavaScript replace string 替换字符
  7. 鸿蒙历程和路标图,华为鸿蒙OS:为生态而生,亦为生态所累
  8. CookieHelper
  9. linux底层文件io,学习Rust 文件与 IO
  10. 20200504:力扣187周赛下
  11. keyerror什么意思python_为什么会出现keyerror?
  12. 算法(一):智能小车速度控制(PID模糊控制)
  13. 英雄联盟LOL静态HTML网页制作模板DⅣ+CSS学生网页作品代码游戏题材大学生网页设计作业下载
  14. 互联网应用基础第五课:互联网即时通讯工具之QQ和微信的使用、淘宝客理解
  15. 【历史上的今天】12 月 27 日:第一台计算机背后的女性们;Box 创始人出生;开普勒诞生
  16. 养成不断学习的好习惯_如何使用“小习惯”养成一致的学习习惯。
  17. Xshell的下载与安装
  18. Intellij IDEA 14 配置SVN
  19. 华为荣耀9升级鸿蒙os,华为荣耀9款手机可升级EMUI 11了!优先升鸿蒙OS
  20. 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。

热门文章

  1. 【运动学】基于matlab脉冲多普勒测距测速【含Matlab源码 1947期】
  2. 跨境电商亚马逊单个产品发FBA需要注意哪些事项(一)
  3. 电线电缆企业应用APS计划排产软件的效益
  4. python作图颜色_python作图颜色
  5. 生男女在线测试软件,2020生男生女在线计算器测男女,如何看生男生女
  6. NRF24L01多通道无线病房呼叫系统
  7. 易智瑞与Esri北京研发中心的实质区别
  8. 基于 LAMP 架构实现 Discuz 论坛搭建
  9. java安装_在线学习Java编程的最佳方法
  10. ArcGIS中的影像解决方案_2019