自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 tf.stack与tf.concat的比较

到这里就分析完整了,从数据层面讲解了对数据不同的处理方式,仅个人见解,不到之处敬请谅解。中的1,2,3,这里不加括号是因为我们分析的是第二层括号了,已经分析到里面的元素了所以。

2024-10-22 11:24:26 268

原创 np.random.random和np.random.rand的对比

是一个整数或元组(或者列表来表示维度),指定返回数组的形状。主要区别在于参数传递方式上的不同。是非负整数,指定返回数组的形状。

2024-07-26 16:33:31 385 1

原创 tf.multiply的广播机制

在DeepFM的代码中,embedding向量与特征值相乘时用到。图片比较小,个人笔记使用。

2024-07-11 10:19:06 374

原创 关于pandas处理数据中出现问题的总结与笔记

我们在使用df.values.tolist()处理数据时候,处理的结果可能会是列表中包含列表,也有可能会是普通的列表:关键在于 DataFrame 和 Series 的结构差异。DataFrame 是二维的(行和列),Series 是一维的(只有一列数据)。

2024-07-04 09:27:23 262

原创 深度学习参数初始化(weights initializer)策略

随着网络层数的增加,分布逐渐发生偏移,之所以收敛慢,是因为整体分布往非线性函数取值区间的上下限靠近。BN就是通过规范化的手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值0方差1的标准正态分布,使得激活输入值落入非线性函数中比较敏感的区域。因为Xavier的推导过程是基于几个假设的,其中一个是激活函数是线性的,这并不适用于ReLU,sigmoid等非线性激活函数;上面的几点要求中,(1)(2)(3)基本上是硬性要求,这也就衍生出了一系列的参数初始化方法,什么正态标准化等诸如此类的标准化方法。

2024-06-20 17:10:19 244

原创 StratifiedKFold vs. KFold

对于回归任务,没有类别标签的概念,因此保持比例不适用。KFold 对回归任务同样有效,因为它关注的是整体数据的分布,而不是类别分布。:StratifiedKFold 会保持每个折叠中类标签的比例与原始数据集中的比例一致。这样可以确保每个折叠中的样本分布更加均衡,特别是在类别不平衡的情况下,评估结果会更加可靠。因此,使用StratifiedKFold会导致逻辑上的不一致,因为连续变量无法简单地划分为固定的类别。在回归任务中,目标变量是连续值而不是离散的类别标签。:可以用于回归任务和分类任务。

2024-06-04 11:24:31 244

原创 axis=0与axis=1

用来为超过一维的数组定义属性。二维数据拥有两个轴:第0轴沿着行的方向垂直向下,第1轴沿着列的方向水平延申。1表示横轴,方向从左到右;0表示纵轴,方向从上到下。

2024-05-28 14:55:48 3426

原创 关于LSTM一点简单的理解

很明显,若要达到学习高数的目的,我们必须使得高数的知识尽可能的留下来,同时线性代数中非高数的去掉,ht-1和X结合后通过激活函数很好理解,不仅归一化,同时,也可以把他们当做经过tanh的结果的系数,即激活函数后的结果是作用于tanh上的,为什么要经过tanh呢,我的理解是tanh是(-1,1)的范围,-1可以使纯线代剔除,目的就是为了输入高数的内容,与遗忘门对比来看,就比较好理解。最后,遗忘门中留下来的高数和输入门的高数相加

2024-04-24 10:43:12 418

原创 推荐算法DeepFM模型总结

基于对实对称矩阵的理解,信息的二阶特征Xi和Xj用隐向量的内积表示为:,这里他们是n*k的矩阵,参数量大大降低,也只需要维护Vi一个矩阵即可,本质上Vi和Vj只是转置的关系。【step1】计算说明如下:FM二阶项计算的是下面所有黄色正方形相加之和。最后,求参数的偏导,尤其二阶偏导的计算待补充…

2024-03-22 15:58:22 281 1

原创 random函数详解

用于生成一个指定范围内的随机符点数,代码中默认参数是[0, 10), 参数可以指定,前开后闭。这里要注意需要至少给出一个参数,一个参数的情况,范围的起点就默认为0。代码列出了其两种格式的参数的使用方法。深度学习的项目开发过程中,经常会用到。工具,其中有个生成随机数的模块。

2024-03-08 15:53:17 376 1

原创 GitBash“origin”的远程服务器报错处理

此命令将添加具有“origin”名称的新遥控器,也就是默认的名称。此命令将列出所有遥控器及其 URL。

2024-03-06 10:23:33 207 1

原创 python中格式化字符串的方法

在Python中,格式化字符串是一种将变量、表达式等值插入到字符串中的方法,使得输出更加灵活和可读。

2024-02-20 15:08:56 194 1

原创 为什么特征值分解一定为方阵,而奇异值分解分解不用

特征值分解其实是对旋转缩放两种效应的分解,而奇异值分解正是对线性变换这三种效应的一个解构。所以特征值分解是无损的,而奇异值分解是有损的。总结一下,特征值分解和奇异值分解都是给一个矩阵(线性变换)找一组特殊的基,特征值分解找到了特征向量这组基,在这组基下该线性变换只有缩放效果。由于非方阵具有投影效应(A投向B与B投向A不同),所以他无法完整分解为两个正交基的表达,所以只有方阵才能进行特征值分解(否则就会损失),只能增加一个投影因素进行分解,就是SVD。

2023-08-31 10:57:09 365 1

原创 iloc取数据的用法

使用前前,应该Python中**导入pandas库**,iloc是**Pandas**库中**DataFrame**和**Series**对象的一个方法,用于通过**整数**位置(索引)选择数据。**iloc代表"integer location"**,它允许你通过整数位置来访问数据,而不是通过标签。

2023-08-02 17:20:47 585

原创 python中append和extend的区别

python中append和extend的区别

2023-08-02 09:26:08 295

原创 *args和**args

* 可以看出 *args和 **args都具有储存多余变量的功能,区别在于 *args储存没有变量名的值,存储方式为元组;

2023-05-31 17:09:05 263

原创 协方差及协方差矩阵

如果两个变量的变动趋势一致(即当一个变量增加时,另一个变量也增加,或者当一个变量减少时,另一个变量也减少),它们的协方差为正值。如果它们的变动趋势相反(即一个变量增加时,另一个变量减少,或者一个变量减少时,另一个变量增加),协方差为负值。协方差的数值大小表示了两个变量之间的相关程度。具体地,数值越大表示两个变量的变动趋势关联性越强,正值表示正相关,负值表示负相关。为了得到一个标准化的度量,可以使用相关系数,如皮尔逊相关系数,它是通过协方差除以两个变量的标准差得到的,取值范围在-1到1之间。

2023-05-29 11:14:44 966 1

原创 基于马尔科夫链(MC)做推荐的缺点

在推荐系统中,可以将用户的行为序列看作一个状态序列,每个状态表示用户的一个历史行为,转移概率表示用户从一个历史行为转移到另一个历史行为的概率。例如,对于一个用户来说,可能只有很少的历史行为数据可以用于建模,这样就会导致很多状态之间的转移概率无法估计。此外,即使可以估计转移概率,由于状态空间很大,无法列举所有的状态和转移情况,因此需要采用一些特殊的技巧来进行估计和预测。另外,如果考虑历史信息,状态空间的大小将随着历史长度呈指数级增长,这将导致状态空间太大,不可控。,这是一个极其庞大的空间,难以处理和计算。

2023-04-22 11:37:31 639 1

原创 python 闭包

在这个例子中,outer_func是一个外部函数,它接受一个参数x,并返回一个内部函数inner_func。inner_func接受一个参数y,并返回x + y的结果。在执行closure(5)时,实际上是调用inner_func,它可以访问outer_func中定义的变量x,并返回10 + 5的结果,即15。Python闭包(closure)是指在一个函数内部定义的另一个函数,该内部函数可以访问外部函数的变量和参数,并且可以在外部函数执行完毕后继续存在。闭包的主要特点是可以“记住”它们被创建时的环境。

2023-04-16 20:32:43 69

原创 python生成器和迭代器

在Python中,迭代器是实现了 iter() 和 next() 方法的对象,其中 iter() 返回迭代器对象本身,而 next() 方法返回序列中的下一个元素。生成器函数和普通函数的主要区别在于,生成器函数返回一个生成器对象,而不是一个具体的值。在这个示例中,natural_numbers() 是一个生成器函数,它使用 yield 语句来产生一个值序列。使用迭代器时,可以使用 for 循环来遍历序列或容器中的元素,也可以使用 next() 函数来逐个获取元素。

2023-04-16 20:18:55 76

原创 RNN参数的问题

因此,RNN的每个神经元都需要处理相同类型的输入,并且需要在每个时间步计算相同的转换。因此,为了共享参数,每个神经元使用相同的权重矩阵来计算输入和隐藏状态的线性组合,并使用相同的非线性函数来计算新的隐藏状态。由于RNN可以处理任意长度的序列,因此如果每个时间步都需要独立的参数,那么模型的参数量将会随序列长度增加而指数增长,这将使得模型难以训练和使用。总之,RNN每个神经元使用相同的参数是为了共享参数并处理任意长度的序列,从而使得模型具有更好的性能和泛化能力。

2023-04-14 11:09:13 599

原创 逻辑回归与线性回归本质区别

然而,可以使用线性回归的变体——逻辑回归来解决分类问题。逻辑回归可以用于二分类问题或多分类问题。与线性回归不同的是,逻辑回归输出的是一个概率值,表示属于每个类别的概率。然后可以根据概率值来进行分类决策。因此,逻辑回归是一种广泛使用的分类算法,而线性回归则不适合用于分类问题。线性回归是一种用于建立输入变量与连续输出变量之间关系的机器学习算法。通常,线性回归用于解决回归问题,即预测一个连续值输出。因此,线性回归并不是一个分类算法。

2023-04-14 10:44:47 303

原创 用户特征一般符合长尾效应,所以对于出现比较少的特征,应该减小权重(参考DIN可知)

举个例子,如果在一个推荐系统中,某个用户只看过一次某种类型的电影,而其他用户都没有看过这种类型的电影,如果我们在训练模型时给予这种类型的电影更高的权重,那么模型可能会在训练集上过度拟合这个用户的兴趣,从而降低在其他用户上的预测能力。因此,在推荐算法中,应该谨慎对待出现次数较少的特征,可以考虑对这些特征进行降维处理或者在特征工程中使用一些其他的技巧来缓解这个问题。这是因为给予出现次数较少的特征更高的权重,可能会导致模型在训练集上过度拟合这些特征,从而降低模型在测试集上的泛化能力。

2023-04-07 17:20:25 143 1

原创 self attention 摘自李宏毅老师公开课

然后通过这个匹配程度,和每个对象的本质数值做一个加权求和,出来的结果就是找到的对象最后所包含的数值。比如如果在一个平行世界里,人们的择偶标准和他表现出来的样子以及他的本质完全一致,那么QKV没有必要存在。QKV存在的意义就是模拟这类“我想要的”和“每个人表现出来的”以及“每个人实际的”样子是不一样的情况。但这里也有一个假设,就是本质上QKV乘以的都是同一个东西,所以同一个词的q,k,v不会差得太离谱,类比到相亲,你可以理解为一个外形3分的人很难装成外形9分,一个年收入10万的人很难装成年收入500万。

2023-04-07 09:19:19 220 2

原创 推荐算法---sum pooling

推荐算法中,sum pooling是一种常用的特征池化方法。它可以将多个特征值相加,得到一个总和作为池化后的特征值。在上面的代码中,我们使用numpy库中的sum函数,将每个样本的特征向量沿着第1个轴(即axis=1)相加。对x进行sum pooling,即将向量中所有元素相加得到一个标量s,即 s = x1 + x2 + …对于每个样本,将要进行池化的特征表示为一个向量x=[x1, x2, …, xn],其中xi表示第i个特征的值。将得到的标量作为池化后的特征值,用于后续的推荐算法计算。

2023-04-05 16:41:49 3672 1

原创 连续特征和离散特征

推荐算法数据处理

2022-11-24 21:17:36 837

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除