目录
1.机器学习分类
监督学习:监督学习是从标记的训练数据来推断一个功能的机器学习任务。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。
无监督学习:无监督学习就是按照他们的性质把他们自动地分成很多组,每组的问题是具有类似性质的(比如数学问题会聚集在一组,英语问题会聚集在一组.......),所有数据只有特征向量没有标签,但是可以发现这些数据呈现出聚群的结构,本质是一个相似的类型的会聚集在一起。把这些没有标签的数据分成一个一个组合,就是聚类。
半监督学习:半监督学习在训练阶段结合了大量未标记的数据和少量标签数据。与使用所有标签数据的模型相比,使用训练集的训练模型在训练时可以更为准确,而且训练成本更低。在现实任务中,未标记样本多、有标记样本少是一个比价普遍现象,如何利用好未标记样本来提升模型泛化能力,就是半监督学习研究的重点。要利用未标记样本,需假设未标记样本所揭示的数据分布信息与类别标记存在联系。
强化学习:所谓强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大。如果Agent的某个行为策略导致环境正的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。
简单来说就是给你一只小白鼠在迷宫里面,目的是找到出口,如果他走出了正确的步子,就会给它正反馈(糖),否则给出负反馈(点击),那么,当它走完所有的道路后。无论比把它放到哪儿,它都能通过以往的学习找到通往出口最正确的道路。强化学习的典型案例就是阿尔法狗。
无监督学习VS监督学习:
- 监督学习方法必须要有训练集与测试样本。在训练集中找规律,而对测试样本使用这种规律。而非监督学习没有训练集,只有一组数据,在该组数据集内寻找规律。
- 监督学习的方法就是识别事物,识别的结果表现在给待识别数据加上 了标签。因此训练样本集必须由带标签的样本组成。无监督学习方法只 有要分析的数据集的本身,预先没有什么标签。如果发现数据集呈现某种 聚集性,则可按自然的聚集性分类,但不予以某种预先分类标签对上号为目的。
何时采用哪种方法 ?
简单的方法就是从定义入手,有训练样本则考虑采用监督学习方法;无 训练样本,则一定不能用监督学习方法。但是,现实问题中,即使没有训 练样本,我们也能够凭借自己的双眼,从待分类的数据中,人工标注一些 样本,并把它们作为训练样本,这样的话,可以把条件改善,用监督学习 方法来做。对于不同的场景,正负样本的分布如果会存在偏移(可能大的 偏移,可能比较小),这样的话,监督学习的效果可能就不如用非监督学 习了。
2. k-means算法
k-means算法也就是k均值算法。k-means算法以k为参数,把n个 对象分成k个簇, 使簇内具有较高的相似度, 而簇间的相似度较低。
3.相关代码参考
示例1:K-means原理实现:
# 导入numpy
import numpy as np
import matplotlib.pyplot as plt
def build_data(file_name):
"""
数据转化
:param file_name: 文件路径+名称
:return: 转化后的数据
"""
data = []
# 加载数据
with open(file_name) as f:
# 读取数据
lines = f.readlines()
# print(lines)
# 对每一个元素数据单独处理