美文网首页
01 基本操作-鸢尾花分类knn

01 基本操作-鸢尾花分类knn

作者: andyham | 来源:发表于2020-02-14 16:32 被阅读0次

    第一个应用:鸢尾花分类

    需要的几个python库

    scikit-learn:两个 Python 包:NumPy 和 SciPy。NumPy包括多维数组、高级数学函数(比如线性代数运算和傅里叶变换),以及伪随机数生成器。 SciPy具有线性代数高级程序、数学函数优化、信号处理、特殊数学函数和统计分布等多项功能。

    numpy scipy

    matplotlib:画图必备。绘图和进行交互式开发。

    matplotlib

    pandas:基于一种叫作 DataFrame 的数据结构,这种数据结构模仿了 R 语言中的 DataFrame。类似于 Excel 表格。pandas 中包含大量用于修改表格和操作表格的方法,尤其是可以像 SQL 一样对表格进行查询和连接。

     pandas

    数据集部分:组中包含 150 朵不同的花的测量数据,但花种类就三种setosa,versicolor,virginica(词语很专业,不用特别查阅)数。每朵鸢尾花的一些测量数据(即特征):花瓣petal长度宽度以及花萼sepal的长度和宽度,所有测量结果的单位都是厘米。可以调用 load_iris 函数来加载数据,这是默认数据集,不需要额外导入,可以尝试打印前5个看看效果。

    feature和种类 打印前5个看看

    数据都ok了,接下来,我们要做3件事情。1.把数据分为训练集和测试集。为什么这么分?要用训练集来调整我们的算法模型是否ok,然后把模型放在测试集看看是否work? 2如何分类我们无需自己造轮子,选取一个已经有的经典模型,模型的选取有很多讲究,这里先不展开,具体可以看周志华的书。3验证一下我们选取的模型在测试的效果怎么样。下面先看第一步,分train和test。主要是红色框的split,下面是打印出结果集

    train和test

    第二步要选择模型,这里选择默认的knn,knn的具体定义可以参考各大搜索引擎。简单的说,把要比较的feature和最像(最像由距离决定,距离由向量决定,最像由阈值决定)的结果挑出来,最像的什么类型,你就是什么类型。近朱者赤近墨者黑的意思。

    sklearn中的knn算法

    第三步测试一下方法怎么样。我们用knn在训练集把方法训练好后,就把模型带到测试去看看准不准。医生带学生识别如何分辨病症,然后带两个病人要学生看看准不准。病人这里就是测试集。

    输入了测试集,发现鸢尾花的setosa种类

    测试一个不行,要把所有的测试集都输入模型中看看准度。如何验证准度呢?原来100%的数据中,划分了75做训练集。然后剩下的25做测试集把名字去掉,和模型算出来的名字对比。一样的就算对了,不一样的就算错了。

    mean和score两个方法都可以算对比准度

    结果显示准度是97%。结果集的准度可以优化,和哪些有关呢?

    1.训练集和测试集的划分

    2.模型的优化,knn、贝叶斯等

    3.调整模型,如knn要计算多少个邻居才算准。

    相关文章

      网友评论

          本文标题:01 基本操作-鸢尾花分类knn

          本文链接:https://www.haomeiwen.com/subject/zqndfhtx.html