Digest of R for Data Science
总结自 R Graphics Cookbook
1. Introduction to Information Theory
Chapter 1. Your First Python Program
P.S. It was 2015 when the 1st edition of this book came out and I wrote this post. Now Hadley Wickham is working on the 2nd edition where a lot contents chan...
Rcpp 初体验。请结合 Rcpp Hierarchy 做进一步的理解。本文待修改。
ArrayList: 非线程安全 LinkedList: 非线程安全
系统大了就要拆分,比如豆瓣读书、豆瓣电影和豆瓣音乐。
这本书 的副标题是 “By Example”,所以整书适合一口气读完,也不用每个例子都敲一遍,顺着作者思路走完一遍就可以了。
Two brilliant posts on this sampling technique:
Course site: Applied Nonparametric and Modern Statistics
在查 non-parametric tests 时,Wikipedia 上提到了 Non-parametric models,于是干脆就记录一下。参考 Wikipedia: Parametric model。
参考资料:
看 wikipedia 什么的都不好使,还是得看书 Handbook of Parametric and Nonparametric Statistical Procedures,写得非常清楚。
1. Expectation Operator Rules
总结自 Coursera lecture Statistical Inference section 07 Asymptotics。新的 slide 省略了部分推导过程,最好同时参考下旧的 slide。
参考:
总结自 Coursera lecture Statistical Inference section 03 Conditional probability。
总结自 Coursera lecture Statistical Inference section 02 Probability。
0. Symbols
0. Dictionary
confound 的意思是:
摘自 What are the differences among different study designs, and what are the relative advantages of each?。做目录并排版。 1. Two Classic Types of Studies The two ...
搬运自 C++11 FAQ: Inline namespace。
整理自 C++ Primer, 5th Edition
基本就是 java @Override 的作用:
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
我们在 C++ Exception Handling / auto_ptr 里介绍了 RAII wrapper for pointers: auto_ptr,但是它在 C++11 又被 deprecated 了……对应的 replacement 是 unique_ptr。顺带还推出了 shared_ptr 和 w...
return
/ Empty argument list
整理自 C++ Primer, 5th Edition & Thinking in C++
range for 就是 java 的 for each loop,C++ 里有三种形式:
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
整理自:
整理自 C++ Primer, 5th Edition
整理自:Thinking in C++, Volume 2 & C++ Primer, 5th Edition
整理自 Thinking in C++。没啥特别好说的。
Backup My Ubuntu
线上机的 exception log 可能被吞(日志量很大的时候,exception log 根本就打不出来),此时可以用测试机 debug。如果测试机没问题,说明是线上环境问题(网络不好、依赖的外部接口挂了之类的)。如果测试机一样挂,那么直接在测试机上找问题就好了
不设置 host,直接 ip 连,肯定取不到 cookie。
copy 一段代码到 jsp,tomcat 的 catalina.err 总说:org.apache.jasper.JasperException: /WEB-INF/jsp/admin/lottery/add.jsp(425,32) equal symbol expected。
交互稿没画边界情况的话后患无穷,态度一定要强硬,直接拒收! 至少在部署前要询问是否有统计需求,产品不会提醒你加统计日志的,都是事后才说。 中途换技术方案是很坑爹的。涉及第三方或自己不可控的控件,提前考虑是否有压力隐患,压力测试越早做越好(越早做越先发现问题,修改的成本越小,如:Magick,lp 项...
mc_lottery 是一个大表(28个字段),对应 Lottery 也是个大对象。如果一个页面只用展示 Lottery 对象的3个字段,那么,SQL 层的传输就很浪费。 如果把 mc_lottery 拆成多个小表,Lottery 对象也要拆成多个小对象的话,你就需要处理事务问题,也很烦。 由于小表...
1. 接口粒度设计
1. 按 sql schema 设计
Deploy 最需要注意的问题
最简单也最容易忽视的一点:最终的操作是什么?要输出什么?要写什么值?是写 DB 还是写 UD 还是写 MD?输入往往很清楚,但输出有时候很恍惚(比如:aupg 项目) 搞清楚:接口给谁用?(比如:aupg 项目,两个接口给用户,一个接口给 SA)
整理自 C++ Primer, 5th Edition
整理自:
整理自:Thinking in C++
整理自 Thinking in C++
问题源自:Thinking in C++
整理自 Thinking in C++
在 2010-09-26 原作基础上修改。日期改到 2015-03-26 使本文进入 C++ 文章群落,方便查阅。
整理自 Thinking in C++。
整理自 Thinking in C++ 和 MSDN: Casting Operators。
合着按着我自己的思路才是最好理解的。PCA 的整个过程其实就是:寻找一个基变换 (change of basis),使得新坐标系内的 axes 的功效可以量化。这个量化的意思是,如果新坐标系内有 x’-axis 和 y’-axis,我可以明确地写出 $\frac{\operatorname{effect}(\te...
注意这里反复使用了 $\nabla$,但要注意的是,$\nabla$ 并不是一个有统一定义的 operator,它只是一个符号而已,在不同的高阶 operator 定义中有不同的解读和记法。具体可以参见 Wikipedia: Del
Gradient Field: a better way to interpret
Vector Space
Original post is The Gradient and Directional Derivative from Mathematics School, Oregon State University. Here I thank the author(s) sincerely.
Greatest thanks to 3Blue1Brown!
感谢 良田围 网友在 偏导数有什么用 问题上的精彩回复,以下全文摘抄,仅加音标并稍微排版。
斜率(Slope)
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
整理自:Thinking in C++
operator=
/ shallow copy vs. deep copy / reference counting / copy on write
整理自:Thinking in C++
整理自:Thinking in C++
局部内部类对外部变量的访问权限
首先我们明确下 “enclose” 这个单词的逻辑关系:OuterClass encloses InnerClass,所以外部类就是 enclosing class,内部类是 enclosed class。
如果把 {...} 这么一段称为 “域”,那么方法 body 明显是一个域,方法 body 中的 if {} 或是 for {} 之类的也是域。在方法 body 或是方法 body 中其他域里定义的类就是局部内部类。
class Outer { public class Inner { public String getInnerClassName() { return Inner.this.getClass().toString(); // 'Inner' can be omitted here...
内部类的一个重要作用是隐藏继承或是对接口的实现,典型的形式是:内部类来继承或是实现接口,由外部类提供代理 constructor 方法。这些代理 constructor 方法一般都利用的向上转型,即不返回内部类对象,而是返回内部类继承的父类对象或是实现的接口对象。如:
我觉得用 Java 学 design pattern 有个问题就是:总是要有 interface / abstract class 介入,搞得整个 class hierarchy 非常复杂。其实我用 duck typing 的思路来看,Adapter、Proxy、Decorator 这三个模式的基本结构是一样的,...
我们在 PPP 里其实有讲 visitor pattern,但最近在读的 Crafting Interpreters 提供了一个绝妙的解读,虽然只能适用于 vanilla 的 visitor pattern,但还是值得记录下。
Martin Fowler 的 Inversion of Control Containers and the Dependency Injection pattern 中提到的。
1. 何为依赖
RT。自己试试就好了,废话不多说了。
在其所在的块内 (如方法 body、if () {...} 等),throw 语句可以屏蔽其后的语句,即在块内,该 throw 语句后面不能再写其他语句;但在块之外,还是可以写其他的语句的。如:
当有继承发生时,会伴随着重载、覆写 (包括接口方法的实现)、构造器的重写等行为。此时,如果基类或是接口的方法存在异常声明,那么导出类或是接口的实现类的对应方法该如何声明异常?同时对这些方法的调用该如何捕捉异常?下面就这 2 个问题进行探讨,你会看到,针对覆写和构造器的重写是 2 种完全不同的处理方式 (针对重载则...
finally 总是会被执行,即使 try 中有 break、continue、return,如:
try 块里有异常抛出时,程序会进入 第一个 异常类型匹配的 catch 块执行,其他的 catch 块不执行。
首先明确一点,同步方法本质上也是一个同步控制块(仅针对于锁定 this 的情况,如果同步控制块锁定的不是 this,那么它是不能直接改写为同步方法的),区别在于同步方法的粒度是整个方法,而同步控制块的粒度可以是方法的一部分。
public class Runner implements Runnable { @Override public void run() { for(int i = 0; i < 100; i++) { System.out.println("Runner runs to -...
虽说 Thread 类提供了 stop() 和 suspend() 方法,但这两种方法过于粗暴,如果线程占用了一些资源(如打开了一个文件,建立了一个数据库连接什么的),直接 stop() 或是 suspend() 是会产生问题的。
总结自 Flexible discriminative learning with structured output support vector machines,非常好的一份 tutorial。
原文 RASE: recognition of alternatively spliced exons in C.elegans.
之前一直没搞清楚,这里理一理思路。
总结自 section note 5: Convex Optimization Overview, Part II
总结自 Chapter 9, An Introduction to Statistical Learning.
我们在 C++ Exception Handling / auto_ptr 里介绍了 RAII wrapper for pointers: auto_ptr,但是它在 C++11 又被 deprecated 了……对应的 replacement 是 unique_ptr。顺带还推出了 shared_ptr 和 w...
整理自 C++ Primer, 5th Edition
整理自 Thinking in C++
在 2010-09-26 原作基础上修改。日期改到 2015-03-26 使本文进入 C++ 文章群落,方便查阅。
整理自 Thinking in C++。
整理自 Thinking in C++。
紧接着 Spring AOP 学习(三):例子与基本概念 中的例子。其实 Spring AOP 注解的概念理解了后,看 XML 配置就是件很简单的事情了。
依旧是 LogInterceptor 的例子。下面是 beans.xml:
如果系统中有 500 个类,每个类都要添加日志功能,此时无论是直接修改源代码、继承还是组合,都是十分巨大的工作量。此时 AOP 可以帮我们解决这个问题。
来自尚学堂 Spring 视频教程;作文字总结。
关于动态代理,一般的代码结构为:一个业务接口、一个业务接口的实现、一个自定义的 InvocationHandler 实现和 main 类,如下:
接上一篇 EM method for identifying motifs in unaligned biopolymer sequences,我们接着介绍 Unsupervised Learning of Multiple Motifs in Biopolymers Using Expectation Maxi...
总结下 Unsupervised Learning of Multiple Motifs in Biopolymers Using Expectation Maximization 中的 EM 方法。
原文 A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models。
原文 RASE: recognition of alternatively spliced exons in C.elegans.
之前一直没搞清楚,这里理一理思路。
如果系统中有 500 个类,每个类都要添加日志功能,此时无论是直接修改源代码、继承还是组合,都是十分巨大的工作量。此时 AOP 可以帮我们解决这个问题。
来自尚学堂 Spring 视频教程;作文字总结。
关于动态代理,一般的代码结构为:一个业务接口、一个业务接口的实现、一个自定义的 InvocationHandler 实现和 main 类,如下:
类和类之间有 3 种关系:组合、继承和代理 (proxy)。
合着按着我自己的思路才是最好理解的。PCA 的整个过程其实就是:寻找一个基变换 (change of basis),使得新坐标系内的 axes 的功效可以量化。这个量化的意思是,如果新坐标系内有 x’-axis 和 y’-axis,我可以明确地写出 $\frac{\operatorname{effect}(\te...
总结自 Chapter 10, An Introduction to Statistical Learning.
1. Motivation
具体见 Traits: a new and useful template technique。这里只说下感想:
typename
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 1 & Volume 2
总结自 Seamless R and C++ Integration with Rcpp
1. The C beneath R
P.S. It was 2015 when the 1st edition of this book came out and I wrote this post. Now Hadley Wickham is working on the 2nd edition where a lot contents chan...
Rcpp 初体验。请结合 Rcpp Hierarchy 做进一步的理解。本文待修改。
class loading 是一个比较复杂的过程。一般说来,类是在其 static member 被访问时被加载的。在加载时会做的一件事是:初始化 static member 和 static 代码段 (static block, i.e. static {......}),当然,static 是只会被执行 on...
如果系统中有 500 个类,每个类都要添加日志功能,此时无论是直接修改源代码、继承还是组合,都是十分巨大的工作量。此时 AOP 可以帮我们解决这个问题。
来自尚学堂 Spring 视频教程;作文字总结。
关于动态代理,一般的代码结构为:一个业务接口、一个业务接口的实现、一个自定义的 InvocationHandler 实现和 main 类,如下:
Martin Fowler 的 Inversion of Control Containers and the Dependency Injection pattern 中提到的。
摘自 Short introduction to log4j,自加评论。
Pre-reading
最近研究 regular expression 顺便补了下 escape 的课 (参 Escape Character / Control Character / Python Raw Strings / Python Bytes Literals),然后我今天就发现了 python 光一个 escape cha...
这么多年了,我终于决定要探一探这个 “escape” 到底是啥意思。看了一圈下来,这些概念虽然说不上是乱成一锅粥,但的确够喝一壶的了。
Github Pages 升级到了 Jekyll 3.0,而且将使用 kramdown 解析引擎。我紧跟大部队,local build 环境也升级了,但是发现了 MathJax 有超级多的问题,特来写下血泪史……
1. Equation Numbering
1. User, Organization, and Project Pages
LLVM 禁止使用 C++ native RTTI,主要是嫌弃 native RTTI 的 performance,并不是说 LLVM 不需要 RTTI 这个 feature。我们可以说 LLVM 自己实现了一套新的 RTTI (以下称 LLVM-style RTTI),它有:
Q1: What is polymorphism, again?
整理自:Thinking in C++, Volume 2
这俩是有区别的,我一直没有注意直到我发现公式上的区别。我没有注意的原因应该是 regression 没有显式使用 cross entropy loss,而 classification 的 cross entropy loss 是对原生 cross entropy 的扩展。
虽然 topology 的定义已经摆脱了 metric,但是这并不妨碍我们从 topology 的角度去研究 metric,这并不存在矛盾。
Topology / Topological Space
Quoted from Analysis II by Victor Guillemin, MIT and Topology for dummies by Damian Giaouris, Newcastle University with modification.
来自尚学堂 Spring 视频教程;作文字总结。
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { doGet(req, resp); }
This theme supports link posts, made famous by John Gruber. To use, just add link: http://url-you-want-linked to the post’s YAML front matter and you’re done.
A notice displays information that explains nearby content. Often used to call attention to a particular detail.
<context-param> <param-name>ibatisResourceCharset</param-name> <param-value>UTF-8</param-value> </context-param> <...
匹配原则
IE 6 下,json 内部末尾不能有逗号
不管这篇 自定义input type=”file”的样式以及引出的相关技术问题 描绘得有多么好,永远不要妄想用 <span> 来代替 <input type="file"> (即自定义样式的 file 控件),浏览器兼容性问题 is watching you! 我们可是连 IE6 都要测的...
这本书 的副标题是 “By Example”,所以整书适合一口气读完,也不用每个例子都敲一遍,顺着作者思路走完一遍就可以了。
我写这篇的起因来自于这个灵魂拷问 Is JSON a string? 我觉得这又是个老外瞎用词导致的误解。
1. Java Object <-> JSONObject
1. Name Binding / Name Resolution / Variable / Indentifier / Value / Reference
局部内部类对外部变量的访问权限
系统大了就要拆分,比如豆瓣读书、豆瓣电影和豆瓣音乐。
参考自 Multi-label Linear Discriminant Analysis
总结自 Chapter 4, An Introduction to Statistical Learning.
总结自 Chapter 8, An Introduction to Statistical Learning.
总结自 Chapter 5, An Introduction to Statistical Learning.
首先感谢 张洋 先生的这篇 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification),写的非常清楚明白。本文以此为基础做些总结。
总结自 Bayesian Interpretation for Ridge Regression and the Lasso, Section 6.2.2 The Lasso, An Introduction to Statistical Learning.
总结自 Ensemble Methods in Machine Learning
总结自 Chapter 8, An Introduction to Statistical Learning.
总结自 Ensemble Methods in Machine Learning
总结自 Chapter 8, An Introduction to Statistical Learning.
之前写过一篇 Expectation-Maximization Algorithm,但是太细碎了,没有抓住核心。
原文 A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models。
1. Definition
Given 3 points, $(1,1), (2,1), (2,2)$, how would you connect them with 2 segments? Subtly, geom_line of ggplot2 thinks in a different way when you order the ...
If you run cross_validate(n_jobs > 1) with your own estimator, pay attention that your estimator will be copied per job.
Suppose $X[\text{“groups”}] = \begin{bmatrix} a \newline b \newline b \newline c \newline c \newline c \end{bmatrix}$ and n_splits=3.
参考 Socket Programming in Python (Guide) 的前半部分,代码有改动。另外我觉得这个例子用两个 ipython 来玩更方便理解。
如何形象理解 socket
假如我们需要确定谁占用了我们的 80 端口。
参考 Regular Expressions - User Guide
A notice displays information that explains nearby content. Often used to call attention to a particular detail.
This theme supports link posts, made famous by John Gruber. To use, just add link: http://url-you-want-linked to the post’s YAML front matter and you’re done.
原来在 5.1 版本时,为了解决中文乱码问题设置默认字符集为 utf8 时,在 my.ini 内的 [mysql] 和 [mysqld] 项中都是写:
Ajax Post 数据加号变空格
XSS,Cross-site scripting,类型有:
XSS,Cross-site scripting,类型有:
系统大了就要拆分,比如豆瓣读书、豆瓣电影和豆瓣音乐。
总结自 Chapter 7, An Introduction to Statistical Learning.
总结自 Chapter 7, An Introduction to Statistical Learning.
总结自 Chapter 10, An Introduction to Statistical Learning.
概念挺简单,主要是生单词太多了,mark 一下。
总结自 Hidden Markov Models
整理自 Thinking in C++ 和 MSDN: Casting Operators。
R 里面常见的一个用法是 dataframe[boolSeq, "foo"],pandas 里也是一样:
R 里面常见的一个用法是 dataframe[boolSeq, "foo"],pandas 里也是一样:
1. MySQLdb Installation
From stackoverflow: What do the terms “CPU bound” and “I/O bound” mean?:
From stackoverflow: What do the terms “CPU bound” and “I/O bound” mean?:
Usually this job is done in R, as deescribed in Using R + Bioconductor to Get Flanking Sequence Given Genomic Coordinates. An R sample could be this simple:
You CANNOT access each row’s index via lambda x: x.index in DataFrame.apply(axis=1) because apply treats each row as a numpy object, not a Series. However yo...
If you just google, you may find autocommit a vaguely defined term.
Suppose $X[\text{“groups”}] = \begin{bmatrix} a \newline b \newline b \newline c \newline c \newline c \end{bmatrix}$ and n_splits=3.
scipy.spatial.distance.pdist(X) gives the pair-wise distances of X, $\operatorname{dist}(X[i], X[i])$ not included. The distances are stored in a dense matri...
scipy.spatial.distance.pdist(X) gives the pair-wise distances of X, $\operatorname{dist}(X[i], X[i])$ not included. The distances are stored in a dense matri...
My aim is to install ALL packages I need for a project to a non-default location.
My aim is to install ALL packages I need for a project to a non-default location.
My aim is to install ALL packages I need for a project to a non-default location.
参考自 Introduction to Semi-Supervised Learning。
1. Quick Facts On SNAP
1. Quick Facts On SNAP
参考 Quicksort with Python
这真的是困扰了我很多年的问题,而且我发现这还不是中文教材的锅,老外的很多教材也是上来就 CFL,也不告诉你这个 context 到底是啥 context,这个 free 是怎么个 free 法。我就纳闷了,多讲这么几句怎么就这么难呢……
这真的是困扰了我很多年的问题,而且我发现这还不是中文教材的锅,老外的很多教材也是上来就 CFL,也不告诉你这个 context 到底是啥 context,这个 free 是怎么个 free 法。我就纳闷了,多讲这么几句怎么就这么难呢……
URL Parameters / URL Query
LLVM 禁止使用 C++ native RTTI,主要是嫌弃 native RTTI 的 performance,并不是说 LLVM 不需要 RTTI 这个 feature。我们可以说 LLVM 自己实现了一套新的 RTTI (以下称 LLVM-style RTTI),它有: