Introduction 在计算机视觉及机器学习领域,数据的可视化是非常重要的一个应用,一般我们处理的数据都是成百上千维的,但是我们知道,目前我们可以感知的数据维度最多只有三维,超出三维的数据是没有办法直接显示出来的,所以需要做降维的处理,数据的降维,简单来说就是将高维度的数据映射到较低的维度,如果要能达到数据可视化的目的,就要将数据映射到二维或者三维空间.数据的降维是一种无监督的学习过程,我们可以看成是一种聚类.数据在空间的分布主要有两个特性,一个是相似性,我们可以用类内距离衡量:一个是差异性…
一 Manifold Learning 我们要做的是非线性的降维,data是分布在低维空间里面,只是被扭曲到了高维空间. 比如地球的表面是一个二维平面,但是被塞到一个三维空间中. Manifold就是把S型摊平,将高维空间内的低维数据展开,这样才能计算点对点的距离. 二 几种方法 2.1 Locally Linear Embedding (LLE) 在原来的空间里面,有某点Xi,然后找到它的neighbor Xj,通过minimizing来找出Wij,再在降维后的空间里,找到基于不变的Wij参数…
原文:http://www.zhihu.com/question/21714667 4 个回答 83赞同反对,不会显示你的姓名 皮果提 刘鑫.莫教授要养猫.Starling Niohuru 等人赞同 要将自然语言交给机器学习中的算法来处理,通常需要首先将语言数学化,词向量就是用来将语言中的词进行数学化的一种方式. 一种最简单的词向量方式是 one-hot representation,就是用一个很长的向量来表示一个词,向量的长度为词典的大小,向量的分量只有一个 1,其他全为 0, 1 的位置对应…
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P improves with experience E ML Algorithms Overview Supervised learning    <= "teach" pr…
基础知识ML 在进行深度学习前,根据学习网站的建议,首先学习机器学习的基础课程,学习资料主要是Andrew讲的ShortVideo,网址:http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=DeepLearning.下面是这些基础课程的学习笔记. 一线性回归I(Linear Regression I) 1.1 监督学习介绍 Supervised Learning Intro 首先对监督学习进行简单介绍,其中包括回归…
本文始发于个人公众号:TechFlow 谈及机器学习,大家想必会有许多联想,比如最近火热的人工智能,再比如战胜李世石的AlphaGo,甚至还会有人联想起骇客帝国或者是机械公敌等经典机器人电影. 但实际上目前机器学习虽然应用广泛,但是在各大互联网公司当中,最主要的应用场景变化并不大.基本上还是延续从前的三板斧——搜索.推荐.广告.今天,我们就来聊聊其中的大头——搜索.搜索算法在互联网公司最大的用户就是搭建搜索引擎,而搜索引擎几乎是各大互联网公司的标配,无论是电商.社区还是社交软件,都离不开搜索引擎…
首先三个概念存在于 有监督学习的范畴 Training set: A set of examples used for learning, which is to fit the parameters [i.e., weights] of the classifier. Validation set: A set of examples used to tune the parameters [i.e., architecture, not weights] of a classifier, f…
前言 参考 1. 皮尔森相关系数(Pearson correlation coefficient): 完…
一 简介 Shuffle,简而言之,就是对数据进行重新分区,其中会涉及大量的网络io和磁盘io,为什么需要shuffle,以词频统计reduceByKey过程为例, serverA:partition1: (hello, 1), (word, 1)serverB:partition2: (hello, 2) shuffle之后: serverA:partition1: (hello, 1), (hello, 2)serverB:partition2: (word, 1) 最后才能得到结果: (h…
上一篇文章,我们介绍了SNE降维算法,SNE算法可以很好地保持数据的局部结构,该算法利用条件概率来衡量数据点之间的相似性,通过最小化条件概率 pj|i 与 pi|j 之间的 KL-divergence,将数据从高维空间映射到低维空间. Symmetric SNE SNE算法利用的是条件概率,我们也可以利用联合概率,衡量两个空间  与  的联合概率分布的 KL-divergence,假设高维空间  的联合概率分布为 Pi,低维空间  的联合概率分布为 Qi,可以定义两者的 KL-diver…
第1章:C++泛型技术基础:模板 1.2 关于模板参数 1.2.1 模板参数类型 类型参数   typename声明的参数都属于类型参数,它的实参必须为系统内置或者用户自定义的数据类型,包括类模板实体,由类模板产生的类模板实体,本质上就是类. 非类型参数   C++允许人们在模板参数列表中像函数参数列表中那样定义普通变量或者对象.定义的普通变量不能被修改,因为模板参数是在预编译期间进行传递并且被编译的.仅支持可以转换为Int类型的变量(double都不行!).枚举.指针.引用. template…
快速排序 对冒泡排序的一种改进,若初始记录序列按关键字有序或基本有序,蜕化为冒泡排序.使用的是递归原理,在所有同数量级O(n longn) 的排序方法中,其平均性能最好.就平均时间而言,是目前被认为最好的一种内部排序方法 基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列. 三个指针: 第一个指针称为pivotkey指针(枢轴),第二个指…
直接插入排序(Straight Insertion Sorting)的基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序. 复杂度:时间复杂度  O(n2) ,空间复杂度O(1) 稳定性: 插入排序是稳定的,排序前后两个相等元素相对次序不变(能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同.在简单形式化一下,如果Ai = Aj, Ai原…
A.项目中的常见文件 1.单元测试Test   2.Frameworks(xCode6 创建的SingleView Project没有) 依赖框架   3.Products 打包好的文件   4. projectname-Info.plist 全局配置文件 所以最好其他的plist文件不要带有Info字眼     (1)更改项目名 a.修改Bundle display name   b.clean   c.模拟器删除app,重新生成     (2)Bundle Identifier App唯一标…
有些工作只能在一台server上进行,比如master,这时HA(High Availability)首先要求部署多个server,其次要求多个server自动选举出一个active状态server,其他server处于standby状态,只有active状态的server允许进行特定的操作:当active状态的server由于各种原因无法服务之后(比如挂了或者断网),其他standby状态的server中会马上自动选举出一个active的server来提供服务,实现服务的无缝切换: hadoo…
---恢复内容开始--- 一.前言 1.webpack异步加载原理’                                           2.webpack.ensure原理                                           3.例子 二.主要内容 1.webpack异步加载原理’ webpack ensure有人称他为异步加载,也有人称为代码切割,他其实就是将js模块给独立导出一个.js文件,然后使用这个模块的时候,webpack会构造scri…
Java源码: /** * Demo.java * com.yuanchuangyun.libra.web * * * ver date author * ────────────────────────────────── * 2017年5月19日 renguoqiang * * Copyright (c) 2017, yuanchuangyun All Rights Reserved. */ package com.yuanchuangyun.libra.web; public class…
yii\web\User 是一个统称,为用户,没有具体实例,只能管理: 此处以app\models\User为基准: app\models\User 是映射数据表user的model类,同时也实现接口,yii\web\IdentityInterface,为什么要实现这个接口呢, 是因为在yii\web\User 中的login方法:public function login(IdentityInterface $identity, $duration = 0) 中的$identity 要求的类型…
遍历构造器的内存管理 a.遍历构造器方法内部使用autorelease释放对象 b.通过遍历构造器生成的对象.不用释放. 内存的管理总结 1.想占用某个对象的时候,要让它的引用计数器+1(retain操作) 2.当不想再占用某个对象的时候,要让它的引用计数器-1(release操作) 3.谁alloc谁release,遍历构造器使用autorelease 另:当一个属性遵循了协议的时候(该属性就是代理),这时使用内存组的assign修饰. 多态:父类指针 指向 子类对象 没有继承就没有多态 父类…
实现Runnable接口的原理. 背景: 多线程的第一种实现方式是::继承Thread类, 因为我们自定义的类(MyThread)是Thread类的子类, 所以MyThread类的对象调用start()方法的时候, 自动调用MyThread#run(), 这个我们可以理解, 但是MyRunnable类是实现了Runnable接口, 而Runnable接口的run()方法和Thread#start()没有关系, 问: 为什么Thread#start(), 会自动调用Runnable接口的子类(My…
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 聊聊IDE的实现原理 IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑起来了,用起来相当方便. 你不用去关心它后面做了些什么,执行了哪些命令,基于什么原理.然而也是这种过分的依赖往往让人散失了最基本的…
JDBC全称又叫做Java DataBase Connectivity,就是Java数据库连接,说白了就是用Java语言来操作数据库.这篇文章主要是对JDBC的原理进行讲解.不会专注于其使用.主要是理解其思想并对一些常见的面试题进行讲解. 一.JDBC原理 既然JDBC主要是用于java连接数据库的,能连接什么数据库没有指定,其实能连接很多种数据库,而且一般来说可以连接oracle和mysql,通常也是这两种.但是既然JDBC能连接这么多的数据库,开发起来太麻烦了,于是sun公司那帮人想出了一个…
在上一节介绍了一种最常见的降维方法PCA,本节介绍另一种降维方法LLE,本来打算对于其他降维算法一并进行一个简介,不过既然看到这里了,就对这些算法做一个相对详细的学习吧. 0.流形学习简介 在前面PCA中说到,PCA是一种无法将数据进行拉直,当直接对于曲面进行降维后,导致数据的重叠,难以区分,如下图所示: 这是因为在使用PCA降维时,PCA仅仅关注于保持降维后的方差最大,没有考虑样本的局部特征,如图所示: 利用PCA在对点①进行降维后,没有考虑点①与其他点②.③.④..的位置关系,也就是说对于点…
MNIST 可视化 Visualizing MNIST: An Exploration of Dimensionality Reduction At some fundamental level, no one understands machine learning. It isn't a matter of things being too complicated. Almost everything we do is fundamentally very simple. Unfortuna…
Probabilistic PCA 在之前的文章PCA与LDA介绍中介绍了PCA的基本原理,这一部分主要在此基础上进行扩展,在PCA中引入概率的元素,具体思路是对每个数据$\vec{x}_i$,假设$\vec{x}_{i} \sim N\left(W{\vec{z}_{i}}, \sigma^{2} I\right)$,其中$\vec{z}_{i}$是一个低维向量,它的先验分布满足$\vec{z}_{i} \sim N(0, I)$,$W$以及所有的$\vec{z}_i$均是要计算的量.$\si…
http://www.datakit.cn/blog/2017/02/05/t_sne_full.html t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法,是由 Laurens van der Maaten 和 Geoffrey Hinton在08年提出来.此外,t-SNE 是一种非线性降维算法,非常适用于高维数据降维到2维或者3维,进行可视化. t-SNE是由SNE(Stochastic Neighbor Emb…
同步笔者CSDN博客(https://blog.csdn.net/qq_37608890/article/details/81513882). 一.概述 本文将要讨论NLP的一个重要话题:Word2Vec,它是一种学习词嵌入或分布式数字特征表示(即向量)的技术.其实,在开展自然语言处理任务时,一个比较重要的基础工作就是有关词表示层面的学习,因为良好的特征表示所对应的词,能够使得上下午语义内容得以很好地保留和整体串起来.举个例子,在特征表示层面,单词“forest”和单词“oven”是不同的,也很…
Problems[show] Classification Clustering Regression Anomaly detection Association rules Reinforcement learning Structured prediction Feature engineering Feature learning Online learning Semi-supervised learning Unsupervised learning Learning to rank…
新手入门完整教程进阶指南 API中文手册精华文章TF社区 INTRODUCTION 1. 新手入门 1.1. 介绍 1.2. 下载及安装 1.3. 基本用法 2. 完整教程 2.1. 总览 2.2. MNIST 数据下载 2.3. MNIST 入门 2.4. MNIST 进阶 2.5. TENSORFLOW 运作方式入门 2.6. 卷积神经网络 2.7. 字词的向量表示 2.8. 递归神经网络 2.9. 曼德布洛特(MANDELBROT)集合 2.10. 偏微分方程 3. 进阶指南 3.1. 总…