机器学习快速入门(一)

1.在机器学习算法中,按照学习方式大致可以分为四大类,分别是监督学习、半监督学习、无监督学习和强化学习。

2.监督学习是利用一组带标签的数据集,学习从输入到输出关系的映射关系f,然后将学习到的映射关系f应用到未知的数据上,用于预测未知数据的类别或数值。常见的有分类问题:预测的标签是离散的类别和回归问题:预测的标签是连续数值类型。

3,基于监督学习有这么一句话:数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限。

4.半监督学习是输入的数据有少量的标签,进行学习,学习的目的就是在这些未标记的数据中获得最优的泛化性能。

5.无监督学习就是学习的数据没有任何标签,包括关联规则分析、数据降维、聚类算法、词嵌入。

关联规则:啤酒和纸尿裤

降维算法:主成分分析(PCA),奇异值分解,他们在最大限度的保留数据内部信息同时,将数据从高维到低维,便于数据的计算和可视化。

聚类算法:K-means、基于密度的DBSCAN聚类、基于层次聚类算法等,将数据划分为不同的簇。

6.强化学习的思想源于心理学的研究,学习智能体提高和改善其性能的过程,能够学习是计算机程序具有智能的基本标志。在给定情景下,得到奖励的行为会被“强化”,而受到惩罚的行为会被“弱化”。

7.数据的标准化和数据正则化

数据标准化也叫归一化。常见的数据标准有Z-Score,和Min-Max.

Score要计算数据的均值和标准差,利用均值和标准差将数据集转化为均值为0、方差为1的分布。 

使用pytorch产生一个序列,然后用Z-Score来进行归一化处理

import torch
import matplotlib.pyplot as plt
data1=torch.randint(10,100,(2,100)).float()
data2=(data1-data1.mean())/data1.std()
plt.plot(data1[0].numpy(),data1[1].numpy(),'y*')
plt.figure()#创建新的画布
plt.plot(data2[0].numpy(),data2[1].numpy(),'r.')

 另一种数据标准化常用的方法是Min-Max

#Min-Max归一化处理
data3=(data1-data1.min())/(data1.max()-data1.min())
plt.plot(data3[0].numpy(),data3[1].numpy(),'g.')

另一个容易与数据标准化相混淆的概念是数据正则化,数据正则化与数据标准化最大的区别是:数据标准化针对的是列数据,数据正则化针对的是行数据。

数据正则化也叫特征正则化,使用p-norm范数对每行数据进行相应的转换。一般用2范数进行处理。

tmp_data=[
    [1.0,0.5,-1.0],
    [2.0,1.0,1.0],
    [4.0,10.0,2.0]
]
data4=torch.Tensor(tmp_data)
data4

 

data4/(data4.pow(2).sum(dim=1).pow(1/2).unsqueeze(1))

 从正则化的结果来看,特征之间的差别性没有正则化之前那么大,而且正则化之后的数据无量纲。通常,进行特征的正则化处理会为模型带来性能上的提升。

8.交叉验证

模型有很多技巧,核心思想是用一部分数据训练模型,然后再另一部分数据上进行验证,这种思想被称为交叉验证。

下面介绍三种交叉验证的方法:

(1)简单交叉验证:简单交叉验证就是从全部的数据S中随机选择S个样本作为训练集train,剩下的数据作为测试集test,在训练集train上训练模型,并在测试集test上进行测试,预测每条测试数据的标签,最后通过预测标签和真实标签计算分类的正确率。

train_test_split是由sklean的model_selection提供,可以对数据集进行划分。

(2)K折交叉验证:K折交叉验证将全部数据集划分成K个不相交的子集,每次从K个子集中选出一个作为测试集,剩下的作为验证集。

(3)留一法。留一法是每次只保留一个样本作为测试集,其他样本作为训练集。如果有K个样本,则需要训练K次。留一法计算最繁琐,但样本利用率最高,适合于小样本的情况。

9.过拟合和欠拟合

     在数据科学中,有的模型效果好但是容易过拟合,有的模型效果差学习不到数据之间的规律。

    欠拟合:一句话就是模型不懂数据,“你不懂我”

   过拟合:一句话就是模型太懂数据,“失去了自我”,防止过拟合的方法:1.增加数据量,2.合理的数据切分,传统的数据划分是6:2:2,大数据时代数据的划分应为98:1:1. 3.正则化,正则化是在损失函数上添加对训练参数的惩罚范数,通过添加的范数惩罚对需要训练的参数进行约束,防止模型过拟合。常用的正则化参数有L1和L2范数。

L1范数惩罚项的最终目的是将参数的绝对值最小化,L2范数惩罚项的最终目的是将参数的平方和最小化。在固定的深度学习中,使用L1范数会趋向于使用更少的参数,而其他的参数都是0,从而增加网络稀疏性,防止模型过拟合。实际中用L2范数进行正则化约束较多

4.最常用的正则化技术是引入Dropout层,随机丢掉一些神经元,减轻网络过拟合的现象。

5.提前结束训练,当网络在验证集上损失不在减小,精度不在增加时,即认为网络已经训练充分,终止网络训练。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值