zoukankan      html  css  js  c++  java
  • Python机器学习之旅|手把手带你探索IRIS数据集

    系列导读

    01.Python机器学习之旅|第一个项目

    前言

    大家好,关于数据挖掘或者机器学习的理论我想大家应该都已经了解很多,而数据挖掘的工具例如PandasNumPySklearn等在历史文章都有所介绍,因此今天我们将开始第二个案例实战也是使用非常多的IRIS数据集:根据花瓣和花萼的长宽预测鸢尾花的种类。

    加载数据

    首先我们打开Jupyter Notebook导入相关库

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn import model_selection
    from sklearn.metrics import accuracy_score
    from sklearn.linear_model import LogisticRegression
    from sklearn.linear_model import LinearRegression
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.svm import SVC
    from pandas.plotting import scatter_matrix

    接下来就是加载数据集,虽然在Sklearn库中内置了IRIS数据集,但是在这我使用处理好的数据

    可以看到我们一共有150条数据,每条数据的前四列对应是花萼长度,花萼宽度,花瓣长度,花瓣宽度,最后一列就是花的种类,现在我们就需要通过这4个特征预测鸢尾花卉属于(iris-setosa/iris-versicolor/iris-virginica)中的哪一品种。

    探索性分析

    本节对数据集进行一些探索性分析,首先查看每一类的情况

    可以看到我们的数据很完整,一共150条数据每类50条,再查看数据的描述统计

    接着我们通过箱线图直方图来观察数据的最值,中位数和偏差与数据分布

    进一步,我们可以绘散点图来观察四个变量之间的关联

    可以看到有些变量之前有着明显的相关性,因此我们可以进行预测

    建模分类

    现在开始建模分类,和之前的例子一样,我们将数据集划分为训练集和测试集。因为我们的数据集只有150条记录,所以将使用120条记录来训练模型,剩下的30条记录用来评估模型

    array = data.values
    X = array[:,0:4]
    Y = array[:,4]
    x_train, x_test, y_train, y_test = model_selection.train_test_split(X, Y, test_size=0.2, random_state=7)

    用于分类的模型很多,本文将使用以下四种经典算法来建模并进行评估:

    • K近邻(KNN)

    • 支持向量机(SVM)

    • 随机森林(RF)

    • 逻辑回归(LR)

    关于这几种算法的理论并不会在本文详细展开,事实上可以通过百度轻松查到每一种算法的推导与应用,你应该了解后再往下进行。


    OK,现在我们直接来实现,在Python中实现并不困难,以KNN为例,仅需4行代码即可完成训练模型和评估

    model = KNeighborsClassifier()
    model.fit(x_train,y_train)
    predictions = model.predict(x_test)
    print(accuracy_score(y_test, predictions))

    其他三种算法的实现过程也是类似的,最后我们来看来四种算法的正确率

    从结果可以看到,KNN的效果最好为90%,而基于决策树的随机森林表现较差为83.3%,当然由于随机性每次的结果可能不同,感兴趣的读者可以多试几次。

    结束语

    以上就是使用著名的IRIS数据集并使用分类算法创建和训练模型的全部过程,当然你也可以使用更大的数据集/不同的模型来进行训练。文中使用的数据可以在『早起Python』后台回复:ML获取。感兴趣的话一定要动手敲一遍代码!下一期将继续以这种形式来介绍经典的机器学习案例,如果你喜欢本系列的话请点个在看让我知道,拜拜~

  • 相关阅读:
    注意事项
    org.apache.jsp.index_jsp
    部署 Web 项目 到 Deepin
    WEB项目打包
    IDEA开启JSP热部署
    16.【转载】Swagger2文档插件:常用注解及属性说明
    8.【原创】Spring Mvc配置Swagger+swagger-bootstrap-ui生成日志服务
    7.【原创】Spring Mvc自定义DispatcherServlet类,处理404异常
    12.【原创】ES6常用的新语法
    15.【转载】使用TortoiseGit,设置ssh方式连接git仓库
  • 原文地址:https://www.cnblogs.com/liuzaoqi/p/13041405.html
Copyright © 2011-2022 走看看