
机器学习
蓝鲸123
做更好的自己
展开
-
LLE降维
LLE 是 Locally Linear embedding直观是在样本点的高维空间相邻近的话,可以用低维的子空间描述。基本原理分三步:(1) 找到邻居 neighbors .(可以使用多种方法,邻居K的数目选择影响很大)(2)使用周围的邻居作为基向量, reconstruct with linear weightsminimize reconstruction error.minWε(W)=∑i∣∣xi−∑j∈NiWijxj∣∣22\underset{W}{min}\varepsilon (原创 2020-05-09 21:44:40 · 565 阅读 · 0 评论 -
PCA降维(公式推导)
PCAPCA线性投影降维的方法。当维度p高,样本少。p>> N ,S=1NXXTS= \frac{1}{N}XX^TS=N1XXT因为 xn是Rp×1x_n 是 R^{p \times 1}xn是Rp×1 所以Rank(xnxnT)≤1Rank(x_nx_n^T) \leq 1Rank(xnxnT)≤1所以 Rank(S)≤NRank(S) \leq NRank(S)≤N这种情况下,矩阵运算的复杂度O(p3)O(p^3)O(p3),浪费了很多的时间,得到了很多是0的矩阵。原创 2020-05-09 21:01:37 · 1264 阅读 · 0 评论 -
GMM聚类算法(公式证明分析)
高斯分布p(x∣μ,σ2)=12πσexp(−(x−μ)22σ2)p(x|\mu, \sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})p(x∣μ,σ2)=2πσ1exp(−2σ2(x−μ)2)d维多元高斯分布p(x∣μ,∑)=12πd2∣∑∣12exp(−12(x−μ)∑(x−μ))p(x|\mu...原创 2020-04-16 18:14:49 · 1373 阅读 · 0 评论 -
Logistic regression逻辑回归
Logistic 函数(或者叫做 sigmoid函数),作用在线性的数据上面,可以从上次GNB中得到这种假设。ψα(v)=11+exp(−αx)\psi_{\alpha}(v)=\frac{1}{1+exp(-\alpha x)}ψα(v)=1+exp(−αx)1当α\alphaα趋近于无穷的时候,上面Sigmoid趋向于阶越函数。...原创 2020-03-14 10:54:37 · 316 阅读 · 0 评论 -
朴素贝叶斯(公式推导证明)
贝叶斯 Treatment参数的先验:p0(q0j∣α1,α2)=Beta(α1,α2)=Γ(α1+α2)Γ(α1)Γ(α2)q0jα1−1(1−q0jα2−1)p_0(q_{0j}|\alpha_1, \alpha_2) = Beta(\alpha_1, \alpha_2) =\frac{\Gamma(\alpha_1 + \alpha_2)}{\Gamma(\alpha_1)\Gamma(...原创 2020-03-14 09:17:11 · 926 阅读 · 0 评论 -
KL 散度计算-python 例子
import numpy as npfrom scipy.stats import normfrom matplotlib import pyplot as pltimport tensorflow as tfimport seaborn as snssns.set()x = np.arange(-10, 10, 0.001)p = norm.pdf(x, 0, 2)q = no...原创 2020-02-16 10:34:59 · 3302 阅读 · 1 评论 -
计算一组分类数据的auc
import matplotlib.pyplot as plt# 20个测试样本, 绘制aucclass_x = [1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0 ]# 预测的结果score_x =[0.9, 0.8, 0.7, 0...原创 2020-01-14 15:55:35 · 421 阅读 · 0 评论 -
主成分分析
PCA的思想是将n维特征映射到K维上(k < n),这k维是全新的正交特征。这k维特征成为主成分,是重新构造出来的k维特征,而不是简单的从n维特征中去除其余 n-k维特征。(1)计算数据的协方差矩阵:https://blog.youkuaiyun.com/Mr_HHH/article/details/78490576(2) 计算数据协方差矩阵的特征值和特征向量python 样例代码:# cod...原创 2020-01-05 17:18:31 · 287 阅读 · 0 评论 -
error: cuda_runtime.h: No such file or directory 和undefined reference to `cudaSetDevice'
使用cuda的gcc编译错误: error: cuda_runtime.h: No such file or directory 和undefined reference to `cudaSetDevice’。解决办法,加载cuda 的lib。 gcc singleProcess.cpp -o singleProcess -L/usr/local/cuda/lib64 -lcudart -...原创 2018-07-17 22:29:10 · 7206 阅读 · 0 评论 -
tf.contrib.keras.preprocessing.sequence.pad_sequences 将标量数据 转换成numpy ndarray
keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype=’int32’, padding=’pre’, truncating=’pre’, value=0.) 函数说明: 将长为nb_samples的序列(标量序列)转化为形如(nb_samples,nb_timesteps)2D numpy arr...原创 2018-07-03 21:50:53 · 6711 阅读 · 0 评论 -
pytorch Dataset 的ImageFolder
介绍常用的pytorch Dataset 里面的ImageFolder,实现和https://blog.youkuaiyun.com/TH_NUM/article/details/80877196很相似。 ImageFolder假设所有的文件按文件夹保存好,每个文件夹下面存贮同一类别的图片,文件夹的名字为分类的名字。ImageFolder(root,transform=None,target_tr...原创 2018-07-01 20:57:11 · 43069 阅读 · 4 评论 -
python中数据集划分函数StratifiedShuffleSplit的使用
用法:from sklearn.model_selection import StratifiedShuffleSplitStratifiedShuffleSplit(n_splits=10,test_size=None,train_size=None, random_state=None)参数说明参数 n_splits是将训练数据分成train/test对的组数,可根据需要进...原创 2018-08-09 14:32:38 · 2865 阅读 · 1 评论 -
pytorch 数据处理:定义自己的数据集合
数据处理版本1#数据处理import osimport torchfrom torch.utils import datafrom PIL import Imageimport numpy as np#定义自己的数据集合class DogCat(data.Dataset): def __init__(self,root): #所有图片的绝对路径...原创 2018-07-01 20:33:02 · 12270 阅读 · 1 评论 -
使用nccl 编译运行程序,nccl 的lib出错 undefined reference to `ncclCommInitAll'
undefined reference to ncclCommInitAll' undefined reference toncclGetErrorString’ undefined reference to `ncclGroupStart’需要加载nccl的动态库: 编译方法:nvcc -o first_cuda singleProcess.cpp -I/usr/local...原创 2018-07-17 22:32:22 · 2593 阅读 · 1 评论 -
cuda 在GPU和CPU之间复制数组
int nDev=2; float** sendbuff = (float**)malloc(nDev * sizeof(float*)); float** recvbuff = (float**)malloc(nDev * sizeof(float*)); cudaStream_t* s = (cudaStream_t*)malloc(sizeof(cudaStream_t)*nDe...原创 2018-07-18 14:58:28 · 3705 阅读 · 0 评论 -
nvidia-nccl 学习
1.ncclResult_t ncclGetUniqueId(ncclUniqueId* uniqueId) 创建一个被初始化函数(ncclCommInitRank)使用的Id。该函数只能被调用一次(在整个分布式计算中只能被一个地方调用),调用后产生的Id需要分发给分布式任务中其他所有的任务,然后在进行ncclCommInitRank初始化操作(该初始化操作需要使用全局统一Id)。comm...原创 2018-07-18 15:12:47 · 2626 阅读 · 0 评论 -
标签二值化LabelBinarizer
对于标称型数据来说,preprocessing.LabelBinarizer是一个很好用的工具。比如可以把yes和no转化为0和1,或是把incident和normal转化为0和1。当然,对于两类以上的标签也是适用的。这里举一个简单的例子,说明将标签二值化以及其逆过程。from sklearn.preprocessing import LabelBinarizerlb=LabelBinari...原创 2018-08-09 14:09:47 · 3330 阅读 · 0 评论 -
逻辑回归
逻辑回归逻辑回归和线性回归很像,差别在于逻辑回归在线性回归的基础上加了一个激活函数。逻辑回归所使用的激活函数也分两种,一个是sigmoid函数,一个是softmax函数,前者用于二分类,称为逻辑回归,后者用于多分类,一般称为逻辑分类。线性回归输出的y值通过sigmoid函数,会产生N1维的大小均在0和1之间的向量,也就是每个样本属于正样本的概率值,而y值通过softmax函数,会输出NC维的矩阵...原创 2019-03-23 10:46:26 · 335 阅读 · 0 评论 -
线性可分感知机
PLA全称是Perceptron Linear Algorithm,即线性感知机算法,属于一种最简单的感知机(Perceptron)模型。import numpy as npx=np.array([[1,2],[3,4],[5,6],[10,1],[23,23]])y=np.array([1,-1,1,-1,1])#数据可视化import matplotlib.pyplot as p...原创 2019-03-23 09:43:58 · 537 阅读 · 0 评论 -
机器学习过拟合问题
过拟合过拟合的定义 在对已知的数据集合进行学习的时候,我们选择适应度最好的模型最为最终的结果。虽然我们选择的模型能够很好的解释训练数据集合,但却不一定能够很好的解释测试数据或者其他数据,也就是说这个模型过于精细的刻画了训练数据,对于测试数据或者其他新的数据泛华能力不强。发生过拟合的原因 1)使用过于复杂的模型(dvc 很大); (2)数据噪音; (3)有限的训练数据。 a.由于对样本数据原创 2016-06-02 11:16:48 · 951 阅读 · 0 评论 -
python PCA主成分分析进行降维度
#PCA对数据进行降维from numpy import *def confloat(x): r=[float(i) for i in x] return rdef loadDataSet(fileName, delim='\t'): fr = open(fileName) stringArr = [line.strip().split(delim) f...原创 2018-06-09 17:08:18 · 1935 阅读 · 0 评论 -
KMeans与深度学习自编码AutoEncoder结合提高聚类效果
特征是用户的消费商品的消费金额,原始数据(部分)是这样的:id,goods_name,goods_amount1,男士手袋,1882.02,淑女装,2491.03,淑女装,2492.02,女士手袋,345.04,基础内衣,328.05,商务正装,4985.05,时尚,969.05,女饰品,86.06,专业运动,399.06,童装(中大童),2033.06,男士配件,3...原创 2018-04-25 01:14:54 · 5724 阅读 · 2 评论 -
机器学习---假设的评估问题
机器学习的假设理论:任一假设若在足够大的训练样例集中很好的逼近目标函数,它也能在未见实例中很好地逼近目标函数。 伯努利分布的期望 np 方差 np(1-p) 训练样例(Sample)的错误率:errors 测试数据(data)的错误率:errorD评估偏差 bias=E(errors)-errorD 对于无偏估计(bias=0):h和S选择必须独立评估方差: 对于无偏的评估S,erro原创 2016-06-02 12:12:32 · 1255 阅读 · 0 评论 -
K-means
K-Means 基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标. k个初始类聚类中心点的选取对聚类结果具有较大的 公式 影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其各个簇中心原创 2016-06-02 12:07:06 · 797 阅读 · 0 评论 -
决策树
决策树决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。决策树的构造决策树的构造 不同于贝叶斯算法,决策树的构造过程原创 2016-06-02 12:02:33 · 2547 阅读 · 0 评论 -
集成学习
集成学习:有效的前提: 1. 每个弱分类器的错误率不能高于0.5。 2.弱分类器之间的性能要有较大的差别,否则集成效果不是很好。 集成学习的实验性结论: Boosting方法的集成分类器效果明显优于bagging,但是在某些数据集boosting算法的效果还不如单个分类器的。 使用随机化的人工神经网络初始权值来进行集成的方法往往能够取得和bagging同样好的效果。 B原创 2016-06-02 11:35:23 · 1277 阅读 · 0 评论 -
Mistake Bound Framework(出错界限模型)
Mistake Bound Framework(出错界限模型)Mistake Bound FrameworkSo far: how many examples needed?What about: how many mistakes before convergence?Let’s consider similar setting to PAC learning:Instances draw原创 2016-05-07 19:33:02 · 1087 阅读 · 0 评论 -
Agnostic Learning (不可知学习)
Agnostic Learning (不可知学习) Computational Learning Theory (Cont.)The Vapnik-Chervonenkis(VC) dimension- Shattering a set of instances- VC dimension - Definition and several examples The Vapnik-Che原创 2016-05-07 19:29:27 · 2315 阅读 · 0 评论 -
PAC Learning Framework可能近似正确学习
Coffe TimeESP GAME用户做游戏的时候,对图片做语义标注SAmple Complexity: How many training examples are sufficient to learn the target concept? Version space introduction to machine learning: 20 computational learni原创 2016-05-07 19:17:29 · 4369 阅读 · 0 评论 -
无监督学习
coffe Time> 类脑计算:根据一个图片进行分类,使用机器学习的方法。使用机器的消耗1000000w 而使用人脑20w。类似于大脑神经元的连接来做识别的硬件。> Neuron> Synapse:Digital circuits和Nanotech(memristors忆阻)> 忆阻:the missing memristor found > 机器学习:学习一些参数原空间问题转化为对偶问原创 2016-04-25 19:52:19 · 899 阅读 · 0 评论 -
PAC可学习性
PACPAC可学习性 训练学习器的目标是,能够从合理数量的训练数据中通过合理的计算量可靠的学习到知识。 机器学习的现实情况: 1、除非对每个可能的数据进行训练,否则总会存在多个假设使得真实错误率不为0,即学习器无法保证和目标函数完全一致 2、训练样本是随机选取的,训练样本总有一定的误导性什么是PAC可学习的 弱化对学习器的要求: 1、我们不要求学习器输出零错误率的假设,只要求错误率被限制原创 2016-06-02 12:21:47 · 6472 阅读 · 0 评论 -
VC维
为什么引入VC维 PAC中以|H |来刻画样本复杂度,它存在以下不足:可能导致非常弱的边界;对于无限假设空间的情形, 1/b*(log2(|H|)+log2(1/d))((2)式)根本无法使用。因此有必要引入另一度量标准VC 维。假设空间的VC 维, 用VCdim(H)表示, 被定义为最大的样本数d ,使得在所有可能的2 d 种二分(dichotomy)中,都能找到与该划分一致的一个假设。VC 维原创 2016-06-02 12:32:53 · 7516 阅读 · 0 评论 -
scipy.sparse.hstack vstack
首先格式是符合 coo_matrix 才能使用sparse进行拼接。hstack : 将矩阵按照列进行拼接from scipy.sparse import coo_matrix, hstack,vstackA = coo_matrix([[1, 2], [3, 4]])print(A)B = coo_matrix([[5,7], [6,8]])print(hstack([A,B]...原创 2018-04-22 22:37:51 · 9143 阅读 · 0 评论 -
基于sklearn 的one hot encoding
1.one hot编码的由来 在实际的应用场景中,有非常多的特征不是连续的数值变量,而是某一些离散的类别。比如在广告系统中,用户的性别,用户的地址,用户的兴趣爱好等等一系列特征,都是一些分类值。这些特征一般都无法直接应用在需要进行数值型计算的算法里,比如CTR预估中最常用的LR。那针对这种情况最简单的处理方式是将不同的类别映射为一个整数,比如男性是0号特征,女性为1号特征。这种方式最大的优点就是...转载 2018-04-22 21:11:23 · 629 阅读 · 0 评论 -
feed_dict tf 报错提示ValueError: setting an array element with a sequence.
print (sess.run(output,feed_dict={input1:[[1.0,2.0,3.0]],input2:[[2.0],[3.0],[4.0]]}))就能运行.错误原因: feed_dict格式本身不能用tf.constant赋值的或者tf.get_variable赋值。原创 2018-04-17 18:18:29 · 2297 阅读 · 0 评论 -
机器学习心得
神经网络为什么具有对非线性关系进行建模的能力?1.每个神经元会先应用一个非线性激活函数。正是由于这个激活函数,神经网络具有对非线性关系进行建模的能力持续更新中….....原创 2018-04-17 01:26:19 · 423 阅读 · 0 评论 -
python 实现 机器学习(周志华) 参考答案 第五章 神经网络 5.7 RBF 神经网络
#-*- coding:utf-8 -*-import reimport xlrdimport xdrlib,sysimport xlwtimport datetimeimport timeimport numpy as npdef rand(a, b): #返回a 行 n 列 (0,1)的随机数矩阵 A=np.zeros((a,b)) from random ...原创 2018-04-16 00:19:36 · 1509 阅读 · 0 评论 -
KNN
KNNKNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方 法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。KNN复杂度分析kNN算法本身简单有效,它是一种lazy-learning算法,分类器不需要使用训练集进行训练,训练时间复杂度为0。kNN分类的计算复杂度原创 2016-06-02 11:21:17 · 3157 阅读 · 0 评论 -
HMM(Forward algorithm)向前算法
由马尔科夫模型MM可知:对于一个系统,由一个状态转至另一个状态的转换过程中,存在着转移概率,并且这种转移概率可以依据其紧接的前一种状态推算出来,与该系统的原始状态和此次转移前的马尔可夫过程无关。隐马尔可夫模型(HiddenMarkov models,HMM)是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一转载 2016-06-02 21:04:22 · 3790 阅读 · 0 评论 -
贝叶斯学习、MAP、ML
贝叶斯估计与有监督学习如何用贝叶斯估计解决有监督学习问题? 对于有监督学习,我们的目标实际上是估计一个目标函数f : X->Y,,或目标分布P(Y|X),其中X是样本的各个feature组成的多维变量,Y是样本的实际分类结果。假设样本X的取值为xk,那么,根据贝叶斯定理,分类结果为yi的概率应该为: 因此,要估计P(Y=yi|X=xk),只要根据样本,求出P(X=xk|Y=yi)的所有估计,以及原创 2016-06-02 11:11:12 · 6079 阅读 · 0 评论