二、正负样本不平衡处理方法总结( 三 )


,即所有权重的平方和不超过参数C 。这时候我们的目标就转换为:最小化训练样本的误差,但是要遵循w平方和小于C的条件 。
L1正则与L2正则区别:
L1:计算绝对值之和,用以产生稀疏性(使参数矩阵中大部分元素变为0),因为它是L0范式的一个最优凸近似,容易优化求解;广泛的用于特征选择机制
L2:计算平方和再开根号,L2范数更多是防止过拟合,并且让优化求解变得稳定快速;L2的目标是衰减权重,使权重更加接近原点1.
所以对于防止过拟合优先使用L2 是比较好的选择 。
(3)、数据集扩增
通俗得讲,数据集扩增即需要得到更多的符合要求的数据,即和已有的数据是独立同分布的,或者近似独立同分布的 。一般有以下方法:从数据源头采集更多数据、复制原有数据并加上随机噪声、重采样、根据当前数据集估计数据分布参数,使用该分布产生更多数据等 。
(4)、
对于神经网络,在训练开始时,随机删除一些(可以设定为一半,也可以为1/3,1/4等)隐藏层神经元,即认为这些神经元不存在,同时保持输入层与输出层神经元的个数不变 。这样一次迭代更新便完成了 。下一次迭代中,同样随机删除一些神经元,与上次不一样,做随机选择 。这样一直进行瑕疵,直至训练结束 。
(5)、特征选择,消除关联性大的特征 。
2、欠拟合四、向量的相似度计算常用方法

二、正负样本不平衡处理方法总结

文章插图
在数据分析和数据挖掘以及搜索引擎、个性化推荐等场景中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别 。常见的比如数据分析中的相关分析,数据挖掘中的分类聚类(K-Means等)算法,搜索引擎进行物品推荐时 。
相似度就是比较两个事物的相似性 。一般通过计算事物的特征之间的距离,如果距离小,那么相似度大;如果距离大,那么相似度小 。
常用的计算相似性的方法有:
1、欧几里得距离( )
欧氏距离是最常用的距离计算公式,衡量的是多维空间中各个点之间的绝对距离,当数据很稠密并且连续时,这是一种很好的计算方式 。
因为计算是基于各维度特征的绝对数值,所以欧氏度量需要保证各维度指标在相同的刻度级别,比如对身高(cm)和体重(kg)两个单位不同的指标使用欧式距离可能使结果失效 。
from math import *def Eucledian(x,y):return sqrt(sum(pow(a-b,2) for a, b in zip(x,y)))
2、曼哈顿距离( )
曼哈顿距离的实现同欧氏距离类似,都是用于多维数据空间距离的度量 。距离越小,相似度越大 。
def Manhattan(x,y):return sum(abs(a - b) for a, b in zip(x,y))
3、明可夫斯基距离( )
明氏距离是欧氏距离的推广,是对多个距离度量公式的概括性的表述 。
从公式我们可以看出,
def Minkowski(x,y,p):sumValue = http://www.kingceram.com/post/sum(pow(abs(a-b),p) for a, b in zip(x,y))mi = 1/float(p)return round(sumValue**mi, 3) # 保留3位小数
4、余弦相似度( )
余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小 。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上 。
import numpy as npdef cosine(x,y):num = np.sum(x*y)denom = np.linalg.norm(x)*np.linalg.norm(y)return round(num/denom,3)print(cosine(np.array([3,45,7,2]),np.array([2,53,15,75])))# output:0.622