sklearn.model_selection.train_test_split() 2020-07-31 19:56 方法 评论 0 更多详情 功能:进行训练集和测试集的随机切分 X_train,X_test, y_train, y_test =sklearn.model_selection.train_test_split(sample_data,sample_target,test_size=0.25, train_size=None,random_state=0,stratify=y_train) train_data:所要划分的样本特征集 train_target:所要划分的样本类别数据 test_size:测试样本占比,如果是整数的话就是样本的数量。默认是0.25 train_size:训练样本的占比,如果指定了test_size按照test_size比例来分配。 random_state:是随机数的种子。 stratify:为了保持split前类的分布,保证训练集和测试集内类的分布比例相同。 import numpy as np from sklearn.model_selection import train_test_split X, y = np.arange(10).reshape((5, 2)), range(5) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42) ............
正则化 2020-06-03 13:21 概念 评论 0 更多详情 正则化的概念及原因 正则化是一种为了减小测试误差的行为(有时候会增加训练误差)。我们在构造机器学习模型时,最终目的是让模型在面对新数据的时候,可以有很好的表现。当你用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候,我们就需要使用正则化,降低模型的复杂度。 ............
交叉熵损失 2020-05-11 20:54 概念 评论 0 更多详情 紫色线代表蓝色曲线下的面积,估计概率分布(橙色线),实际概率分布(红色线) 在上面我提到的图中,你会注意到,随着估计的概率分布偏离实际/期望的概率分布,交叉熵增加,反之亦然。因此,我们可以说,最小化交叉熵将使我们更接近实际/期望的分布,这就是我们想要的。这就是为什么我们尝试降低交叉熵,以使我们的预测概率分布最终接近实际分布的原因。因此,我们得到交叉熵损失的公式为: 在只有两个类的二分类问题的情况下,我们将其命名为二分类交叉熵损失,以上公式变为: ............
交叉熵 2020-05-11 20:37 概念 评论 0 更多详情 现在,如果每个结果的实际概率为pi 却有人将概率估计为qi 怎么办。在这种情况下,每个事件都将以pi的概率发生,但是公式里的自信息就要改成qi(因为人们以为结果的概率是qi )。现在,在这种情况下,加权平均自信息就变为了交叉熵c,它可以写成: 交叉熵总是大于熵,并且仅在以下情况下才与熵相同 pi=qi ,你可以观看 https://www.desmos.com/calculator/zytm2sf56e 的插图来帮助理解。 ............
自信息 2020-05-11 20:23 概念 评论 0 更多详情 “你对结果感到惊讶的程度” 一个低概率的结果与一个高概率的结果相比,低概率的结果带来的信息量更大。现在,如果yi 是第i个结果的概率,那么我们可以把自信息s表示为: s = log ( 1 / yi ) ............
熵(信息论) 2019-04-29 20:59 概念 评论 0 更多详情 一个事件产生某个结果的自信息,我想知道这个事件平均带来多少自信息。对自信息s进行加权平均是很直观的。现在的问题是选择什么权重?因为我知道每个结果的概率,所以用概率作为权重是有意义的,因为这是每个结果应该发生的概率。自信息的加权平均值就是熵(e),如果有n个结果,则可以写成: ............