机器学习笔记(通俗易懂)---第一个应用鸢尾花数据集分类(1)---附完整代码

机器学习笔记—第一个应用:鸢尾花数据集分类(1)—附完整代码

以下都是本人在学习机器学习过程中的一些心得和笔记,仅供参考。


首先我们将完成一个简单的机器学习应用——鸢尾花数据集分类,并构建第一个模型。与此同时,介绍一些核心概念和术语。

话不多说,我们首先来看一下,鸢尾花到底是何方神圣!

在这里插入图片描述


1.明确问题

假设有一名植物学爱好者对她所发现的鸢尾花的品种很感兴趣。她收集了每多鸢尾花的一些测量数据。

花瓣
花瓣的长度 花瓣的宽度
花萼
花萼的长度 花萼的宽度
PS:所有的测量结果的单位都是厘米

这些鸢尾花已经被植物学专家鉴定为属于setosaversicolor,virginica三个品种之一。

假设:

  • 通过这些测量数据,她可以确定每朵鸢尾花所属的品种。
  • 我们假设这位植物学爱好者在野外只会遇到这三种鸢尾花。

目标:

  • 我们的目标是构建一个机器学习模型,可以从这些已知品种的鸢尾花测量数据中进行学习,从而能够预测新的鸢尾花的品种。

分析:

  • 因为我们已经有已知品种的鸢尾花的测量数据,所以这是一个监督学习的模型。
  • 我们要在多个选项中预测其中一个鸢尾花品种,因此这是一个**分类(classification)**问题。
  • 可能输出的鸢尾花的不同品种叫做类别(class)
  • 数据集中的每朵鸢尾花都属于三个类别之一,所以这是一个三分类问题。
  • 单个数据点(一朵鸢尾花)的预期输出是这朵花的品种
  • 对于一个数据点来说,它的品种叫做标签(label)

2.了解数据

2.1读取数据

首先我们将利用鸢尾花(Iris)数据集,这是机器学习和统计学中一个经典的数据集。它包含在scikit-learndatasets模块中。我们可以调用load_iris函数来加载数据:

In[1]:

from sklearn.datasets import load_iris #导入sklearn包的datass模块
iris_dataset=load_iris() #调用load_iris函数来读取数据

load_iris返回的iris对象是一个Bunch对象,与字典非常相似,里面包含了键和值:

In[2]:

print("Keys of iris_dataset:\n{}".format(iris_dataset.keys()))

Out[2]:

Keys of iris_dataset:
dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])

2.2查看数据

可以看见有六个键,我们其实可以通过名字就能猜到每个键对应的值是什么。好比feature_names’一看就知道是特点的名字,也就是特征呗。所以有时候不需要我们每一个键都运行查看一下。
接下来,既然是学习,那么还是让我们看一下每一个键分别存储了哪些值吧。

  • DESCR键对应的值是数据集的简要说明,由于过多只给出开头部分。

In[3]:

print(iris_dataset['DESCR'][:193]+"\n...")

Out[3]:

.. _iris_dataset:

Iris plants dataset
--------------------

**Data Set Characteristics:**

    :Number of Instances: 150 (50 in each of three classes)
    :Number of Attributes: 4 numeric, pre
...
  • target_names键对应的值是一个字符串数组,里面包含我们要预测的花的品种:

In[4]:

print("Target names:", iris_dataset['target_names'])

Out[4]:

Target names: ['setosa' 'versicolor' 'virginica']
  • feature_names键对应的值是一个字符串列表,对每一个特征进行了说明:

In[5]:

print("Feature names:\n", iris_dataset['feature_names'])

Out[5]:

Feature names:
 ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

数据包含在targetdata字段中。data里面是花萼长度,花萼宽度,花瓣长度,花瓣宽度的测量数据,格式为NumPy数组:

In[6]:

print("Type of data:", type(iris_dataset['data']))

Out[6]:

Type of data: <class 'numpy.ndarray'>

data数组的每一行对应一朵花,列代表每朵花的四个测量数据:

In[7]:

print("Shape of data:", iris_dataset['data'].shape)

Out[7]:

Shape of data: (150, 4)

可以得出,数组中包含150朵不同的花的测量数据。


下面给出前5个样本的特征数值:

In[8]:

print("First five rows of data:\n", iris_dataset['data'][:5])

Out[8]:

First five rows of data:
 [[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 [4.7 
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值