☀️机器学习入门☀️(一) 机器学习简介 | 附加小练习

网友投稿 922 2025-04-03

目录

1. 机器学习是什么

2. 机器学习、深度学习和人工智能的区别与联系

3. 机器学习的应用

4. 机器学习分类

4.1 监督学习

4.2 无监督学习

4.3 半监督学习

4.4 强化学习

5. 小练习

5.1 第一题

5.2 第二题

5.3 第三题

1. 机器学习是什么

用老师上课的一张图我们可以用大白话来解释:

大量的数据通过这个学习机器去学习计算,然后获取到一些精华的数据来进行一些猜想,预测或是实践。

e.g:

举个例子,高考,每个人进行大量的题目学习,然后去高考。进行大量的题目学习,就是学习计算,然后获取到了一些精华的数据知识,去高考就是用你所学的数据知识进行实践。人如此,机器也是如此,这也可以应用在机器上面,如果一个机器去经过大量的题目进行学习,机器也可以去参加高考,而且也不会差。

再举个例子,给机器很多的猫狗图片,让这个机器一直看,一直训练学习,那当训练到一定程度的时候,就会让这个机器能认清楚,识别出猫狗的图片了,这也就是机器学习了。如果是过拟合的情况,我们以后再说。

用专业术语来说的话就是

对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E中学习。

2. 机器学习、深度学习和人工智能的区别与联系

今天的深度学习已经是一个广袤的学科领域了。

深度学习是实现机器学习的一种方法

机器学习是实现人工智能的一种途径

3. 机器学习的应用

人脸识别:我们手机上的faceID就是一个机器学习的应用

阿尔法狗:和世界棋手柯洁的切磋

无人驾驶:特斯拉的无人驾驶技术

推荐算法:抖音,头条的推荐算法,根据你的喜好,推荐你感兴趣的内容

等等

4. 机器学习分类

机器学习可分为监督学习,无监督学习,半监督学习,强化学习等等

4.1 监督学习

拥有标签可监督算法不断调整模型,得到输入与输出的映射函数

举个例子:

给你一个已经标注好的数据集,比如猫狗。已经知道这些数据集是猫和狗了,让你去进行学习。根据已给的特征进行学习辨别。去辨认未来一些未知的图像是猫还是狗。

4.2 无监督学习

无标签,通过分析数据本身进行建模,发掘底层信息和隐藏结构。

举个例子:

给你一个数据集,但是你不知道这是什么数据集,可能有猫有狗,也可能有猫有狗有猪,这是不知道的,让你去根据他们的特征的不同去分类。

4.3 半监督学习

部分有标签,部分无标签,并使用这些数据进行模型训练

举个例子:

给你一个数据集,让你知道这个数据集是里面是有猫的,但是只是确定的是猫,还有没有狗和猪。这是未知的。使用大量的未标记,以及同时使用标记的数据去进行模型识别工作。

4.4 强化学习

先行动起来,如果方向正确那么就继续前行,如果错了,吸取经验,好好改正,失败乃成功之母,从头再来就是。

总之要行动,即想要理解信息,得输入到输出的映射,就需要从自身的以往经验中去不断学习来获取知识,从而不需要大量已标记的确定标签,只需要一个评价行为好坏的奖惩机制进行反馈,强化学习通过这样的反馈自己进行学习。(当前行为好以后就多往这个方向发展,如果坏就尽量避免这样的行为,即不是直接得到了标签,而是自己在实际中总结得到的)

5. 小练习

前提:电脑已经有了python环境

安装sklearn

换源安装sklearn

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn scikit-learn

1

5.1 第一题

生成数据make_circles和make_moons并显示X=400x2,Y={0,1}^400 画图

这个X就是一个400*2的矩阵点,点的第一个是X的值,点第二个是Y的值

Y就是这个400的点的分类,0和1代表决策,一个是内圈一个是外圈。

from sklearn.datasets import make_circles from sklearn.datasets import make_moons import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocator fig = plt.figure(1) # 创建一个figure的画图窗口 """ n_samples:整数 生成的总点数,如果是奇数,内圆比外圆多一点 shuffle:布尔变量 是否打乱样本 noise:double或None 将高斯噪声的标准差加入到数据中 random_state:整数 RandomState instance or None,确定数据集变换和噪声的随机数生成。 factor:0 < double < 1 内外圆的半径之比 """ x1, y1 = make_circles(n_samples=400, factor=0.2, noise=0.1) # 生成一个二维的大圆,包含一个小圆 # datasets.make_circles()专门用来生成圆圈形状的二维样本 # factor表示内圈和外圈的半径之比.每圈共有n_samples/2个点 plt.subplot(1, 2, 1) # 一行两列,这个画在第一个 plt.title('data by make_circles()') # 标题 yList = [] for y in y1: if y == 1: y = 'r' # 更改颜色 yList.append(y) else: y = 'b' yList.append(y) x_major_locator = MultipleLocator(0.5) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) plt.xlim(-1.4, 1.4) # 设置x轴间隔 plt.scatter(x1[:, 0], x1[:, 1], marker='o', c=yList) # 横纵坐标 plt.tight_layout(pad=4) # 两个图片之间距离 """ n_numbers : 生成样本数量 shuffle : 是否打乱,类似于将数据集random一下 noise : 默认是false,数据集是否加入高斯噪声 random_state : 生成随机种子,给定一个int型数据,能够保证每次生成数据相同。 """ plt.subplot(1, 2, 2) # 一行两列,这个画在第二个 x2, y2 = make_moons(n_samples=400, noise=0.1) x_major_locator2 = MultipleLocator(0.5) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator2) plt.xlim(-1.4, 2.4) plt.title('data by make_moons()') # 标题 plt.scatter(x2[:, 0], x2[:, 1], marker='o', c=y2) plt.show()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

5.2 第二题

高维数据如何可视化?

t-SNE(t-distributedstochastic neighbor embedding )是目前最为流行的一种高维数据降维的算法。

在大数据的时代,数据不仅越来越大,而且也变得越来越复杂,数据维度的转化也在惊人的增加

例如,一组图像的维度就是该图像的像素个数,其范围从数千到数百万。对计算机而言,处理高维数据绝对没问题,但是人类能感知的确只有三个维度,因此很有必要将高维数据可视化的展现出来。那么如何将数据集从一个任意维度的降维到二维或三维呢。

T-SNE就是一种数据降维的算法,其成立的前提是基于这样的假设:尽管现实世界中的许多数据集是嵌入在高维空间中,但是都具有很低的内在维度。也就是说高维数据经过降维后,在低维状态下更能显示出其本质特性。这就是流行学习的基本思想,也称为非线性降维。

将三维的数据编程二维可查看的数据形式。

具体可以查看这一篇博客 高维数据可视化

5.3 第三题

上机器学习数据库,机器学习数据库 ,下载并显示至少一个图像和一个文档的数据集。

import PIL.Image as Image import os IMAGES_PATH = r'D:\data\jpg\' # 图片集地址 IMAGES_FORMAT = ['.jpg', '.JPG'] # 图片格式 IMAGE_SIZE = 1000 # 每张小图片的大小 IMAGE_ROW = 5 # 图片间隔,也就是合并成一张图后,一共有几行 IMAGE_COLUMN = 10 # 图片间隔,也就是合并成一张图后,一共有几列 IMAGE_SAVE_PATH = r'D:\data\data.jpg' # 图片转换后的地址 # 获取图片集地址下的所有图片名称 imageNames = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if os.path.splitext(name)[1] == item] # for x in os.listdir(IMAGES_PATH): # for item in IMAGES_FORMAT: # 简单的对于参数的设定和实际图片集的大小进行数量判断 if len(imageNames) != IMAGE_ROW * IMAGE_COLUMN: raise ValueError("合成图片的参数和要求的数量不能匹配!") # 定义图像拼接函数 def imageCompose(): toImage = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) # 创建一个新图 # 循环遍历,把每张图片按顺序粘贴到对应位置上 for y in range(1, IMAGE_ROW + 1): for x in range(1, IMAGE_COLUMN + 1): from_image = Image.open(IMAGES_PATH + imageNames[IMAGE_COLUMN * (y - 1) + x - 1]).resize( (IMAGE_SIZE, IMAGE_SIZE), Image.ANTIALIAS) toImage.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE)) return toImage.save(IMAGE_SAVE_PATH) # 保存新图 if __name__ == '__main__': imageCompose() # 调用函数

1

2

3

4

5

6

7

8

9

☀️机器学习入门☀️(一) 机器学习简介 | 附加小练习

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

输出形式

机器学习 深度学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Excel公式审核之追踪引用单元格介绍
下一篇:找到最佳的ERP顾问的清单
相关文章