分类目录归档:学习
蒙特卡洛法 MC
蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。
蒙特卡洛方法的名字来源于摩纳哥的一个城市蒙特卡洛,该城市以赌博业闻名,而蒙特卡洛方法正是以概率为基础的方法。与它对应的是确定性算法。
蒙特卡洛方法的原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。
1 基本概念
模拟退火算法(Simulated Annealing,SA)的思想最早是由Metropolis等提出的。物理中固体物质的退火过程与一般的组合优化问题之间的相似性,SA是一种由物理退火过程启发的通用优化算法
模拟退火法的物理过程:
- 加温过程:其目的是增强粒子的热运动,使其偏离平衡位置。当温度足够高时,固体将熔为液体,从而消除系统原先存在的非均匀状态
- 等温过程:对于与周围环境交换热量而温度不变的封闭系统,系统状态的自发变化总是朝自由能减少的方向进行的,当自由能达到最小时,系统达到平衡状态
- 冷却过程:使粒子热运动减弱,系
遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
遗传算法的关键要素:
- 种群(population)代表问题可能潜在的解集的一个开始的
- 一个种群由经过基因(gene)编码的定数目的个体(individua)组成
核心过程:
- 编码:实现从表现型到基因型的映射,同时构建初代种群
- 选择:在每一代,根据问题域中个体的适应度(fitness)选择个体
- 变异:借助于遗传学算子(genetic operators)进行组合交叉和变异,产生代表新解集的种群
- 演化:按照适者生存和优胜
前置知识:(笔记待上传)
线性变换与矩阵
$$ y=Ax+b\quad\mathrm{where} \ A\in\mathbb{R}^{m\times n},x\in\mathbb{R}^n,y\in\mathbb{R}^m,b\in\mathbb{R}^m $$
- 该方程表示通过矩阵 $A$ 和偏差 $b$ 将输入 $x$ 线性映射到输出 $y$
Python 实现:
import numpy as np
A = np.array([[2, 1], [1, 1 损失函数的理解与区分
如何理解并区分误差(error)/损失(loss)/成本(cost)/目标(objective)函数?
- 误差函数描述的是预测值与真实值的偏差:$y_{pred}-y_{true}$
- 损失函数是对预测误差的负面影响的量化,比如平方误差损失认为3个单位的误差会导致9个单位的负面影响;损失函数通常是针对单个样本的描述
- 损失函数是成本函数的一部分,成本函数通常是针对训练集的描述,既包含所有样本的损失,也包含针对模型复杂度的惩罚(正则项)
- 成本函数是
特征工程常用
常用特征处理:
- 常见时间日期类特征:年/月/时、第几周/周次、是否周末、节假日、时差等
- 日期类聚合特征:客户最活跃的月份、某类产品上周累计销售、特定客户的周末消费额等
- 常用统计类特征:最值、均值、唯一值、偏度、峰度、KStat、分位数等
更多时序类衍生特征可参考1_study/Python/Python 数据处理/tsfresh 时序特征聚合工具
其他特征处理技巧:
- 多项式特征(
preprocessing.PolynomialFeatures) - 分箱(数值型变量 转 类别型变量,
pandas.cut) - 对数化(修正存
支持向量机(support vector machine,简称为SVM)
- 作为经典的有监督学习算法,常用于分类与回归分析问题中
- 支持向量机有着完备而优雅的数学理论,并且计算成本低效果好
- 在集成学习与深度学习流行前,SVM 在很多领域都是非常主流的算法
SVM 算法图解:

- SVM 核心思想在于通过寻找一个超平面,尽可能的分隔不同类别间的样本
- 支持向量(support vector):用于确定超平面边缘的部分样本
SVM 借助核技巧将输入隐式映射到高维特征空间中,从而有效地进行非线性分类
常见的核函数:
| 核函数 | 表达式 | 备注 |
|---|---|---|
| Linear Kerne |