自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (1)
  • 收藏
  • 关注

原创 信息熵、基尼指数的理解

信息熵公式:H=−∑i=1Kpilog2piH = -\sum_{i = 1}^K p_i log_2 p_iH=−∑i=1K​pi​log2​pi​pip_ipi​ 就是类别 iii 出现的概率,log2pilog_2 p_ilog2​pi​ 是用二进制表示该概率值所需要的 bit 位数,那么熵的含义就是表示所有类别概率所需要的 bit 位数的期望值。所以熵值越大,就表示需要约多的位数来表示。如果 log 的底一样,那么熵值的相对大小也不会变化。基尼指数公式:Gini=∑pi∗(1−pi)=1−∑

2022-05-03 12:05:34 601

原创 信息增益和信息增益比

要理解这两个概念,首先要分清楚三个定义:数据集经验熵特征对数据集的经验条件熵数据集对特征值的熵符号A:特征D:训练样本∣D∣:样本容量Di:根据每个特征A的特征值,把样本D划分的第i个划分训练样本∣Di∣:第i个划分样本容量label:样本标签列Ck:样本标签是第k类,相当于通过标签列,把D做了K个划分∣Ck∣:第k类的样本个数Dik=Di∩CkA: 特征 \\D: 训练样本 \\|D|: 样本容量 \\D_i: 根据每个特征 A 的特征值,把样本 D 划分的第 i 个划分训练样本 \\

2022-05-01 14:11:45 540

原创 如何理解 CART 剪枝 里的 g(t)

CART(Classification And Regression Tree)学习笔记(主要是为了记录剪枝算法中的 g(t)g(t)g(t) 如何理解)在看《统计学习方法》5.5.2 里有关 CART 剪枝的章节,里面有一个在 α∈[αi,αi+1)\alpha \in[\alpha_i, \alpha_{i+1})α∈[αi​,αi+1​) 区间中求最优子树的算法。第一遍看的时候,还真是有点费解。看懂之后,就感觉很清楚了,在此记录一下,后面回忆的时候再看。目录CART 算法回归树分类树CART 剪枝

2022-04-30 20:10:35 408

原创 cpp vecotr clear 的时候,并不会清空当前变量的所属存储空间

cpp vecotr clear 的时候,并不会清空当前变量的所属存储空间。如果再次把原有的值,乱序传回去,会造成前面位置的值被覆盖。// clearing vectors#include <iostream>#include <vector>using namespace std;class node {public: node (int id):id(id){} int id = 0; };void print_out(std::vector<

2021-10-27 16:51:03 231

原创 auc 的概率解释

关于 auc 是什么、怎么算,已经有很多博文在将了。如果有时间再写。今天写一下 auc 统计学意义的证明,也就是:auc 等价于随机抽取一个正样本和一个负样本,正样本排在负样本之前的概率。The AUC has an important statistical property: the AUC of a classifier is equivalent to the probability thatthe classifier will rank a randomly chosen positi

2021-09-22 17:03:52 588 1

原创 awk 脚本

计算均值、方差、标准差awk '{x[$NF]+=1;l += 1;s += $NF}END{m = s/l;print "mearn:",m;ss = 0; for(i in x) ss += (i - m)^2 * x[i];v = ss/l; print "variance:",v; print "sd", sqrt(v)}' ~/data.txt~/data.txt 一行一个数字

2021-09-06 17:23:08 307

原创 binary_crossentropy 计算有问题,导致训练出错 auc 异常

我在改一个训练流程的时候,auc 总是在 0.5 左右徘徊。检查了一下 loss 啥的,好像也没啥问题,后来逐行看了下代码才发现,传给 loss function 的 label 和 predicion 的 shape 对不上。一个是 (N,) 一个是 (M,1)。我去看了下 tf 里面的 binary_crossentropy,如下:@keras_export('keras.backend.binary_crossentropy')def binary_crossentropy(target,

2021-05-23 20:41:52 783

原创 tensorflow dataset 的一些使用经验

最近使用 tensorflow dataset 的过程,以及不同方法的考量大概经历了一下几个过程。把训练文件生成一个 tfrecord。后来发现其实我们是按天更新的,于是改成了多个 tfrecord,读取的时候,直接传一个文件列表就行了。之所以这样,一方面是不需要每天重复更新之前的数据,另一方面是避免了生成太大的文件。把本地生成的 tfrecord 放到 hdfs 上,训练的时候,直接读取 hdfs 文件。这样做的原因,主要是因为训练的服务器硬盘有限,同时有很多模型在使用。如果都把 tfrecord

2021-05-17 20:31:27 318

原创 python globals()

在 python 中,允许使用 globals() ,调用对象名称来使用对象。比如,class abc(): def print(self): print('hhh')g = globals()g['abc']().print() # 实例化一个 class abc,并调用函数

2021-05-13 14:47:06 272

原创 tf 读取 hdfs 上的文件

读取 hdfs 上的文件,需要指定节点名以及配置好环境变量。比如:filename_queue = tf.train.string_input_producer([ "hdfs://namenode:8020/path/to/file1.csv", "hdfs://namenode:8020/path/to/file2.csv",])或者filename_queue = tf.data.Dataset.list_files([ "hdfs://namenode:8020/p

2021-05-13 11:27:37 1700

原创 等额分期付款公式推导

理了一下一个困扰我好久的问题。

2021-02-11 15:35:02 1620

原创 使用 boost quantile 函数生成符合 beta 概率密度函数的随机采样

#include <boost/math/distributions.hpp>#include <random>using namespace std;int main() { float alpha, beta, randFromUnif; alpha = 0.5; beta = 0.5; std::random_device rd; std::mt19937 gen(rd()); boost::math::beta_di

2020-10-21 12:06:10 1005

原创 Thompson sampling

Thompson sampling 认为当某项行为被执行的时候,所获得收益的概率符合某种概率密度函数。一般使用 beta 函数作为 Thompson sampling 的概率密度函数。做 Thompson sampling 的时候,对每一个行为,按照该行为的概率密度函数,进行符合该概率密度函数分布的概率进行采样。经过一段时间的采样之后,该行为的概率密度函数趋于稳定,但仍有一定的几率采到比较大或者比较小的采样收益。这种方法,一方面考虑到了不同行为,获得收益的概率不同,同时也给与了否定当前收益期望较大的

2020-10-16 13:42:19 728

原创 对矩阵秩和特征向量的理解

看了 https://blog.csdn.net/ccnt_2012/article/details/106592848 之后,有些启发:秩:保留维度的多少特征值:每个维度形变的多少

2020-08-13 11:47:23 1920

原创 【GraphSAGE 源码学习】输入的数据结构

最近在尝试使用 GraphSAGE 做 embedding,做个笔记。G 图结构文件:toy-ppi-G.json数据通过 json 加载之后,得到一个 dict,其中包含的关键字:[‘nodes’, ‘directed’, ‘multigraph’, ‘graph’, ‘links’]。nodesG_data[‘nodes’] 包含所有的节点, 每个节点(node)包含属性 [‘test’, ‘label’, ‘id’, ‘val’, ‘feature’]。nodetest 和 val 是

2020-06-05 13:44:27 923 4

原创 RuntimeWarning: overflow encountered in exp

今天在sigmoid 函数中使用 numpy.exp 的时候,遇到了 RuntimeWarning: overflow encountered in exp ,看到其他人的博客里面的解决方法。# https://www.cnblogs.com/zhhy236400/p/9873322.htmldef sigmoid(inx): if inx>=0: #对sigmoid函数的优化,避免了出现极大的数据溢出 return 1.0/(1+exp(-inx)) e

2020-05-12 19:53:12 23610 4

原创 scipy.sparse.dia_matrix 中的 offsets 含义

https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.dia_matrix.html dia_matrix((data, offsets), shape=(M, N)) where the data[k,:] stores the diagonal entries for diagonal offsets[k] (See example below)这个真实太难懂了。。只好搞个例子。。。data = np.array([[1

2020-05-12 13:37:37 1213

原创 Hive Drop 外表,同时删除数据

将外表的清除属性设置为 true 就可以在 drop 的时候清除外表的数据,无需手动删除了。ALTER TABLE addresses_text SET TBLPROPERTIES ('external.table.purge'='true');参考https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.4/using-hiveql/cont...

2019-12-18 15:26:16 2773

原创 连续特征离散化的一些理解

上学的时候,手写 Naive Bayes,当时处理特征非常 Naive 。就是直接去统计每一个出现的数值,计算一个这个值和标签的相关出现概率。结果总是下溢,效果就别想了。。。连续特征离散化,为构造特征和简化模型带来了一些好处。通过前期的经验和一些方法,可以将连续特征分成一些桶。这样对于同一个数据输入,可以划分成不同的段,然后再进行权重的学习,或者进行更高级的特征组合。好处数据分段之...

2019-12-03 12:38:48 343

原创 Python list 与 array 的区别

个人理解list 是一个高级封装对象,存着每个对象的引用。至于引用是啥类型,list 并不关心。list 只关心引用这一种类型就行了。array 就和 c 语言里面的数组是一样的了。array 要求里面储存的数据类型必须一致。里面的类型有 b, B, u, h, H, i, I, l, L, q, Q, f or dimport arraya = array.array('i') # 声...

2019-12-02 19:39:24 316 1

原创 Bezout's Lemma 学习笔记

Bezout’s Lemma 学习笔记今天手痒,就用 latex 写了下 Bezout’s Lemma 的证明。为啥要用 latex 写笔记?因为写起来非常爽,看着输出结果非常爽。我就是个颜控。参考https://artofproblemsolving.com/wiki/index.php/Bezout%27s_Lemmahttps://zh.wikipedia.org/wiki/%...

2019-11-09 22:32:22 840

原创 hadoop streaming 的两种 key

参考:Hadoop Streaming 0.18 文档第一种 key,用来做 reducer 里面的排序 -jobconf stream.map.output.field.separator=. \ -jobconf stream.num.map.output.key.fields=4 \第二种 key,用来将具有相同 key 的数据分配到同一个 reducer 里面 -...

2019-06-24 21:06:51 458

原创 awk 把某列中包含一个特定开头的列输出

cat * | awk -F';' '{for (i=1;i<=NF;i++){if ($i ~/haha/) {print $i}}}'| sort | uniq每列以 ; 分隔以 haha 开头的列会被输出然后排列然后去重

2019-05-14 11:56:26 6690

原创 mac + vim + vimtex + latexmk + zathura = 神器

之前因为 tex 编译比较繁琐,所以就改用 markdown 写文档。但是,使用 markdown 还是不能给我那种“随心所欲”的书写体验。最近看到了一个 blog https://castel.dev/post/lecture-notes-1/ 让我知道了mac + vim + vimtex + latexmk + zathura 这个组合。配置完成之后,当我看到在 vim 里面写完东西 ...

2019-04-20 17:11:02 5598 9

原创 对公钥、私钥,以及通信双方角色的猜想

大学时候学过密码学,划水太严重。。。最近仔细思考了一下我和 github 的通过过程,同时结合对加密、解密算法的理解,我觉得通信双方的角色应该是这样的:github:github 每天都会接收非常多信息,如果是我的用户名发过去的信息,github 会用我的公钥进行解密。如果能正确解密一个信息(比如,开头是“发给 github 的信”)说明,确实是我发的。如果解密不对,那就说明受到了攻击。...

2019-04-07 20:44:20 444

原创 NLTK train_unsupervised KeyError

trainer = HiddenMarkovModelTrainer(tag_set, list(symbols)) print('Training (unsupervised, %d sentences)...' % unsupervised) # it's rather slow - so only use 10 samples by default unla...

2019-03-13 15:56:09 330

原创 不看手机的 20 个小时

今天做了个实验,从昨天晚上 11 点到今天晚上 7 点,我没有碰手机、没有看邮箱。大体看了看讲 Naive Bayes/Hmm/MEM/CRF 的论文,参加了 leetcode 的周赛(做了四个题),重写了 viterbi 算法,写了两个影评,做了 50 个俯卧撑,喝了两盒牛奶,吃了五六个面包,收拾了房间,洗了衣服。。。总体来说,不看手机,基本上没有焦虑感。期间也会想起之前经常让我焦虑的问题...

2019-03-10 19:03:44 238

原创 Viterbi 算法学习(附代码和注解)

详细代码: https://github.com/SunnyCat2013/viterbi-algorithm研二在语音识别课上写过一次 viterbi 算法。最近在复习 HMM 的时候,感觉记不太清楚 viterbi 的实现了,就抽空又复习了一遍。例子是参考 李航的 《统计学习方法》 P186 10.3。如果不明白术语的话,看一下 P173 10.1。#include &lt;iostre...

2019-03-10 18:18:54 865

原创 C++逐字读字符串里面的字(中英文)

#include &amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;string&amp;amp;gt;#include &amp;amp;lt;assert.h&amp;amp;gt;#include &amp;amp;lt;vector&amp;amp;gt;// c++ -O3 example.cpp -lcrfppstd::vector &amp;amp;lt;

2019-02-22 19:09:39 2448

原创 [leetcode]971. Flip Binary Tree To Match Preorder Traversal

Flip Binary Tree To Match Preorder Traversal这个量结合了先序遍历和对边界检查的题。刚开始理不太清楚,我就简单画了一下几种情况的图。所有情况如下:当前结点被访问过当前结点是叶结点当前结点只有左树当前结点只有右子树当前结点有两个子树(这种情况不会出现)当前结点没有被访问过当前结点是叶结点当前结点只有左树当前结点只有右子树...

2019-01-08 16:00:58 191

原创 [leetcode] 959. Regions Cut by Slashes

Regions Cut by Slashes在上周的 leetcode 周竞赛中,我用迭代的方法解决这个题,却超时了。赛后,我看了别人的方法,思路基本一样。只不过别人用的递归。开始我还以为是两种实现方式有什么差异。后面分析一下才发现,我在每层访问一个坐标的时候,没有及时把它设置成已访问,导致这个点被重复访问了太多次。Iteration Solutioncodeclass Solutio...

2018-12-17 10:56:51 697

原创 Python 的 class 对象可以添加私有属性

我在使用结点的时候,给一个成员函数赋值。然而我拼写错了,程序也没有报错。class Node(object): def __init__(self, val): self.val = valnode = Node(0)node.test = 'hh'print node.test# output: hh...

2018-12-14 15:48:32 322

原创 [leetcode]138. Copy List with Random Pointer

138. Copy List with Random Pointer方法一 Complexity O(n), Space O(n)做一个旧结点和新结点的映射,再连接 random 指向的旧结点的映射结点# Definition for singly-linked list with a random pointer.# class RandomListNode(object):# ...

2018-12-04 12:20:26 150 1

原创 [leetcode]159. Longest Substring with At Most Two Distinct Characters

159. Longest Substring with At Most Two Distinct Characters.1 暴力法Time Limit Exceededclass Solution(object): def lengthOfLongestSubstringTwoDistinct(self, s): """ :type s: str...

2018-12-01 20:02:14 250

原创 [Leetcode] 406. Queue Reconstruction by Height 直觉解释

406. Queue Reconstruction by Heighthttps://leetcode.com/problems/queue-reconstruction-by-height/首先,我们找到最小的 height (h, k),这个数据对的最终位置应该是在 k + 1 的位置上。因为这个值是最小的值,所以其它的值就不小于它。如果它不在 k + 1 这个位置上,比如在 k + 1...

2018-11-24 20:00:32 174

原创 [Leetcode] 406. Queue Reconstruction by Height 直觉解释

https://leetcode.com/problems/queue-reconstruction-by-height/首先,我们找到最小的 height (h, k),这个数据对的最终位置应该是在 k + 1 的位置上。因为这个值是最小的值,所以其它的值就不小于它。如果它不在 k + 1 这个位置上,比如在 k + 1 + 1 这个位置上,那么它就应该是 (h, k + 1),因为它前面有...

2018-11-24 19:58:48 176

原创 在 docker 中运行 jupyter,并在本机上打开网页

在 docker 中运行 jupyter,并在本机上打开网页docker rundocker run -it -p 7000:7000 --rm --name test docker_image_iddocker 启动 jupyter notebookjupyter-notebook --no-browser --ip 0.0.0.0 --port=7000 --allow-ro...

2018-11-23 17:19:53 4937

原创 caffe 中添加新的 layer 和相应测试的过程

添加新 layer添加一个简单的 layer 可以参考 https://github.com/BVLC/caffe/wiki/Simple-Example:-Sin-Layer。几个主要的过程如下:添加 include/caffe/layers/your_layer.hpp添加 src/caffe/layers/your_layer.cpp添加 test/test_your_layer...

2018-11-22 09:42:14 596

原创 Object detection[NMS] 潜在矩形筛选代码 学习

import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.collections import PatchCollectionfrom matplotlib.patches import Rectanglefrom itertools import cyclecycol = cycle('bgrcmk')de...

2018-11-01 09:30:03 507

原创 Bias and Variance

Questionsbiase 是在设置初始参数的时候造成的吧,如果初始参数设置的好,就不应该存在这个问题了。过拟合的时候,有几种方法导致过拟合的原因有哪些结构讨论 bias 与 variance 的时候,模型的复杂度是变化的讨论 正则项 的时候,模型一定要足够复杂(达到过拟合的程度),这时候 lambda 是变化的。讨论样本集的大小对模型的影响的时候,模型是固定的。...

2018-10-12 11:20:53 670

OpenCV修改证件照背景

使用OpenCV修改证件照背景。里面的代码可以直接用,头文件和库的路径要根据自己的机器进行配置。我的机器是mabbook air 13。OpenCV版本是3.1.0.

2016-05-20

空空如也

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

TA关注的人

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