“栈”,类似于一摞叠在一起的盘子。放盘子的时候,从下往上一个一个放;取的时候,也是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出,这就是“栈”的结构。
集成学习对比
集成学习(Ensemble Learning)是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性。
根据基学习器的生成方式,集成学习方法大致分为两类:
- 基学习器之间存在强依赖关系、必须串行生成
- 基学习器间不存在强依赖关系、可同时生成的并行化方法
前者的代表就是 Boosting (如 GBDT
、XGBoost
),后者的代表是 Bagging (如 RF
)。
链表
相比数组,链表是一种稍微复杂一点的数据结构。
链表结构
从底层的存储结构来看,数组需要一块连续的内存空间来存储,对内存的要求比较高。如果申请一个 100MB 大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于 100MB,仍然会申请失败。
链表恰恰相反,它并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块串联起来使用。所以如果申请的是 100MB 大小的链表,根本不会有问题。
三种最常见的链表结构,它们分别是:单链表
、双向链表
和 循环链表
。
数组
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
基本概念
通过了解以下几个关键词,掌握数组。
- 线性表 (Linear List): 数据排成像一条线一样的结构,每个线性表上的数据最多只有前和后两个方向。除了数组,链表、队列、栈等也是线性表结构。
学习数据结构与算法
立个flag:非科班生出身,数据结构与算法相对薄弱,能不能在空余时间坚持学点东西,做个笔记?!
学习途径:
极客时间
为什么要学习数据结构和算法?
- 直接好处是能够有写出性能更优的代码
- 算法,是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面
- 长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一
怼人会更加自信,跳槽也不用畏畏缩缩
如何更新hexo博客
假设我们已经用了GitHub搭建了Hexo博客(参考Hexo-搭建博客)。
关于日常改动
在本地对博客进行修改(添加新博文、修改样式等等)后,通过Git进行管理
- 依次执行
git add .
、git commit -m "xxx"
、git push origin hexo
,同步到GitHub中的hexo分支 - 执行
hexo g -d
更新网站并部署到GitHub中的master分支
LaTeX 模板
How to use pgfplots in LaTeX
Before we start, the following packages and command are useful:
1 | \usepackage{tikz} % To generate the plot from csv |
Plotting data from .dat
files in LaTeX
Using \addplot table
Ploting data directly from a .dat
file. For example, if a file called data.dat
has the data table shown as follows:
How to work with git
Installing Git on Mac OS
On Mac OS X, a one-click installer package is available that can be downloaded from here: link
Once this is installed, you can jump right into Git by starting “Terminal.app” on your Mac.
Configuring Git
A couple of very basic configurations should be made before you get started. For example, set your name and email address as follows:
1 | $ git config --global user.name "cnxiekun" |
How to run Jupyter Notebook on Server
Access to Server (e.g., Pascal)
Open terminal and use your account and password to log in the server, e.g.,
1 | $ ssh your_account_name@pascal.ieda.ust.hk |
Then enter your password.
Create a notebook configuration file
Use the following command to generate jupyter_notebook_config.py
, whose default parent directory is ~/.jupyter
, if you don’t have one:
1 | $ jupyter notebook --generate-config |