• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > 机器学习--决策树(ID3)算法案例,id3案例

机器学习--决策树(ID3)算法案例,id3案例

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含机器学习--决策树(ID3)算法案例,id3案例等服务器相关知识,网友希望可以进行参考

机器学习--决策树(ID3)算法案例,id3案例


       在进行案例分析前,先对决策树算法的分类函数进行测试。考虑到构造决策树非常耗时,为了节省计算时间,最好能够在每次执行分类时调用已经构造好的决策树。这就需要利用python模块pickle序列化对象将决策树分类算法保存在磁盘中,并在需要的时候读取出来。

1、测试决策树分类算法性能

######################################
#功能:决策树的分类函数
#输入变量:input_tree, feat_labels, test_vec
# 决策树,分类标签,测试数据
#输出变量:class_label 类标签
######################################
def classify(input_tree, feat_labels, test_vec):
    first_str = input_tree.keys()[0]
    second_dict = input_tree[first_str]
    class_label = -1

    # index方法用于查找当前列表中第一个匹配first_str变量的索引
    feat_index = feat_labels.index(first_str)

    for key in second_dict.keys():
        if test_vec[feat_index] == key:
            if type(second_dict[key]).__name__ == 'dict':
                class_label = classify(second_dict[key], feat_labels, test_vec)
            else:
                class_label = second_dict[key]
    return class_label


2、对决策树算法进行存储
######################################
#功能:将决策树存储到磁盘中
#输入变量:input_tree, filename 决策树,存储的文件名
######################################
def store_tree(input_tree, filename):

    import pickle
    fw = open(filename, 'w')
    pickle.dump(input_tree, fw)  # 序列化,将数据写入到文件中
    fw.close()


3、对决策树算法进行读取
######################################
#功能:从磁盘中读取决策树信息
#输入变量:filename 存储的文件名
######################################
def grab_tree(filename):

    import pickle
    fr = open(filename, 'r')
    return pickle.load(fr)  # 反序列化


4、代码测试
def main():

    my_data, my_labels = create_data_set()
    print 'my_data=', my_data
    print 'my_labels=', my_labels

    class_label = classify(my_tree, my_labels, [1, 1])
    print 'class_label=', class_label

    store_tree(my_tree, 'classifierStorage.txt')
    tree = grab_tree('classifierStorage.txt')
    print 'tree=', tree

if __name__ == '__main__':
    main()


案例分析:使用决策树预测隐形眼镜类型

      隐形眼镜类型包括硬材质、软材质以及不适合佩戴隐形眼镜。而眼科医生需要从age、prescript、astigmatic和tearRate这四个方面对患者进行询问,以此来判断患者佩戴的镜片类型。利用决策树算法,我们甚至也可以帮助人们判断需要佩戴的镜片类型。

      在构造决策树前,我们需要获取隐形眼镜数据集,从lenses.txt文件读取。还需要获取特征属性(或者说决策树的决策结点),从代码输入。将数据集和特征属性代入决策树分类算法,就能构造出隐形眼镜决策树,沿着不同分支,我们可以得到不同患者需要的眼镜类型。


代码如下:

fr = open('lenses.txt', 'r')

lenses = [line.strip().split('\t') for line in fr.readlines()]
lenses_labels = ['age', 'prescript', 'astigmatic', 'tearRate']

lenses_tree = create_tree(lenses, lenses_labels)

print 'lenses_tree=', lenses_tree


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 机器学习--决策树(ID3)算法案例,id3案例

相关文章

  • CentOS 下面解决libvirt版本过低、升级冲突问题,centoslibvirt
  • 《转》ceilometer的数据采集机制入门,《转》ceilometer
  • Hadoop源码分析----RPC反射机制,hadoop----rpc
  • Docker安装MySQL8.0的实现方法
  • Openstack Nova(九)----Instance 创建(Computer API & Conductor ),openstacknovaapi
  • Hadoop 源代码分析(六)RPC-Client,hadooprpc-client
  • HIVE的数据存储,HIVE数据存储
  • MapReduce对输入多文件的处理,mapreduce输入处理
  • Twitter 新一代流处理利器——Heron 论文笔记之Storm Limitations,
  • 自定义输出文件名,输出文件名

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 实战第一个云程序,实战第一个云
    • 上传到dfs和hadoop统计计算
    • 《2》CentOS7.0+OpenStack+kvm云平台部署—配置Keystone,centos7.0kvm
    • 二分Kmeans的java实现,二分kmeansjava
    • <转>linux上nagios安装完整版,linuxnagios
    • 架构设计(ASP.NET MVC+Knockout+Web API+SignalR),knockoutsignalr
    • Spark SQL and DataFrame Guide(1.4.1)——之DataFrames,sparkdataframe
    • hive SymlinkTextInputFormat介绍及用法,textinputformat
    • MapReduce的两表join一般操作,mapreduce表join
    • mongodb基础操作,mongodb基础

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有