Python 基础 之 jupyter notebook 中机器学习的简单入门书写数字识别 demo 操作学习

目录

Python 基础 之 jupyter notebook 中机器学习的简单入门书写数字识别 demo 操作学习

一、简单介绍

二、原理过程

三、用到的 python 模块

四、效果预览

五、jupyter notebook 创建项目

六、入门书写数字识别 demo 实现过程

七、8 bit 像素工具绘制测试图片


一、简单介绍

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。

本节将介绍,将使用 jupyter notebool 进行一个简单手写数字的模型训练,然后使用该模型进行手写数字的识别过程,初步熟悉一下机器学习的一个简单过程。

Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等

二、原理过程

大致如下:

训练过程可能根据模型准确率,不断改进模型,在训练,在检测,如此反复

三、用到的 python 模块

1、sklearn  (数据、和训练模型)

2、matplotlib (数据图片可视化)

3、pillow (图片数据的读取)

4、numpy (图片数据的处理)

四、效果预览

五、jupyter notebook 创建项目

jupyter notebook 打开配置参见博文:https://blog.csdn.net/u014361280/article/details/110474676

1、打开 jupyter notebook ,新建一个文件夹

2、如有必要重命名文件夹

3、在新建文件夹中,新建一个 python 文件

4、必要的话重命名文件

5、编写代码,点击运行,运行脚本(或者快捷方式:Shift+Enter)

六、入门书写数字识别 demo 实现过程

1、导入必要的python 包,运行

没有报错,说明包没有问题,若有报错,对应检查报名,必要下载缺失的包即可

# 导入训练集
from sklearn import datasets
# 导入算法 svm
from sklearn import svm
# 导入可视化工具
import matplotlib.pyplot as plt
# 导入可以加在图片边处理的工具
from PIL import Image
#导入处理矩阵向量的工具
import numpy as np

2、获取训练数据和训练数据的答案,并且简单测试下数据,记得运行下

# 数据
digits = datasets.load_digits()
# print(digits)
# 查看图片数据(训练的数据)
images_data = digits['images']
print('训练数据个数:', len(images_data))
# 查看图片数据(训练的数据的对应答案)
images_data_target = digits['target']
print('训练数据的应答案个数:', len(images_data_target))

3、测试数据的图片可视化查看,并运行代码

# 数据转为可视化图片
plt.figure(figsize=(30, 15))
# print(images_data[0])
# print("答案:",images_data_target[0])# 循环可视化图片显示 30 个数据
for i in range (30):# 为了让多图显示不被覆盖,设置子图;一个大图中,3行10列显示子图plt.subplot(3,10, i+1)plt.imshow(images_data[i],cmap=plt.cm.gray_r)# 添加对应答案plt.title('target:%s'%(images_data_target[i]))

4、使用SVM算法模型,进行学习,并运行代码

# 使用SVM算法模型,进行学习
classifier = svm.SVC(gamma=0.001)
# fit 开始学习 fit(训练集合,训练集合的对应答案集合)
# 注意输入数据要拉平的,既是一行多列的
images_data = digits['data']
classifier.fit(images_data, images_data_target)

5、训练模型的自测试,并运行代码

# 训练数据自测 (注意输入数据要拉平的,既是一行多列的)
test_x = digits['images'][23].reshape(1, -1)
test_y = digits['target'][23]
print("训练答案:",test_y)
test_predict = classifier.predict(test_x)
print("机器预测答案:",test_predict)

6、读取之前手绘的数据,并做数据处理(以便符合训练数据模型的数据要求),并图片可视化显示,运行代码

# 读取之前手绘的数据
img = Image.open('./7.png').convert("L")
# 显示图片
# img
# 把数据改写成模型训练格式的数据
# 1、创建一个 8x8的矩阵
my_img_data = np.zeros((8,8),dtype=np.int)
# 2、把数据赋值到矩阵中
for i in range(8):for j in range(8):# 注意数据翻转,不然是倒转的my_img_data[i][j] = 255 - img.getpixel((j,i))# 由于模型训练的数据值在0-16之间,所以这里也需要把0-255映射到 0-16my_img_data[i][j] = my_img_data[i][j] * 16 / 255
#查看
print(my_img_data)
# 图片显示
plt.imshow(my_img_data,cmap=plt.cm.gray_r)

7、新的数据测试训练的模型,并得到预测结果,运行代码

# 新的数据测试巡礼的模型
# (注意输入数据要拉平的,既是一行多列的)
my_img_data = my_img_data.reshape(1, -1)
print(my_img_data)
my_img_data_predict = classifier.predict(my_img_data)
print("my_img_data 的答案:7")
print("my_img_data 机器预测的结果:",my_img_data_predict)

七、8 bit 像素工具绘制测试图片

1、百度上搜索8bit像素画,即可找到对应工具

8bit像素画在线会图工具网址:http://www.lizibuluo.com/8bit/

2、工具打开如图

3、绘制一个如图 8x8 宫格的图,数字根据自己需要绘制即可

4、保存绘制的图

5、右键保存选择区域即可

6、保存路径下得到图片

7、修改图片像素,右键 画图工具打开

8、重新调整大小,修改像素为 8x8 的

9、保存图片

10、导入工程中,即可相对路径读取使用

最后,感谢一下某院的老师。

Python 基础 之 jupyter notebook 中机器学习的简单入门书写数字识别 demo 操作学习相关推荐

  1. 【Python基础】Jupyter Notebook最常用的五大配置技巧

    说到Jupyter Notebook(以下简称Jupyter),想必很多人都不陌生,这是一款神奇的web应用,权且可以把它当作python超级笔记本,当然它还支持R.Julia.Scala.Js等几十 ...

  2. python基础----Anaconda Jupyter Notebook

    1.安装Anaconda Anaconda : 一般情况下,大的开发工具,可以从国内镜像源查找. 清华大学镜像,北京外国语大学镜像,阿里云镜像等等 网址:https://mirrors.tuna.ts ...

  3. python matplotlab在jupyter notebook中画图不显示怎么办?(%matplotlib inline)

    在程序中代码最上方加上: 总结:%matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步. 引用文章1: 解决jupyt ...

  4. python非线性最小二乘拟合_非线性函数的最小二乘拟合——兼论Jupyter notebook中使用公式 [原创]...

    突然有个想法,利用机器学习的基本方法--线性回归方法,来学习一阶rc电路的阶跃响应,从而得到rc电路的结构特征--时间常数τ(即r*c).回答无疑是肯定的,但问题是怎样通过最小二乘法.正规方程,以更多 ...

  5. 如何在Jupyter notebook中运行python的.py文件,以及ipynb文件与py文件的相互转化

    文章目录: 1 Jupyter notebook中%开头的一些方法使用 1.1 运行python的py文件 1.2 加载本地文件 2 ipynb文件与py文件的相互转化 2.1 jupyter not ...

  6. Jupyter notebook 中使用pip install安装第三方Python包

    一句话概括Jupyter notebook pip install(适合比较着急的读者) 使用方式: 在pip install -[Package]前加上一个!即可,比如想要使用pip install ...

  7. python 数学公式显示_ipython jupyter notebook中显示图像和数学公式实例

    1. # 可以使用LaTeX表示数学公式 # 可以使用LaTeX表示数学公式 from IPython.display import Latex Latex(r"$\sqrt{x^2+y^2 ...

  8. python中两个文件如何互相传参_argparse模块如何在jupyter notebook中用于传参?

    作者:于晨晨 研究方向:nlp 发表于公众号:AI技术日常 在python代码文件中,通常需要传参,传参就需要经常使用argparse.使用argparse模块在py文件中是正常的,但是jupyter ...

  9. Jupyter lab add kernel Python+Julia+R 【jupyter Notebook 切换Python环境】and【在jupyter Notebook中安装第三方库】

    新增虚拟环境 conda create -n py2 python=2.7 进入python2的环境 conda activate py2 安装python2的内核并应用 python2 -m pip ...

最新文章

  1. 在Ubuntu 14.04和CentOS上安装boost1.55二进制包
  2. Android_微信_设置
  3. 长沙医学院计算机系怎么样,长沙医学院有哪些专业及什么专业好
  4. android fragment 抽屉,android – 更改Fragment中的导航抽屉项目
  5. 用Delphi编写ASP的ActiveX
  6. (蓝桥杯)2018JAVA B组 日志分析
  7. 2004-4-3+ asp.net编程环境的配置
  8. C++学习之路 | PTA乙级——1092 最好吃的月饼 (20 分)(精简)
  9. 数据 + 代码,基于 Keras 的烟火检测
  10. 华为AI战略完整披露!2款AI芯片首次曝光,拳打TPU,争锋英伟达
  11. OSPF 224.0.0.5(AllSPFRouters)和224.0.0.6(AllDRouters)的区别
  12. NCS8801S:RGB/LVDS转EDP芯片功能汇总及设计注意事项
  13. 命令注入的一点学习记录
  14. 操作系统:高响应比优先调度算法(HRRN)Java代码实现
  15. PropertyUtils嵌套属性的使用
  16. PCIe Expansion Roms
  17. leetcode——control reaches end of non-void function
  18. PV、UV、CTR含义
  19. 名字作诗,让你的名片更具有趣味性和个性化
  20. 详细讲解BM字符串搜索算法

热门文章

  1. 晶联讯12864液晶+STM32+HAL库 IO模拟SPI成功实现显示。
  2. Android中Assets文件路径
  3. windows下安装mpich2
  4. MySQL创建远程连接用户,使用远程工具连接数据库(详细)
  5. Caused by: liquibase.exception.ValidationFailedException: Validation Failed:1 change sets check sum
  6. python中美元人汇率_Python获取美元人民币实时汇率
  7. android obb在哪,obb是什么文件 obb文件怎么用
  8. 夜神安卓(android)模拟器 摇一摇
  9. vue 中updated的使用
  10. 反问疑问_反问疑问句