zoukankan      html  css  js  c++  java
  • 机器学习入门——Iris问题

    Iris是一个经典的机器学习入门数据集,本片博客将讲述如何使用该数据集,用极其简单的代码来实现一个简单的机器学习的例子。

    本文适合有一丢丢python基础的同学学习

    实验需求:安装好 anaconda(这家伙自带了很多科学计算的module,是机器学习必备神器)
    本数据集可在网站:https://en.wikipedia.org/wiki/Iris_flower_data_set#Data_set 查看,当然导入数据集并不需要这么麻烦,稍后会讲解。

    预备知识
    机器学习的步骤大致分为3步:
    1、导入数据集
    2、通过数据集建立决策树
    3、使用数据进行预测

    准备工作:
    首先打开anaconda的spyder,并新建python文件准备写代码。

    正式开始:
    导入数据集:并不需要去网上下载,或者粘贴复制,很麻烦的,直接从库里导入就好了。

    from sklearn.datasets import load_iris
    
    iris = load_iris()

    这时数据集已经保存到变量 iris 中了,iris是什么类型呢?
    type(iris)输出为 sklearn.utils.Bunch

    数据集中共有数据150组,花的品种共有三种,每一朵花的特征有四个,每一个品种的数据分别都是50组。

    这时我们需要从数据集中选出3组数据,用来最后的测试,且这3组数据不用来作为决策树的训练数据,仅用于最后的测试。
    代码如下:

    import numpy as np
    from sklearn.datasets import load_iris
    iris = load_iris()
    #test_idx是测试数据的下标
    test_idx = [0,50,100]
    
    #训练数据,train_target是结果,train_data是特征
    train_target = np.delete(iris.target, test_idx)
    train_data = np.delete(iris.data, test_idx, axis=0)
    
    #测试数据
    test_target = iris.target[test_idx]
    test_data = iris.data[test_idx]

    接下来就是建立决策树了

    import numpy as np
    from sklearn.datasets import load_iris
    from sklearn import tree
    
    iris = load_iris()
    
    
    
    test_idx = [0,50,100]
    
    #training data
    train_target = np.delete(iris.target, test_idx)
    train_data = np.delete(iris.data, test_idx, axis=0)
    
    #testing data
    test_target = iris.target[test_idx]
    test_data = iris.data[test_idx]
    
    #建立决策树
    clf = tree.DecisionTreeClassifier()
    clf.fit(train_data,train_target)

    决策树建立好后,我们就可以来测试机器学习的正确性如何了,因此在最后加上如下两行代码:

    print(test_target)
    print(clf.predict(test_data))

    第一行代码用来输出测试数据的正确结果,第二行代码输出决策树学习之后预测的结果

    最后的输出是:

    [0 1 2]
    [0 1 2]

    预测成功!!

    视频教程:https://www.bilibili.com/video/av7214214/ ,感谢google大法的视频,也感谢二进制小分队提供的翻译

    源代码查看:https://github.com/yinyoupoet/LearnML/blob/master/ML_2.py

  • 相关阅读:
    DirectShow自带实例StillCap在回调函数里实现抓图并保存为文件
    x264 VS2008下编译成功
    yuy2_to_i420,yuyv_to_i420
    x264源码阅读
    oracle 归档日志开启、关闭及删除归档日志
    TOMCAT设置JVM
    linux root 操作oracle命令
    struts2 标签判断list是否为空
    linux下mysql 5.5配置
    RHEL 6 下VNC Server 的安装配置
  • 原文地址:https://www.cnblogs.com/yinyoupoet/p/13287526.html
Copyright © 2011-2022 走看看