机器学习
文章平均质量分 63
CY_TEC
Good good study, day day up~~~
展开
-
信息熵、基尼指数的理解
信息熵公式:H=−∑i=1Kpilog2piH = -\sum_{i = 1}^K p_i log_2 p_iH=−∑i=1Kpilog2pipip_ipi 就是类别 iii 出现的概率,log2pilog_2 p_ilog2pi 是用二进制表示该概率值所需要的 bit 位数,那么熵的含义就是表示所有类别概率所需要的 bit 位数的期望值。所以熵值越大,就表示需要约多的位数来表示。如果 log 的底一样,那么熵值的相对大小也不会变化。基尼指数公式:Gini=∑pi∗(1−pi)=1−∑原创 2022-05-03 12:05:34 · 724 阅读 · 0 评论 -
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 · 709 阅读 · 1 评论 -
tensorflow dataset 的一些使用经验
最近使用 tensorflow dataset 的过程,以及不同方法的考量大概经历了一下几个过程。把训练文件生成一个 tfrecord。后来发现其实我们是按天更新的,于是改成了多个 tfrecord,读取的时候,直接传一个文件列表就行了。之所以这样,一方面是不需要每天重复更新之前的数据,另一方面是避免了生成太大的文件。把本地生成的 tfrecord 放到 hdfs 上,训练的时候,直接读取 hdfs 文件。这样做的原因,主要是因为训练的服务器硬盘有限,同时有很多模型在使用。如果都把 tfrecord原创 2021-05-17 20:31:27 · 364 阅读 · 0 评论 -
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 · 1836 阅读 · 0 评论 -
Thompson sampling
Thompson sampling 认为当某项行为被执行的时候,所获得收益的概率符合某种概率密度函数。一般使用 beta 函数作为 Thompson sampling 的概率密度函数。做 Thompson sampling 的时候,对每一个行为,按照该行为的概率密度函数,进行符合该概率密度函数分布的概率进行采样。经过一段时间的采样之后,该行为的概率密度函数趋于稳定,但仍有一定的几率采到比较大或者比较小的采样收益。这种方法,一方面考虑到了不同行为,获得收益的概率不同,同时也给与了否定当前收益期望较大的原创 2020-10-16 13:42:19 · 794 阅读 · 0 评论 -
对矩阵秩和特征向量的理解
看了 https://blog.csdn.net/ccnt_2012/article/details/106592848 之后,有些启发:秩:保留维度的多少特征值:每个维度形变的多少原创 2020-08-13 11:47:23 · 2012 阅读 · 0 评论 -
【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 · 1012 阅读 · 4 评论 -
连续特征离散化的一些理解
上学的时候,手写 Naive Bayes,当时处理特征非常 Naive 。就是直接去统计每一个出现的数值,计算一个这个值和标签的相关出现概率。结果总是下溢,效果就别想了。。。连续特征离散化,为构造特征和简化模型带来了一些好处。通过前期的经验和一些方法,可以将连续特征分成一些桶。这样对于同一个数据输入,可以划分成不同的段,然后再进行权重的学习,或者进行更高级的特征组合。好处数据分段之...原创 2019-12-03 12:38:48 · 408 阅读 · 0 评论 -
boosting 和 bagging 的区别
boosting 和 bagging 都是 ensemble 的一种参考: https://quantdare.com/what-is-the-difference-between-bagging-and-boosting/boosting 和 bagging 都是集成学习(ensemble learning)中的一种技术。 它们都是把一些弱分类器组合到一起,形成一个新的强分类器。...翻译 2018-06-09 13:37:29 · 4082 阅读 · 1 评论 -
Step 3 of Backpropagation the size of z2 and Theta2'*delta3 are not equal.
https://www.coursera.org/learn/machine-learning/programming/AiHgN/neural-network-learning/discussions/threads/EObmU4LkEeWOJwp8z3qGpQ 反向传播的时候,从当前层往上一层传播的时候,自然是没有 bias 的。...原创 2018-09-17 20:12:16 · 196 阅读 · 0 评论 -
Bias and Variance
Questionsbiase 是在设置初始参数的时候造成的吧,如果初始参数设置的好,就不应该存在这个问题了。过拟合的时候,有几种方法导致过拟合的原因有哪些结构讨论 bias 与 variance 的时候,模型的复杂度是变化的讨论 正则项 的时候,模型一定要足够复杂(达到过拟合的程度),这时候 lambda 是变化的。讨论样本集的大小对模型的影响的时候,模型是固定的。...原创 2018-10-12 11:20:53 · 727 阅读 · 0 评论 -
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 · 548 阅读 · 0 评论 -
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 · 685 阅读 · 0 评论 -
Viterbi 算法学习(附代码和注解)
详细代码: https://github.com/SunnyCat2013/viterbi-algorithm研二在语音识别课上写过一次 viterbi 算法。最近在复习 HMM 的时候,感觉记不太清楚 viterbi 的实现了,就抽空又复习了一遍。例子是参考 李航的 《统计学习方法》 P186 10.3。如果不明白术语的话,看一下 P173 10.1。#include <iostre...原创 2019-03-10 18:18:54 · 942 阅读 · 0 评论 -
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 · 390 阅读 · 0 评论 -
使用 python 手写 决策树
使用 python 自己写一个 决策树很多复杂的学习方法,明白了其基础之后,一切就变得简单、易懂,并且符合直觉。 我今天打算手写一个决策树,或者说是“分类回归树”。参考https://machinelearningmastery.com/implement-decision-tree-algorithm-scratch-python/决策树是一种强大的预测方法,在工业界的数据...原创 2018-06-08 18:15:36 · 3350 阅读 · 0 评论 -
对多个 pandas dataframe 进行 join
对多个 pandas dataframe 进行 join貌似没有对多个 dataframe 进行 join 的方法,比较笨的就是手动挨个 join。 今天学习到一个新的方法,使用 functools.reduce 方法。我之前还纳闷,python 这样一种 functional programming 的语言,怎么会没有 map/reduce/filter。原来 python3 把这 red...原创 2018-06-22 07:19:21 · 3368 阅读 · 0 评论 -
C++实现K-means,聚类原理解析(并用在图片像素点聚类)
参考:http://nlp.stanford.edu/IR-book/html/htmledition/k-means-1.html原创 2016-05-21 09:14:19 · 10697 阅读 · 8 评论 -
我学习SVM的过程和资料
前前后后,看了SVM也有几次了。感觉最近才一窥门径。现在梳理一下学习SVM的学习资料和学习过程。理论基础推荐:《统计学习方法》 李航我最开始是在网上找了一些人写的长篇大论的文章来学习SVM的,现在看来,把自己的学习笔记给别人当入门材料是一种极不负责任的行为。 看过这本《统计学习方法》,才发现SVM其实并没有想象中那么难以理解。当然,第一遍看完SVM的章节,仍然有很多不理解的地方。这本书的好处是讲原创 2016-07-15 11:36:06 · 722 阅读 · 0 评论 -
为什么在训练神经网络时候比较适合使用交叉熵错误率,而不是分类错误率或是均方差
原文:Why You Should Use Cross-Entropy Error Instead Of Classification Error Or Mean Squared Error For Neural Network Classifier Training 在训练神经网络中,使用分类错误率或是均方差往往会丢掉很多有用的信息。这篇文章的作者就举了一个简单的例子来说明这个问题,我觉得写得翻译 2016-07-27 11:23:05 · 3567 阅读 · 1 评论 -
手写数字识别(1)---- Softmax回归模型
Tensorflow发布也有一段时间了,经常听周围的同学们提起,最近打算学习一下。跟着官方教程,我过了一遍手写数字识别的教程。原文:Build a Softmax Regression Model 前提tensorflow r0.9 python 2.7下载数据tensorflow里面已经有现成的下载和读取脚本,直接运行下面的代码就可以了。from tensorflow.examples翻译 2016-07-27 16:30:22 · 11804 阅读 · 3 评论 -
一步一步演示神经网络回馈算法过程
原文:A Step by Step Backpropagation Example声明最近在复习神经网络方面的知识。 在听这节Andrew NG的机器学习公开课的时候,对于BP神经网络里的错误反向传播的一个公式(类似这样的)不是特别明白。感觉和我之前看的不太一样。就在网上找到了这篇带样例的文章。 为了方便分享这篇文章的实质内容,我并没有逐字逐句地翻译这篇文章,而是按照我觉得更易理解的方式进行的。翻译 2016-07-07 19:05:34 · 4285 阅读 · 2 评论 -
使用Softmax回归模型来测试Kaggle入门比赛
数据为了方便测试,我这次实验直接用了trainResized和testResized的数据(在kaggle上完成一些注册和比赛信息就可以在Dashboard里面看到Home下的Data了)。 重新归整大小之后,图片的大小是20 * 20个像素、RGB彩图。我写了个脚本来统计里面出现的类型和每个类型对应的出现个数。here样本类别样本的标签是用数字、大小写字母表示的,我们要把它们变成一级只包含有0或原创 2016-07-30 11:04:08 · 1765 阅读 · 1 评论 -
手写数字识别(2)---- CNN网络模型
这是之前的文章《手写数字识别(1)---- Softmax回归模型》的姊妹篇,一些基本的输入与环境与上一篇一致。权重初始化要构建一个多层网络,需要初始化很多权重变量。 在这里要说明一些有关权重初始化需要注意的事项。权重不能初始化为全部相同的值,要将参数进行随机初始化,而不是全部置为0。如果所有参数都用相同的值作为初始值,那么所有隐藏层单元最终会得到与输入值有关的、相同的函数(也就是说同一层的所有翻译 2016-08-01 08:46:12 · 2227 阅读 · 2 评论 -
使用CNN模型来测试Kaggle入门比赛
在《使用Softmax回归模型来测试Kaggle入门比赛》基础上,我又测试了一个相对比较简单的CNN模型。这次使用的数据仍然是20 * 20个像素的图片。架构参考Build a Multilayer Convolutional Network我搭建了如下结构的CNN网络。 Layer Type Channels Size Result Channels Input 1 20原创 2016-08-06 10:25:55 · 1950 阅读 · 0 评论 -
sklearn.cluster.KMeans 报错 ValueError: n_samples=1 should be >= n_clusters=10
Python: List Comprehensions (列表推导)原来 python 支持列表推导的形式生成列表,但是还是不如 haskell 的列表推导好用。 下面是使用数学公式对列表的描述:S = {x² : x in {0 ... 9}}V = (1, 2, 4, 8, ..., 2¹²)M = {x | x in S and x even}其实不是什么新名词,大家看一下就知道了:>>原创 2017-09-11 12:24:22 · 18900 阅读 · 0 评论 -
Connectionist Temporal Classification 学习笔记以及自己能想到的一些例子
最近开始用 gitbook,感觉它的 katex 支持还是挺好的。下面的是 gitbook 转成的 png。 感兴趣的,可以移步:https://sunnycat2013.gitbooks.io/blogs/content/posts/ctc/learning-ctc.html ...原创 2018-04-24 08:15:28 · 760 阅读 · 0 评论 -
sigmoid
Logistic 函数Logistic 函数是一组函数集合,公式如下: f(x)=L1+e−k(x−x0)f(x)=L1+e−k(x−x0)f(x) = \frac{L}{1 + e^{-k(x - x_0)}}- e = 自然对数的底- x_0 = x 值的中点- L = 曲线的最大值- k = 曲线的曲率sigmoid functionSigmoid fun...原创 2018-05-26 14:57:47 · 2763 阅读 · 0 评论 -
xgboost get_fscore 判断特征重要程度的三种指标
xgboost get_fscore 判断特征重要程度的三种指标get_fscore 有三种种评判特征重要程度的方法:‘weight’ - the number of times a feature is used to split the data across all trees.‘gain’ - the average gain of the feature when it i...原创 2018-06-06 10:01:53 · 15506 阅读 · 0 评论 -
有意思的kd树
每一个空间就像超级玛丽里面的不同游戏区域参考:http://www.cs.princeton.edu/courses/archive/spr13/cos226/lectures/99GeometricSearch.pdf原创 2016-05-18 17:05:52 · 1258 阅读 · 2 评论