一个简单的分类机器学习练习,基于sklearn。sklearn是Python中的一个机器学习模块。它其中有数据。非常方便我们用它来训练机器学习的模型,和验证我们的想法。(官方网站:https://scikit-learn.org/stable/)

使用jupyter notebook呢,能更清晰地帮我们看到每一步都做了什么并且其中功能方便能让我们随时记录下自己的想法。

  首先第一步就是导入我们所需要的模块。这里有Python基础的同学应该都明白,导入模块以后我们才能继续下面的工作。

  

#导入所需要的模块
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier #使用分类模块

然后我们把我们的数据定义一下。首先是将花的数据集载入,然后将花的数据定义为flower_x,花的结果,也就是目的,定义为flower_y

flower=datasets.load_iris()
flower_X=yuan.data
flower_y=yuan.target

看一下数据的基本信息

print(yuan_X[:4,:])#看一下数据的基本信息
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]]

这些信息是描述花的数据信息,我们的分类就是要通过这些信息的输入,让我们的机器学习模型可以自动的把这些不同数据的花分类。

print(yuan_y)

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]

这里就会看到花是被分成三类的。

下面我们将数据集分为训练集与测试集来使用。一部分用于训练模型,一部分用于测试模型,验证结果。

X_train,X_test,y_train,y_test = train_test_split(yuan_X,yuan_y,test_size=0.3)
#把测试集与数据集按照3:7的形式分裂

 knn = KNeighborsClassifier()
 knn.fit(X_train,y_train)#用训练集来训练模型

 

下面我们来测试一下结果对比

print(knn.predict(X_test))#根据模型输出用测试集的结果
[0 0 0 2 1 0 0 0 0 0 0 2 1 0 2 0 2 2 0 2 2 0 0 1 2 1 1 0 1 2 2 1 0 2 1 1 1
2 1 2 2 0 0 2 2]

实际的数据结果

print(y_test)#把真实的测试集拿出来做比较
[0 0 0 2 1 0 0 0 0 0 0 2 1 0 2 0 2 2 0 2 2 0 0 1 2 1 1 0 1 2 2 1 0 2 1 1 1
2 1 2 2 0 0 2 2]

由此可以见到,我们的模型预测还是十分准确的,这就是一个简单的花的分类问题,也是一个简单的机器学习应用。

机器学习练习(一)-使用jupyter notebook的更多相关文章

  1. 【机器学习实践】解决Jupyter Notebook中不能正常显示中文标签及负号的方法

    import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams[' ...

  2. Jupyter Notebook 导出PDF与Latex中文支持

    Jupyter Notebook 最近搞机器学习用到了Jupyter Notebook. 作为一个实时记事本,有时需要将内容导出为PDF. 但是,Jupyter Notebook自带的File -&g ...

  3. 机器学习:Jupyter Notebook中numpy的使用

    一.Jupyter Notebook的魔法命令 # 模块/方法 + ?或者help(模块/方法):查看模块/方法的解释文档: 1)%run # 机械学习中主要应用两个魔法命令:%run.%timeit ...

  4. 机器学习(三) Jupyter Notebook, numpy和matplotlib的详细使用 (上)

    工欲善其事,必先利其器.在本章,我们将学习和机器学习相关的基础工具的使用:Jupyter Notebook, numpy和matplotlib.大多数教程在讲解机器学习的时候,大量使用这些工具,却不对 ...

  5. 【机器学习实践】Jupyter Notebook安装 侧边导航栏功能 操作及其他常用扩展功能介绍

    安装过程:  1. 首先我们引入jupyter_contrib_nbextension这个第三方库. 2. 在Anaconda Promot中输入命令: pip install jupyter_con ...

  6. 机器学习环境配置系列六之jupyter notebook远程访问

    jupyter运行后只能在本机运行,如果部署在服务器上,大家都希望可以远程录入地址进行访问,这篇文章就是解决这个远程访问的问题.几个基本的命令就可以搞定,然后就可以愉快的玩耍了. 1.安装jupyte ...

  7. 【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)

    问题描述 在Azure的VM中已经安装好Jupyter,并且通过jupyter notebook --port 9999 已经启动,但是通过本机浏览器,访问VM的公网IP,则始终是不能访问的错误.(T ...

  8. pyspark 中启动 jupyter notebook

    还是打算选择python学习spark编程 因为java写函数式比较复杂,scala学习曲线比较陡峭,而且sbt和eclipse和maven的结合实在是让人崩溃,经常找不到主类去执行 python以前 ...

  9. 详解 jupyter notebook 集成 spark 环境安装

    来自: 代码大湿 代码大湿 1 相关介绍 jupyter notebook是一个Web应用程序,允许你创建和分享,包含活的代码,方程的文件,可视化和解释性文字.用途包括:数据的清洗和转换.数值模拟.统 ...

随机推荐

  1. vxworks固件分析

    前言 vxworks 的固件分析流程 1.用binwalk查看固件基本信息并解压固件 2.获取固件相关信息, cpu架构,大小端 3.确定固件的加载地址 4.用IDA加载固件,并修复符号表 5. 分析 ...

  2. Java线程池相关类-Executor框架

    1.Executor 接口源码: public interface Executor { /** * Executes the given command at some time in the fu ...

  3. 自己搭建云盘 – 简单的PHP网盘程序

    自己搭建云盘 – 简单的PHP网盘程序 Veno File Manager 2.6.3 汉化版 相信大家都比较熟悉或使用过 Owncloud 网盘程序,Owncloud 虽强大,不过太过于臃肿,而 V ...

  4. Hive命令 参数

    1.hive -h     显示帮助 2.hive -h hiveserverhost -p port     连接远程hive服务器 3.hive --define a=1 --hivevar b= ...

  5. VIM 乱码终极解决

    原文链接:http://blog.163.com/mageng11@126/blog/static/1408083742012128105645169/ 关于vim乱码,这篇文章讲的很详细,mark一 ...

  6. Angularjs 表格插件的使用

    对于相关的table组件可以使用:UI Grid (ng-grid),ng-table,smart table,Angular-Datatables,tablelite,kendo-ui中的grid. ...

  7. 远程桌面报错解决:No Remote Desktop License Servers Available

    摘 要 用户发来反馈,使用部门Windows跳板机报错:The remote session was disconnected because there are no Remote Desktop ...

  8. Oracle使用order by排序关于null值处理

    select * from dual order by age desc nulls last select * from test order by age asc nulls first sqls ...

  9. keyWindow与delegate中Window的区别

    keyWindow与delegate中Window的区别 源码: // // ViewController.m // UIWindowRelated // // Created by YouXianM ...

  10. Microsoft Teams 版本与语音落地介绍

    我亲爱的小伙伴们,失踪人口回归啦~~ 今天和大家聊的是Microsoft Teams,Teams作为协作的集大成者,可以实现skype for Business的所有功能,还可以在teams里集合Of ...