使用sklearn id3算法基于西瓜书上的西瓜集训练出模型,效果:

# 读取西瓜数据集
import numpy as np
import pandas as pd
df =pd.read_table(r'watermelon.txt',encoding='utf8',delimiter=',',index_col=0)
df.head()
# 由于上面的数据中包含了中文汉字,所以需要对数据进一步处理
'''
属性:
色泽 1-3代表 浅白 青绿 乌黑 根蒂 1-3代表 稍蜷 蜷缩 硬挺
敲声 1-3代表 清脆 浊响 沉闷 纹理 1-3代表 清晰 稍糊 模糊
脐部 1-3代表 平坦 稍凹 凹陷 触感 1-2代表 硬滑 软粘
标签:
好瓜 1代表 是 0 代表 不是
'''
df['色泽']=df['色泽'].map({'浅白':1,'青绿':2,'乌黑':3})
df['根蒂']=df['根蒂'].map({'稍蜷':1,'蜷缩':2,'硬挺':3})
df['敲声']=df['敲声'].map({'清脆':1,'浊响':2,'沉闷':3})
df['纹理']=df['纹理'].map({'清晰':1,'稍糊':2,'模糊':3})
df['脐部']=df['脐部'].map({'平坦':1,'稍凹':2,'凹陷':3})
df['触感'] = np.where(df['触感']=="硬滑",1,2)
df['好瓜'] = np.where(df['好瓜']=="是",1,0)
#由于西瓜数据集样本比较少,所以不划分数据集,将所有的西瓜数据用来训练模型
Xtrain = df.iloc[:,:-1]
Xtrain = np.array(Xtrain)
Ytrain = df.iloc[:,-1]
# 调用sklearn内置的决策树的库和画图工具
from sklearn import tree
import graphviz
# 采用ID3算法,利用信息熵构建决策树模型
clf = tree.DecisionTreeClassifier(criterion="entropy")clf = clf.fit(Xtrain,Ytrain)
##y_predict=clf.predict([[3,2,3,2,2,1]])
##print(y_predict)
##print(clf.feature_importances_)
# 绘制决策树的图形
feature_names = ["色泽","根蒂","敲声","纹理","脐部","触感"]
dot_data = tree.export_graphviz(clf,feature_names=feature_names,class_names=["好瓜","坏瓜"])
graph = graphviz.Source(dot_data)
graph.view()

西瓜集内容如下:

编号,色泽,根蒂,敲声,纹理,脐部,触感,好瓜
1,青绿,蜷缩,浊响,清晰,凹陷,硬滑,是
2,乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,是
3,乌黑,蜷缩,浊响,清晰,凹陷,硬滑,是
4,青绿,蜷缩,沉闷,清晰,凹陷,硬滑,是
5,浅白,蜷缩,浊响,清晰,凹陷,硬滑,是
6,青绿,稍蜷,浊响,清晰,稍凹,软粘,是
7,乌黑,稍蜷,浊响,稍糊,稍凹,软粘,是
8,乌黑,稍蜷,浊响,清晰,稍凹,硬滑,是
9,乌黑,稍蜷,沉闷,稍糊,稍凹,硬滑,否
10,青绿,硬挺,清脆,清晰,平坦,软粘,否
11,浅白,硬挺,清脆,模糊,平坦,硬滑,否
12,浅白,蜷缩,浊响,模糊,平坦,软粘,否
13,青绿,稍蜷,浊响,稍糊,凹陷,硬滑,否
14,浅白,稍蜷,沉闷,稍糊,凹陷,硬滑,否
15,乌黑,稍蜷,浊响,清晰,稍凹,软粘,否
16,浅白,蜷缩,浊响,模糊,平坦,硬滑,否
17,青绿,蜷缩,沉闷,稍糊,稍凹,硬滑,否

id3-sklearn算法实现(西瓜数据集)相关推荐

  1. 利用sklearn 实现ID3、CART、C4.5 算法挑西瓜

    利用sklearn 实现ID3.CART.C4.5 算法挑西瓜 一.ID3算法 1. 基础知识 2. 划分标准 3. 缺点 4. 利用sklearn实现ID3算法 二.C4.5算法 1. 基础知识 2 ...

  2. ML之xgboost:利用xgboost算法(结合sklearn)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)

    ML之xgboost:利用xgboost算法(结合sklearn)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测) 目录 输出结果 设计思路 核心代码 输 ...

  3. DL:基于sklearn的加利福尼亚房价数据集实现GD算法

    DL:基于sklearn的加利福尼亚房价数据集实现GD算法 目录 输出结果 代码设计 输出结果 该数据包含9个变量的20640个观测值,该数据集包含平均房屋价值作为目标变量和以下输入变量(特征):平均 ...

  4. 在西瓜数据集上用Python实现ID3决策树算法完整代码

    在西瓜数据集上用Python实现ID3决策树算法完整代码 文章目录 1.决策树算法代码ID3.py 2.可视化决策树代码visual_decision_tree.py 3.贴几张运行结果图 1.生成的 ...

  5. 机器学习《西瓜书》9.4解答——k-means算法:编程实现k均值算法,设置三组不同的k值、三组不同初始中心点,在西瓜数据集4.0上进行实验比较,并讨论什么样的初始中心有助于得到好结果。

    1.运行结果:(注:图中方块标注的点为随机选取的初始样本点) k=2时: 本次选取的2个初始向量为[[0.243, 0.267], [0.719, 0.103]] 共进行61轮 共耗时0.10s k= ...

  6. 机器学习题5:请简述ID3算法的实现步骤,并利用ID3算法构建天气数据集的决策树模型,实现决策树的可视化。

    ID3算法的实现步骤: 输入:数据集(训练集)S及属性A 输出:属性A对训练数据集S的信息增益 ① 先将S作为根节点,其目标属性y有c个类别属性.假设S中出现的概率,计算数据集S的信息熵. ② 假设属 ...

  7. 机器学习算法笔记--------建立西瓜数据集

    西瓜书里面常用的三个数据集,西瓜数据集2.0,3.0,4.0整理如下,注意中文容易出现乱码. 西瓜数据集2.0 西瓜数据集3.0 西瓜数据集4.0 import pandas as pddef cre ...

  8. 决策树ID3详解(西瓜案例)

    一.决策树 决策树(decision tree)是一种基本的分类与回归方法.一般情况下,回归方法可以转换为分类方法,因此,本文主要讨论用于分类的决策树. 首先如果是小白,推荐一个比较好的视频讲解,简单 ...

  9. ML之xgboostGBM:基于xgboostGBM算法对HiggsBoson数据集(Kaggle竞赛)训练(两模型性能PK)实现二分类预测

    ML之xgboost&GBM:基于xgboost&GBM算法对HiggsBoson数据集(Kaggle竞赛)训练(两模型性能PK)实现二分类预测 目录 输出结果 设计思路 核心代码 输 ...

  10. ML之LoRBaggingRF:依次利用Bagging、RF算法对泰坦尼克号数据集 (Kaggle经典案例)获救人员进行二分类预测——模型融合

    ML之LoR&Bagging&RF:依次利用Bagging.RF算法对泰坦尼克号数据集 (Kaggle经典案例)获救人员进行二分类预测--模型融合 目录 输出结果 设计思路 核心代码 ...

最新文章

  1. 文件名转换为utf8 c语言,文件名编码转换:从 gb* 转向 utf8 必备工具 convmv
  2. 我的第一个web_登陆我的第一个全栈Web开发人员职位
  3. Android开发--SharedPreferences初步介绍
  4. python之路-day19-面向对象之约束
  5. Google下的这盘“小”棋
  6. 使用AFNetworking请求新浪微博数据接口出错解决办法
  7. 全国计算机二级考试vf知识点总结,VF全国计算机等级考试二级公共基础知识点总结.doc...
  8. mysql benchmark基准测试
  9. 前端学习(1031):jquery多库共存
  10. mysql数据库版本不同_MySQL不同版本数据同步
  11. 【英语学习】【WOTD】scavenger 释义/词源/示例
  12. 实体关系抽取任务方法及SOTA模型总结
  13. 别在学习框架了,那些让你起飞的计算机基础知识。
  14. 商品分页查询 ego-prc 实现-easyui
  15. Deepin安装搜狗中文输入法
  16. FITC-LCA荧光素标记小扁豆凝集素(LCA)
  17. 被墙了究竟是什么意思?
  18. C#应用程序界面开发基础——窗体控制(6)——菜单栏、工具栏和状态栏控件
  19. 百度地图开发实战案例:根据起点和终点计算路程和时间
  20. android remount 命令,Android remount failed解决问题以及/system‘ not in /proc/mounts 解决

热门文章

  1. android平板8英寸,8英寸安卓系统 Newpad P10平板电脑评测
  2. 淘宝人群标签时效时间 精准淘宝人群标签方法
  3. 对接金蝶云星空审批流
  4. 好用的电脑端看图软件
  5. matlab求一维热传导方程数值解代码,一维热传导方程数值解法及matlab实现
  6. 计算机管理软件禁止玩游戏,如何禁止电脑指定程序不能运行 怎么屏蔽QQ或游戏运行提高办公效率...
  7. 威金病毒(感染EXE文件)专杀工具
  8. HTML5+CSS大作业——年会抽奖网页设计(1页)
  9. Python:给信号添加白噪声
  10. 解决vue项目更新版本后浏览器的缓存问题