MachineLearning入门-3

机器学习中的HelloWorld项目



这个项目是针对鸢尾花(Iris Flowers)进行分类的一个项目,数据集是含鸢尾花的三个亚属得分类信息,通过机器学习算法生成一个模型,自动分类新数据到这三个亚属的某一个中。项目中使用的鸢尾花数据集是一个非常容易理解的数据集,这个数据集具有以下特点:

  • 所有的特征数据都是数字,不需要考虑如何导入和处理数据
  • 这是一个分类问题,可以很方便的通过有监督学习算法来解决问题
  • 这是一个多分类问题,也许需要一些特殊的处理
  • 所有的特征数值采用相同的单位,不需要进行尺度的转换

接下来将按照以下步骤实现这个项目:

1)导入数据

2)概述数据

3)数据可视化

4)评估算法

5)实施预测



导入类库

 1 from pandas import read_csv
 2 from pandas.plotting import scatter_matrix
 3 from matplotlib import pyplot
 4
 5 from sklearn.model_selection import train_test_split
 6 from sklearn.model_selection import KFold
 7 from sklearn.model_selection import cross_val_score
 8
 9 from sklearn.metrics import classification_report
10 from sklearn.metrics import confusion_matrix
11 from sklearn.metrics import accuracy_score
12
13 from sklearn.linear_model import LogisticRegression
14 from sklearn.tree import DecisionTreeClassifier
15 from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
16 from sklearn.neighbors import KNeighborsClassifier
17 from sklearn.naive_bayes import GaussianNB
18 from sklearn.svm import SVC

所有的类库导入都不应有错误提示。如果出现了错误提示,那么暂时停下来,先设置一个能够运行的Scipy环境。



导入数据集

可以在UCI机器学习仓库下载鸢尾花(Iris Flower)数据集(https://archive.ics.uci.edu/ml/datasets/iris),下载完成后保存在项目的统计目录中。

在这里将使用Pandas来导入数据和对数据进行描述性统计分析,并利用Matplotlib实现数据可视化。

需要注意的是,在导入数据时,为每个数据特征设定了名称,这有助于后面对数据的展开工作,尤其是通过图表展示数据。

代码如下:

1 #导入数据集
2 filename=‘/home/aistudio/data/iris.data.csv‘
3 names=[‘separ-length‘,‘separ-width‘,‘petal-length‘,‘petal-width‘,‘class‘]
4 dataset=read_csv(filename,names=names)


概述数据

先看下数据,增加对数据的理解,以便选择合适的算法。

可考虑从以下几个角度来审查数据:

1)数据的维度

2)查看数据自身

3)统计描述所有的数据特征

4)数据分类的分布情况

1 #显示数据维度
2
3 print(‘数据维度:行%s,列%s‘ % dataset.shape)

执行结果如下:

数据维度:行150,列5

原文地址:https://www.cnblogs.com/yuzaihuan/p/12247939.html

时间: 2024-10-12 17:16:22

MachineLearning入门-3的相关文章

MachineLearning入门-2

Scikit-learn Scikit-learn是Python中开发和实践机器学习的类库之一,依赖于Scipy及其相关类库来运行. Scikit-learn的基本功能主要分为六大类:分类,回归,聚类,数据降维,模型选择,数据处理.需要指出的是,由于Scikit-learn本身不支持深度学习,也不支持GPU加速,因此Scikit-learn对于多层感知机(MLP)神经网络的实现并不适合处理大规模问题.(Scikit-learn对MLP的支持在0.18版之后增加). Scikit-learn相比其

MachineLearning入门-4

查看数据本身也是一个很好理解数据的方法,通过查看数据可以直观的看到数据的特征,数据的类型以及大概的数据分布范围. 1 #查看数据的前10行 2 print(dataset.head(10)) separ-length separ-width petal-length petal-width class 0 5.1 3.5 1.4 0.2 Iris-setosa 1 4.9 3.0 1.4 0.2 Iris-setosa 2 4.7 3.2 1.3 0.2 Iris-setosa 3 4.6 3.

MachineLearning入门-7(数据理解)

为了得到更准确的结果,必须理解数据的特征.分布情况,以及需要解决的问题,以便建立和优化算法模型. 简单的查看数据 审查数据的维度 审查数据的类型和属性 总结查看数据分类的分布情况 通过描述性统计分析数据 理解数据属性的相关性 审查数据的分布状态 简单的查看数据 对数据的简单审视,是加强对数据的理解最有效的方法之一.通过对数据的观察,可以发现数据内在关系. 1 from pandas import read_csv 2 #使用pandas导入CSV数据,显示数据的前10行 3 filename='

MachineLearning入门-8(数据可视化)

为了生成最优化的算法模型,必须对数据进行理解.最快.最有效的方式是通过数据的可视化来加强对数据的理解. 接下来将通过matplotlib对数据可视化,以加强对原始数据集的理解. 单一图表 直方图(Histogram)又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据的分布情况.一般用横轴表示数据类型,纵轴表示分布情况.直方图可以非常直观展示每个属性的分布情况.通过图表可以很直观地看到数据是高斯分布.指数分布还是偏态分布.代码如下 1 from pandas import

MachineLearning入门-11(算法评估)

评估就是估计算法在预测新数据时候能达到什么程度,但这不是对算法准确度的保证. 当评估完算法模型之后,可以用整个数据集(训练数据集和评估数据集的合集)重新训练算法,生成最终的算法模型. 接下来将学习4种不同的分离数据集的方法,用来分离训练数据集和评估数据集,并用其评估算法模型: 分离训练数据集和评估数据集 K折交叉验证分离 弃一交叉验证分离 重复随机评估.训练数据集分离 分离训练数据集和评估数据集 最简单的方法就是将评估数据集和训练数据集完全分开,采用评估数据集来评估算法模型.通常将67%的数据集

『Python』MachineLearning机器学习入门_极小的机器学习应用

一个小知识: 有意思的是,scipy囊括了numpy的命名空间,也就是说所有np.func都可以通过sp.func等价调用. 简介: 本部分对一个互联网公司的流量进行拟合处理,学习最基本的机器学习应用. 导入包&路径设置: import os import scipy as sp import matplotlib.pyplot as plt data_dir = os.path.join( os.path.dirname(os.path.realpath(__file__)), "..

『Python』MachineLearning机器学习入门_效率对比

效率对比: 老生常谈了,不过这次用了个新的模块, 运行时间测试模块timeti: 1 import timeit 2 3 normal = timeit.timeit('sum(x*x for x in range(1000))', number=10000) 4 native_np = timeit.timeit('sum(na*na)', # 重复部分 5 setup="import numpy as np; na = np.arange(1000)", # setup只运行一次

机器学习入门资源--汇总

机器学习入门资源--汇总 基本概念 机器学习 机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法.机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法.因为学习算法中涉及了大量的统计学理论,机器学习与统计推断学联系尤为密切,也被称为统计学习理论.算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法. 下面从微观到宏观试着梳理一下机器学习的范畴:

基于Aforge的物体运动识别-入门

基于Aforge的物体运动识别-入门篇chatbot人工智能机器人开发,提供教学视频>>>   0 收藏(2) 本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 最近看到越来越多人在做物体运动识别(例如:"第六感"中的指套),而且我最近也有点闲空,所以也来玩玩.....大多数人都是用Opencv来做,那我就不做重复的工作了,换个别的开源类库~~~Aforge. 来自百度知道的Aforge介绍:AForge.NET 是一个专门为开