朝思录

迷雾终将散去,黎明即将来临

0%

Kernel-PCA是采用Kernel方法,在更高维的空间中做PCA分析,但是得到的主成分的个数却不能超过原始数据的维度。Kernel-PCA适用于非凸分布的数据的分析,但值得注意的是,因为Kernel-PCA是采用Kernel做隐式高维映射,所以只能进行信号的最小误差表示,不能进行信号重建操作。

在这一节中,Kernel-PCA算法的每一步将被拿出来做不涉及深入证明的解释。主要目的是简明表述Kernel-PCA算法,以免被复杂的证明过程扰乱了主线。

Read more »

(Katex)\tag{Katex}

Katex-logo

今年年中Katex-v0.10.0版本正式支持\tag标签(上图右侧就是😎)。因为katex之前不支持这个标签,好长时间以来笔者念念不忘mathjax的好,现在终于要断了这牵挂。

目前貌似还没有支持新特性的hexo-katex渲染器插件。这里笔者对markdown-it-plus的子插件@iktakahiro/markdown-it-katex做了一些修改,成功地在本站中引入最新的Katex release。

Read more »

Pearson 相关系数

定量数据采用Pearson相关系数求解,该相关系数其实就是大家学概率论时第一此接触到的相关系数:

ρX,Y=cov(X,Y)σXσY\rho_{X,Y}=\frac{cov(X,Y)}{\sigma_X\sigma_Y}

在计算时采用样本协方差和标准差[1]

r=i=1n(XiX)(YiY)i=1n(XiX)2i=1n(YiY)2r = \frac{\sum_{i=1}^n(X_i-\overline X) (Y_i-\overline Y)} {\sqrt{\sum_{i=1}^n(X_i-\overline X)^2} \sqrt{\sum_{i=1}^n(Y_i-\overline Y)^2}}

在数据标准化后,Pearson相关性系数,Cosine相似度,欧式距离平方可认为是等价的[2]

Spearman 相关系数

Spearman相关系数是两个变量XX,YY对应的等级变量xx,yy的pearson相关系数。

Read more »

本文已更新至VScode 1.30.1,Python Extension 2018.12.1版本

vscode
对初学者来说,Pycharm显得太臃肿,所以果断弃坑Pycharm改投VScode。这里主要以调试和虚拟环境配置两个角度介绍VScode构建python开发环境,并记录配置和使用该开发环境遇到的主要问题。

Read more »

什么是环境

环境是解释器在运行时所需的头文件,库等的集合,是一个文件夹。这个概念跟函数闭包有点像,闭包携带了函数运行所需的所有变量。
比如python安装目录就是一个环境,其下包含:

  • Include - 头文件所在位置
  • Lib - 库文件所在位置
  • Scripts - python应用所在位置
  • tcl - 目前我还不知道
  • 还有其他文件夹我也不知道了

注:pip安装的包在\Lib\site-packages

为什么需要虚拟环境

The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.
Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

假如你只使用python安装时提供的环境,对于环境的任何修改都只能叠加到这个环境上。
比如某个python app需要某个Lib的v1版本,但另一个app需要这个Lib的v2版本。因为这两个版本不可能在同一个环境上同时出现,所以这两个app不能同时使用。
另外某些造好的轮子需要依托固定版本的库,如果手贱一不小心升级了,这个轮子就不能用了
以上都是单一环境的坏处。
所以virtualenv可以虚拟出多个环境,解决这个问题。

Read more »

阅读本文只需要高等数学基础,推导比较细节以备忘,建议稍稍了解下变分法再阅读本文

在学习Kass的Complete Snake Model时遇到了使用变分法的推导。花了点时间翻了翻泛函简单学习了一下变分法的相关计算,这里做个记录。

Read more »

事因今年一月份打算给实验室做个网站,并借此学习Bootstrap框架。然后拖拖拉拉几个月,终于在今天开始了。

在学习Bootstrap的栅格系统时,笔者卡在了官方文档的Mix and match那一块,并且无论如何也想不清同一个div被同时赋予不同的col类型时会出现的行为。由于笔者的html和css的基础非常薄弱,所以并没有能力在底层上做解释,这里只给出一个经验公式。

以下所有内容基于Bootstrap v4.1.1

Read more »

MATLAB支持两种类:

  • Handle class
  • Value class
    这两种类的定义和区别如下:

Handle class

一旦采用Handle class创建一个对象,这个对象就是独一无二的。对该对象的复制不能生成副本,只能生成引用。对该引用进行操作就是对该对象进行操作。

Use a handle class when you want to create a reference to the data contained in an object of the class, and do not wnat copies of the object to make copies of the object data.

图像的句柄就是一个典型的Handle class。这里采用figure函数生成的一个句柄对象以说明Handle class的特性:

Read more »