文章中介绍了机器学习的简单知识,还有python中进行机器学习实践需要的生态环境,接下来将会通过鸢尾花分类这个例子对机器学习做一个简要的介绍。通过一步一步地实现这个项目来介绍以下内容。
导入和使用python中机器学习的各个方面的类库。导入数据,并通过描述性分析、可视化等对数据进行分析。创建六个模型,并从中选择准确度最高的模型。可以说这并不是一个正式的项目,只是用来做一个简单的展示,用于给初次接触机器学习的读者快速了解机器学习的过程和结果。
1机器学习中的HelloWorld顶目
学习编程时,往往我们的第一句代码就是print(“HelloWorld”),而接下来的这个数据集,可以说得上是机器学习中的HelloWorld顶目,入门学习机器学习的过程中最常见的一个数据集。
这个项目是针对鸢尾花(IrisFlower)进行分类的一个项目,数据集是含鸢尾花的三个亚属的分类信息,通过机器学习算法生成一个模型,自动分类新数据到这三个亚属的某一个中。项目中使用的鸢尾花数据集是一个非常容易理解的数据集,这个数据集具有以下特点:
所有的特征数据都是数字,不需要考虑如何导入和处理数据。这是一个分类问题,可以很方便地通过有监督学习算法来解决问题。这是一个多分类问题,也许需要一些特殊的处理。所有的特征的数值采用相同的单位,不需要进行尺度的转换。三个类属的数据完全一样,没有类别不平衡问题。有着较为明显的区分,机器学习分类效果较为明显。接下来我们将通过这个例子一步步地来展示一个机器学习项目的简化步骤。我们将按照下面的步骤实现这个项目:
(1)导入数据。
(2)概述数据。
(3)数据可视化。
(4)评估算法。
(5)实施预测。
在整个项目的过程中,最好尝试自己输入每一行代码,以加深对机器学习项目流程的理解。
2导入数据
导入项目所需的各种数据处理、数据可视化以及机器学习相关库和鸢尾花(IrisFlower)数据集。
2.1导入类库
导入在项目中将要使用的类库和方法。代码如下:
#导入类库
frompandasimportread_csv
frompandas.plottingimportscatter_matrix
importmatplotlib.pyplotasplt
fromsklearn.model_selectionimporttrain_test_split
fromsklearn.model_selectionimportKFold
fromsklearn.model_selectionimportcross_val_score
fromsklearn.metricsimportclassification_report
fromsklearn.metricsimportconfusion_matrix
fromsklearn.metricsimportaccuracy_score
fromsklearn.linear_modelimportLogisticRegression
fromsklearn.treeimportDecisionTreeClassifier
fromsklearn.discriminant_analysisimportLinearDiscriminantAnalysis
fromsklearn.neighborsimportKNeighborsClassifier
fromsklearn.naive_bayesimportGaussianNB
fromsklearn.svmimportSVC
所有类库的导入都不应有错误提示。如果出现了错误提示,那么暂时停下来,先设置一个能够运行的SciPy环境。
2.2导入数据集
在本项目中我们使用的是UCI机器学习数据仓库中的鸢尾花(IrisFlower)数据集(