机器学习识别手写数字 – 谁是好人,谁是坏人?【1】

本项目使用到svm算法,本质上,不仅将一组问题和对应的答案同时提供给 svm 算法,还得提供很多组问题和对应的答案,让该算法学习“什么样的问题究竟对应什么样的答案”,并且把答案进行最大化二分,即:是 or 否,对 or 错。可以理解为网上跟人对线时的二极管思想,非黑即白;又或者小孩子看电影时最喜欢问的问题:“谁是坏人?谁是好人?”

不知道大家是否了解一个 python 常用的处理工具——jupyter notebook,就我所知,我女朋友所在的金融行业广泛应用,我觉得python的代码岗位应该用的更多(不过稳定性和实时性欠佳,有更好的平替工具),本案例就是用这个工具作为python的处理工具,该工具可以图形化显示矩阵和函数图线。

这个小项目就是基于 anaconda 的库,利用 jupyter 这个处理平台来做的,课程内容不多,大概学一上午就学完了,但是还远不能达到拿出去吹比的程度,后面还有一些硬骨头要啃,但是可以给简历多一条内容。

简历项目经验加一,谁不喜欢?

首先安装Anaconda。什么是Anaconda?看看百科——

anaconda:(开源的Python发行版本)

Anaconda 包括 Conda、Python 以及一大堆安装好的工具包,比如:numpy、pandas等180多个科学包及其依赖项。

相信很多小伙伴是久闻 numpy 和 pandas 的大名的,这两个包我们在这个项目中都要用到。

#  导入处理矩阵和数组的包
#  import proccessing matrix model
import numpy as np

· numpy——貌似是 “Numerical” 和 “Python” 的合体,顾名思义,是“python 中用来算 number”的包,一般我们用于处理数组和矩阵(这俩可以说是一回事儿);

· pandas——Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis),跟熊猫没有一毛钱关系。它是基于numpy的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。可以理解为在处理数字矩阵的基础上,进行更进一步逻辑处理的包。

听起来很复杂,其实还好,你就把他想象成java的库就好了,里面有很多函数,还有很多比函数更高级的包,实现远比函数更为复杂的功能,比如我们今天会用到的一个名为“sklearn”的包,这个包从名字就能看出来,他是跟“学习”有关的,很明显, 并不是让人学习,

那只能通过机器学习——机器学习来实现。

故事片开始。

#  import the training sets
#  导入训练集
from sklearn import datasets

#  svm - Support Vector Machine
#  导入‘支持向量机’,本质上是个‘二分类器’
from sklearn import svm

· sklearn——Scikit-learn(旧称scikits.learn,也称为sklearn)是 “Science kit”(科学组件)和 “Learn”(学习)的合体,是针对Python 编程语言的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN,并且旨在与Python数值科学库NumPy和SciPy联合使用。

· datasets——sklearn包中的数据集。该数据集包含了很多二维矩阵的信息,以及类似 xml 文件中的 title 信息。矩阵代表了一块画布,矩阵的长宽代表了画布的长款像素点数,矩阵中每一个数值代表了他所在方格的黑度,最黑是255,最白是0,后面的例子中可以看到具体呈现。

· svm——sklearn包中的算法,主要用于小样本下的二分类、多分类以及回归分析,是一种有监督学习的算法。基本思想是寻找一个超平面来对样本进行分割,把样本中的正例和反例用超平面分开,其原则是使正例和反例之间的间隔最大。

相关文章:

机器学习算法与Python实践之(二)支持向量机(SVM)初级_zouxy09的专栏-CSDN博客_支持向量机python

用人话说就是,将问题和对应的答案同时提供给 svm 算法,还得提供很多组问题和对应的答案,让该算法学习“什么样的问题究竟对应什么样的答案”,并且把答案进行最大化二分,即:是 or 否,对 or 错。可以理解为网上跟人对线时的二极管思想,非黑即白;又或者小孩子看电影时最喜欢问的问题:“谁是坏人?谁是好人?”

当算法知道谁是坏人谁是好人时,我们会在这个时候问它一个新的问题,比如向算法展示蜘蛛侠的脸,问他:“这是好人吗? “算法应该很好。简单地回答:“这是一个好人。”然后,该模型甚至在最初得到了成功的训练。

有同学可能会问:如果给算法看 Venom 的脸呢?提出这种问题的同学出去左转,去找章鱼博士看看他的大脑。漫威反复洗白,不分善恶的设定,确实为人工智能的二分法加分不少。我们稍后会介绍新的算法。现在只是开始,让大家体验一下。

我们继续。

#  导入可视化工具
#  import visualization tools
import matplotlib.pyplot as plt

· matplotlib——是一个Python的 2D绘图库,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

·pyplot——Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt(代码中的“as” 是设置别名的操作)。

相关文章:

Matplotlib Pyplot | 菜鸟教程 (runoob.com)

同学会问,我就不把这个库设置为“plt”,我想让他叫别的名字可不可以呢?可以,但是是会累死的,因为大家的库名都叫“plt”……

我的意思是,其他人会厌倦阅读您的代码。

#  导入图片并处理
#  import loading pic and proccess
from PIL import Image

· PIL——Python Imaging Library,是 Python 平台一个功能非常强大而且简单易用的图像处理库。

· image——Image类是PIL中的核心类,你有很多种方式来对它进行初始化,比如从文件中加载一张图像,处理其他形式的图像,或者是从头创造一张图像等。Image模块操作的基本方法都包含于此模块内。如open、save、conver、show…等方法。

相关文章:

Python图像库PIL的类Image及其方法介绍_leemboy的博客-CSDN博客_pil

至此,我们小项目的主要库已经导入完毕。接下来要做的就是“问题”和“解决”,即:如何让这些库(包)产生问题和相应的答案?机器如何学习这些答案和问题之间的对应关系?如何让机器自己回答新问题?

OK,马上回来。

版权声明:本文为博主朝涯原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_42279973/article/details/123306728

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月7日 下午1:48
下一篇 2022年3月7日 下午2:05

相关推荐