探索sklearn|鸢尾花数据集

1 鸢尾花数据集背景

鸢尾花数据集是原则20世纪30年代的经典数据集。它是用统计进行分类的鼻祖。

sklearn包不仅囊括很多机器学习的算法,也自带了许多经典的数据集,鸢尾花数据集就是其中之一。

导入的方法很简单,不过我比较好奇它是如何来存储这些数据的,于是我决定去背后看一看

from sklearn.datasets import load_iris

data = load_iris()

找到sklearn包的路径,发现包可不少,不过现在扔在一边,以后再来探索,我现在要找到是datasets文件夹。

文件夹里没有找到load_iris()这个函数在哪,只是在__init__文件里,发现了这么一行

from .base import load_iris

2 数据的内容

不出我料数据没有存储在程序文件里,而是用csv格式保存着,单独放在了data文件夹里

150,4,setosa,versicolor,virginica
5.1,3.5,1.4,0.2,0 #花萼长度,花萼宽度,花瓣长度,花瓣宽度
4.9,3.0,1.4,0.2,0
4.7,3.2,1.3,0.2,0
4.6,3.1,1.5,0.2,0
5.0,3.6,1.4,0.2,0

第一行首先记录了样本数目150,特征数目4

现在是时候来详细介绍一下数据了:

数据包含三种鸢尾花的四个特征,分别是花萼长度(cm)、花萼宽度(cm)、花瓣长度(cm)、花瓣宽度(cm),这些形态特征在过去被用来识别物种。时至今日,我们已经可以通过基因签名来识别这些分类了。

三种鸢尾花分别是

山鸢尾花(Iris Setosa)、

变色鸢尾花(Iris Versicolor)和

维吉尼亚鸢尾花(Iris Virginica)

3 数据可视化

鸢尾花数据集只有150个样本,每个样本只有4个特征,容易将其可视化

上面加载的data变量是一个类似字典的类型,是数据信息的集合,它像字典一样通过键值对来组织信息

值既可以通过data[‘target‘]也可以通过data.target来获取,很明显这说明data并不是字典类型

data.keys()
>>[‘target_names‘, ‘data‘, ‘target‘, ‘DESCR‘, ‘feature_names‘]feature = data[‘data‘] #为numpy.ndarray类型feature.shape #矩阵的行数和劣势>> (150L, 4L)target = data[‘target‘]target.shape>>(150L,)

四个特征是不可能同时在平面图里画出来的,只得运用我们的聪明才智,把它两两一组

def plot_iris_projection(x_index, y_index):
    for t,marker,c in zip(xrange(3),‘>ox‘, ‘rgb‘):
        plt.scatter(data[target==t,x_index],
                    data[target==t,y_index],
                    marker=marker,c=c)
        plt.xlabel(feature_names[x_index])
        plt.ylabel(feature_names[y_index])

pairs = [(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)]
for i,(x_index,y_index) in enumerate(pairs):
    plt.subplot(2,3,i)
    plot_iris_projection(x_index, y_index)
plt.show()

不难发现的是,不论在那两个特征下,山鸢尾花都能很好的和其他两种鸢尾花区分,但是另外两种鸢尾花的特征比较焦灼,如果只有这四个特征,有时人都难以区分。

时间: 2024-11-05 13:40:38

探索sklearn|鸢尾花数据集的相关文章

numpy数据集练习——鸢尾花数据集

#导包 import numpy as np # 从sklearn包自带的数据集中读出鸢尾花数据集data from sklearn.datasets import load_iris data = load_iris() # 查看data类型,包含哪些数据 print("数据类型:",type(data)) print("数据类目:",data.keys()) # 取出鸢尾花特征和鸢尾花类别数据,查看其形状及数据类型 iris_feature = data.fea

鸢尾花数据集

1.2.3 #加载numpy包 import numpy #加载sklearn包 from sklearn.datasets import load_iris #读出鸢尾花数据集data data=load_iris() #查看data类型 print(type(data)) #查看数据内容 print(data.keys()) 4. #鸢尾花的四个特征 data_feature= data.feature_names iris_data=data.data print(data_feature

做一个logitic分类之鸢尾花数据集的分类

做一个logitic分类之鸢尾花数据集的分类 Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例.数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度.花萼宽度.花瓣长度.花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种. 首先我们来加载一下数据集.同时大概的展示下数据结构和数据摘要. import numpy as np

鸢尾花数据集可视化

数据集描述:其包含120条训练集和30条测试集 对鸢尾花的属性和标签之间的可视化操作: 1 import tensorflow as tf 2 import pandas as pd 3 import numpy as np 4 import matplotlib.pyplot as plt 5 6 #鸢尾花数据集 7 8 TRAIN_URL = 'http://download.tensorflow.org/data/iris_training.csv' #数据下载地址 9 train_pat

sklearn 中大数据集的处理

官网 http://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html 原文地址:http://blog.51cto.com/emily18/2091039

sklearn数据集

sklearn 的数据集有好多个种 自带的小数据集(packaged dataset):sklearn.datasets.load_<name> 可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_<name> 计算机生成的数据集(Generated Dataset):sklearn.datasets.make_<name> svmlight/libsvm格式的数据集:sklearn.datasets.load_sv

机器学习之sklearn数据集

数据集划分 机器学习一般的数据集会划分为两个部分: 训练数据:用于训练,构建模型 测试数据:在模型检验时使用,用于评估模型是否有效 sklearn数据集划分API sklearn.model_selection.train_test_split x 数据集的特征值 y 数据集的标签值 test_size 测试集的大小,一般为float random_state 随机数种子,不同的种子会造成不同的随机采样结果.相同的种子采样结果相同. return 训练集特征值,测试集特征值,训练标签,测试标签(

Python——sklearn提供的自带的数据集

sklearn提供的自带的数据集 sklearn 的数据集有好多个种 自带的小数据集(packaged dataset):sklearn.datasets.load_<name> 可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_<name> 计算机生成的数据集(Generated Dataset):sklearn.datasets.make_<name> svmlight/libsvm格式的数据集:sklearn

机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测

机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法: 1.在Java语言中,通过python的解释器执行python代码,简单来说就是在java中通过python解释器对象,传入写好的python代码,进行执行,这样的方式运行的效率非常低,而且存在很多python包无法使用的情况,只适合做简单的python代码的运行,并不推荐使用. 2.通过PMML