Iris(鸢尾花) 数据集-机器学习入门

版权声明:博客版权所有,转载注明出处。 https://blog.csdn.net/qq_33083551/article/details/88994936

共同学习之作,欢迎讨论,因为个人能力问题,存在诸多不足。共同进步。

目录

一 环境

二 基础知识

 三 任务

1.导入需要的库

2.数据载入

3.训练模型

4.预测

5.结果

GIT地址:


一 环境

第一步,去https://www.python.org/官网下载最新的Python。

开发环境用pycharm或者anaconda都行,个人建议两个都下,我是两个都用,但是pycharm涉及到激活码和安装库的问题,懂得人自然懂。

个人使用anaconda

第二步

安装各个库。

go

二 基础知识

本教程会采用下述两个库来实现机器学习算法:

scikit-learn 和 Keras

然后需要的库,或者说个人推荐的库:

  • Numpy:用于 Python 的数值处理,最常用的一个库
  • PIL:一个简单的图像处理库
  • scikit-learn:包含多种机器学习算法
  • Kears 和 TensorFlow:懂得人自然懂,import tensorflow as tf!!!
  • OpenCV: OpenCV,后续人脸或者图像都会用到

西瓜书的第一个例子就是鸢尾花数据集

来 yuan~~~鸢。

我们可以把这个 Iris(鸢尾花)理解成为helloworld。

class label是花的名字,Iris Setosa,Iris Versicolor   and   Iris Virginica

然后图中的四个属性分别是

  • Sepal length--萼片长度
  • Sepal width--萼片宽度
  • Petal length--花瓣长度
  • Petal width--花瓣宽度

 三 任务

根据给定的四个属性,训练一个机器学习模型来正确分类每个样本的类别。

万变不离其中,有句话请诸君静听

  • step1:评估你的问题
  • step2:准备数据(原始数据、特征提取、特征工程等等)
  • step3:检查各种机器学习算法
  • step4:检验实验结果
  • step5:求索,思考,进一步

go

1.导入需要的库

# -*- coding: utf-8 -*-

from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.datasets import load_iris
import argparse

2.数据载入

先设置参数

# 设置参数
ap = argparse.ArgumentParser()
ap.add_argument("-m", "--model", type=str, default="knn", help="type of python machine learning model to use")
args = vars(ap.parse_args())

# 定义一个保存模型的字典,根据 key 来选择加载哪个模型
models = {
    "knn": KNeighborsClassifier(n_neighbors=1),
    "naive_bayes": GaussianNB(),
    "logit": LogisticRegression(solver="lbfgs", multi_class="auto"),
    "svm": SVC(kernel="rbf", gamma="auto"),
    "decision_tree": DecisionTreeClassifier(),
    "random_forest": RandomForestClassifier(n_estimators=100),
    "mlp": MLPClassifier()
}

然后载入数据

print("[INFO] loading data...")
dataset = load_iris()
(trainX, testX, trainY, testY) = train_test_split(dataset.data,
    dataset.target, random_state=3, test_size=0.25)

这行代码我需要解释一下

dataset直接用的load,库里面自带的

然后用split来划分

 75% 数据作为训练集,25% 作为测试集。

3.训练模型

# 训练模型
print("[INFO] using '{}' model".format(args["model"]))
model = models[args["model"]]
model.fit(trainX, trainY)

4.预测

# 预测并输出一份分类结果报告
print("[INFO] evaluating")
predictions = model.predict(testX)
print(classification_report(testY, predictions, target_names=dataset.target_names))

5.结果

我们可以看到,用KNN预测的准确率高达 0.95  也就是95%

我哭了 泥萌呢?

GIT源码地址:

https://github.com/PANBOHE/Beginner-s-Machine-Learning-Introduction-

猜你喜欢

转载自blog.csdn.net/qq_33083551/article/details/88994936