鸢尾花分类算法——机器学习笔记

鸢尾花分类算法——机器学习笔记

开发环境

python、pycharm、sklearn模块。

作者想说

最近正在学习机器学习和参加JavaScript的项目,现在来整理一下机器学习的一些知识点。如果有喜欢的朋友请点个赞和关注,我会继续发一些有趣的博客一起学习。

机器学习

首先我们先来看一下机器学习的主要步骤:

  1. 数据的加载:加载、处理(清洗、规约等)数据
  2. 模型的选择:选择处理数据的模型
  3. 模型的训练:根据数据去训练模型
  4. 模型的预测:训练模型之后,用一些值去测试模型的预测结果
  5. 模型的评测:对模型进行评分,如计算准确率、均方误差,平均绝对误差等
  6. 模型的保存:保存模型,下次再使用时,不必重新训练

简单理解就是:
我们给计算机一本书(数据加载),告诉它我们怎么去学习里面的知识(模型选择),然后让它尝试去读这本书(模型训练),等它读完了书之后,问它一些书里的问题(模型预测),我们根据它的回答判断它学得好不好(模型预测),最后让它记住书里的知识不要忘记(模型保存)。

鸢尾花分类算法

鸢尾花的品种有很多,有德国鸢尾、荷兰鸢尾、黄色丹佛鸢尾等等。它们之中都有一定的特征,如德国鸢尾就是比较具有观赏性的,它的颜色非常多,也都十分美观。
鸢尾花分类算法要做的,就是从记录了鸢尾花的特征的数据,按照一定的规则把特征进行分类,比如:花瓣样式、花色、花蕊、花径粗细长短等特点进行分类。最后实现知道一朵鸢尾花的花瓣、花色等特征时,就能够判断它是哪种鸢尾花。

代码

from sklearn import datasets #数据来源
from sklearn.model_selection import train_test_split #数据分割
from sklearn.neighbors import KNeighborsClassifier #模型选择
from sklearn.externals import joblib #保存模型

def IrisTrain():
    iris_data = datasets.load_iris()    #加载
    x_train = iris_data.data   #特征集
    y_train = iris_data.target     #标签
    x_train,x_test,y_train,y_test = train_test_split(x_train,y_train,test_size=0.3)     #切割训练集和测试集
    knn = KNeighborsClassifier()    #选择模型
    knn.fit(x_train,y_train)    #训练
    iris_predict = knn.predict(x_test)     #预测
    return iris_predict,x_test,y_test,knn

if __name__ == '__main__':
    iris_predict,iris_Xtest,iris_Ytest,knn= IrisTrain()
    lables = ["德国鸢尾", "荷兰鸢尾", "网脉鸢尾"]
    for i in range(len(iris_predict)):
        print("第%s次测试,预测值是:%s,真实值是:%s" % ((i + 1), lables[iris_Ytest[i]], lables[iris_predict[i]]))
    print("准确率是:{:.2%}".format(knn.score(iris_Xtest,iris_Ytest)))
    joblib.dump(knn, r"C:\Users\Administrator\Desktop\knn_mkdel.pkl") #保存
    print("模型保存成功,请查看桌面文件knn_mkdel.pkl")

代码讲解

  • load_iris():是sklearn模块里的datasets类的方法,它记录了鸢尾花的数据集,模块已经帮我们处理好数据了,可以直接使用。
  • KNeighborsClassifier():是sklear模块neighbors类里的方法,表示是分类模型,neighbors里面也包括了许多模型,提供了便捷是模型选择方式。
  • iris_data.datairis_data.target:是我们读取的数据的特征集和标签集,特征集是记录了花色、花瓣、花蕊等特征的集合;标签集是记录了这个花色、花瓣、花蕊特征的鸢尾花是属于哪个品种的鸢尾花。

执行结果:

可以看到,预测大部分是成功的,但是也有类似图中框内的预测错误,这是正常现象,偶尔是会有判断错误的。
鸢尾花分类算法——机器学习笔记_第1张图片

你可能感兴趣的:(机器学习,Python,机器学习,鸢尾花分类,分类模型)