您的位置:首页 > 其它

机器学习入门——Iris问题

2018-02-08 19:01 302 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息