机器学习中的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)查看数据自身
3)统计描述所有的数据特征
4)数据分类的分布情况
执行结果如下:
数据维度:行150,列5