[Python机器学习]鸢尾花分类 机器学习应用
1、问题简述
- 花瓣的长度和宽度以及花萼的长度和宽度,所有测量结果的单位都是厘米。
2、测试代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : Iris.py
# @Author: 赵路仓
# @Date : 2020/2/26
# @Desc :
# @Contact : 398333404@qq.com import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import mglearn
import pandas as pd
from sklearn.datasets import load_iris # 鸢尾花(Iris)数据集,这是机器学习和统计学中一个经典的数据集
from sklearn.model_selection import train_test_split iris_dataset = load_iris() # load_iris 返回的 iris 对象是一个 Bunch 对象,与字典非常相似,里面包含键和值
print("Key or iris_dataset:\n{}".format(iris_dataset.keys())) # 打印
print(iris_dataset['DESCR'][:193] + "\n...") # DESCR 键对应的值是数据集的简要说明。target_names 键对应的值是一个字符串数组 里面包含我们要预测的花的品种
print("Target names: {}".format(iris_dataset['target_names'])) # 三种花的名字类型
print("Feature names: {}".format(iris_dataset['feature_names'])) # 三种花的特征,花瓣的长度 宽度 及 花萼的长度 宽度
print("Type of data: {}".format(type(iris_dataset['data']))) # data 数组的每一行对应一朵花,列代表每朵花的四个测量数据
print("Shape of data: {}".format(iris_dataset['data'].shape)) # 数组中包含 150 朵不同的花的测量数据
print("First five rows of data:\n{}".format(iris_dataset['data'][:5])) # 前五朵花的数据
print("Type of target: {}".format(type(iris_dataset['target']))) # 是一个一维数组,每朵花对应其中的一个数据
print("Shape of target: {}".format(iris_dataset['target'].shape)) #
print("Target:\n{}".format(iris_dataset['target'])) # 品种转为0 1 2三个整数,代表三个种类 X_train, X_test, Y_train, Y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
print("X_train shape:{}".format(X_train.shape))
print("Y_train shape:{}".format(Y_train.shape))
print("X_test shape:{}".format(X_test.shape))
print("Y_test shape:{}".format(Y_test.shape)) # 利用X_train的数据创建DataFrame
# 利用iris_dataset.feature_names的字符对数据进行标记
iris_dataframe=pd.DataFrame(X_train,columns=iris_dataset.feature_names) # 横坐标 以及横坐标名称
# 利用DataFrame创建散点图矩阵,按y_trian着色
grr=pd.plotting.scatter_matrix(iris_dataframe, c=Y_train, figsize=(15, 15), marker='o',hist_kwds={'bins': 20}, s=60, alpha=.8, cmap=mglearn.cm3)
plt.show()
注:其中data数组的每一行代表一朵花,列代表每朵花的四个测量数据,一共150朵不同的花。而target是一个一维数组,每朵花代表其中的以个数据,用0、1、2三个整数代表三个不同的花品种。
3、衡量是否成功:训练数据和测试数据
首先,不能用构建模型的数据用于评估模型,因为模型是适配构建模型数据的,若用来测试匹配必定是100%。因此,要用新数据来测试模型。
X_train, X_test, Y_train, Y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
print("X_train shape:{}".format(X_train.shape))
print("Y_train shape:{}".format(Y_train.shape))
print("X_test shape:{}".format(X_test.shape))
print("Y_test shape:{}".format(Y_test.shape))
4、观察数据
# 利用X_train的数据创建DataFrame
# 利用iris_dataset.feature_names的字符对数据进行标记
iris_dataframe=pd.DataFrame(X_train,columns=iris_dataset.feature_names) # 横坐标 以及横坐标名称
# 利用DataFrame创建散点图矩阵,按y_trian着色
grr=pd.plotting.scatter_matrix(iris_dataframe, c=Y_train, figsize=(15, 15), marker='o',hist_kwds={'bins': 20}, s=60, alpha=.8, cmap=mglearn.cm3)
plt.show()
数据显示结果:

[Python机器学习]鸢尾花分类 机器学习应用的更多相关文章
- [Python]基于K-Nearest Neighbors[K-NN]算法的鸢尾花分类问题解决方案
看了原理,总觉得需要用具体问题实现一下机器学习算法的模型,才算学习深刻.而写此博文的目的是,网上关于K-NN解决此问题的博文很多,但大都是调用Python高级库实现,尤其不利于初级学习者本人对模型的理 ...
- Python数据预处理:机器学习、人工智能通用技术(1)
Python数据预处理:机器学习.人工智能通用技术 白宁超 2018年12月24日17:28:26 摘要:大数据技术与我们日常生活越来越紧密,要做大数据,首要解决数据问题.原始数据存在大量不完整.不 ...
- 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
挑战:使用机器学习对 RSS 提要进行分类 最近,我接到一项任务,要求为客户创建一个 RSS 提要分类子系统.目标是读取几十个甚至几百个 RSS 提要,将它们的许多文章自动分类到几十个预定义的主题领域 ...
- 小姐姐带你一起学:如何用Python实现7种机器学习算法(附代码)
小姐姐带你一起学:如何用Python实现7种机器学习算法(附代码) Python 被称为是最接近 AI 的语言.最近一位名叫Anna-Lena Popkes的小姐姐在GitHub上分享了自己如何使用P ...
- 什么是机器学习的分类算法?【K-近邻算法(KNN)、交叉验证、朴素贝叶斯算法、决策树、随机森林】
1.K-近邻算法(KNN) 1.1 定义 (KNN,K-NearestNeighbor) 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类 ...
- 搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台
搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台 By 子敬叔叔 最近在学习麦好的<机器学习实践指南案例应用解析第二版>,在安装学习环境的时候 ...
- Python实现鸢尾花数据集分类问题——基于skearn的NaiveBayes
Python实现鸢尾花数据集分类问题——基于skearn的NaiveBayes 代码如下: # !/usr/bin/env python # encoding: utf-8 __author__ = ...
- Python实现鸢尾花数据集分类问题——基于skearn的LogisticRegression
Python实现鸢尾花数据集分类问题——基于skearn的LogisticRegression 一. 逻辑回归 逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题, ...
- Python实现鸢尾花数据集分类问题——基于skearn的SVM
Python实现鸢尾花数据集分类问题——基于skearn的SVM 代码如下: # !/usr/bin/env python # encoding: utf-8 __author__ = 'Xiaoli ...
随机推荐
- High一下!
代码: <a title="把这个链接拖到你的Chrome收藏夹工具栏中" href='javascript:(function() { function c() { var ...
- c++IO对象不可复制
IO类型的3个独立的头文件: iostream定义读写控制窗口的类型, fstream 定义读写已命名文件的类型, (包含fstream类) sstream定义读写存储在内存中 ...
- 说说GAN(生成式对抗网络)
在Auto-encoder中,input data通过一个encoder神经网络得到一个维度的较低的向量,称这个向量为code,code经过一个decoder神经网络后输出一个output data. ...
- HDU6446 Tree and Permutation(树、推公式)
题意: 给一棵N个点的树,对应于一个长为N的全排列,对于排列的每个相邻数字a和b,他们的贡献是对应树上顶点a和b的路径长,求所有排列的贡献和 思路: 对每一条边,边左边有x个点,右边有y个点,x+y= ...
- D语言-认识D语言&安装
Part1: Something about "D" D语言在国外比较流行,在国内相当少的人才知道这个语言的存在 但是D语言有C++的效率,有Java的灵活 更重要的有两点: 1. ...
- 博客圆美化主题推荐之Slience
博客圆美化主题推荐之Slience 一.前言 本博客美化主题作者为:Esofar,本文仅在教导如何快速把该美化主题应用到自己的博客中,详细部署内容见Silence - 专注于阅读的博客园主题. 二.博 ...
- Nginx + Linux 性能调优
Nginx以高性能负载均衡.缓存和web服务器出名,支撑着世界上繁忙网站中的40%.大多数使用场景下,Nginx和Linux系统的默认配置表现较好,但是仍有必要做一些调优以期达到最佳性能. 这篇文章讨 ...
- 【转】Android之四大组件、六大布局、五大存储
文章来自:http://blog.csdn.net/shenggaofei/article/details/52450668 一.四大组件: Android四大组件分别为activity.servic ...
- HDU 5391 水题。
E - 5 Time Limit:1500MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- 根据map中的某一key进行排序(快速排序实现)
/** * @author Gaoxl * 根据key值排序,要求key值能够转为Long类型(快速排序) * @param maps * @param key * @return */ public ...