首页 > 分享 > 机器学习笔记(通俗易懂)

机器学习笔记(通俗易懂)

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

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

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

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

在这里插入图片描述

文章目录 机器学习笔记---第一个应用:鸢尾花数据集分类(1)---附完整代码 1.明确问题 PS:所有的测量结果的单位都是厘米 2.了解数据 2.1读取数据 2.2查看数据 2.3训练数据与测试数据 2.4数据可视化 3.构建第一个模型:k近邻算法 3.1构建模型 3.2做出预测 3.3评估模型 4.代码的整合

1.明确问题

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

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

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

假设:

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

目标:

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

分析:

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

2.了解数据

2.1读取数据

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

In[1]:

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

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

In[2]:

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

Out[2]:

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

2.2查看数据

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

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

In[3]:

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

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 ... 12345678910 target_names键对应的值是一个字符串数组,里面包含我们要预测的花的品种:

In[4]:

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

Out[4]:

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

In[5]:

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

Out[5]:

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

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

In[6]:

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

Out[6]:

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

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

In[7]:

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

Out[7]:

Shape of data: (150, 4) 1

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

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

In[8]:

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

Out[8]:

First five rows of data: [[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 123

相关知识

Python机器学习基础教程——1.7第一个应用:鸢尾花分类——学习笔记
机器学习术语表
Python机器学习基础教程
机器学习常用术语
机器学习算法
【机器学习】鸢尾花分类
机器学习入门17
AI小白学习之旅(1):从什么是机器学习说起
第 1 章 机器学习基础引言
机器学习术语表:语言评估

网址: 机器学习笔记(通俗易懂) https://m.huajiangbk.com/newsview104957.html

所属分类:花卉
上一篇: 解决Error:invalid
下一篇: 一对夫妻带着他们的一个孩子在路上