INT104 人工智能笔记 xjtlu

笔记是基于23年int104课程写的,请勿转卖

目录

lec2数据预处理

2.1Data Collection

Data type数据类型

Data Storage and Presentation数据储存

2.2Discover and Visualize the Data数据可视化

Data Visualization in Python

Common Format

2.3Data Preprocessing数据预处理

什么是data

 数据预处理(无顺序要求)

lec3分类Classification

3.1分类Classification

3.2评估分类模型 Evaluating Classification

混淆矩阵 Confusion Matrix

 Precision/Recall Trade-off

 Area under Curve (AUC)曲线下的面积

3.3交叉验证 Cross Validation

3.4Multilabel Classification多元分类

 lec4 TRAINING MODELS

4.1Linear Regression

 4.2梯度下降法(Gradient Descent)

4.3Polynomial Regression

4.4Learning Curves

 4.5Regularized Linear Models

4.5Logistic Regression

lec5 DIMENSIONALITY REDUCTION

5.1 PCA

5.2Independent Component Analysis(ICA)

 5.3Manifold Learning

lec6 Support Vector Machine (SVE)

 6.1 Hard Margin Classification 硬间隔支持向量机(线性可分SVM)

 6.2 Soft Margin Classification

 6.3Polynomial Feature (Nonlinear SVM Classfication)

6.4 Polynomial Kernel 多项式核函数 

 6.5 RBF(Radial Basis Function Kernel)高斯核

6.6 SVM Regression

 lec7 Naïve Bayes

7.1 Bayes’ Rule 贝叶斯法则

7.2 Naïve Bayes Classifier

lec8 Non-parametric Classification

8.1

8.2 decision tree

Gini 基尼指数

8.3 CART,又名分类回归树

8.4 k-Nearest Neighbour

lec9 Ensemble Learning and Random Forests

9.1 Voting Classifiers

9.2 Bagging and Pasting

9.3 Random Patches and Random Subspaces (features selection)

9.4 Random Forest

9.5 Feature Importance

 9.6 AdaBoost

9.6 Gradient Boosting for regression

 9.7 Stacking (Stacked Generalization, 层叠/堆栈泛化)

 lec10 Unsupervised Learning

10.1Clustering

10.2 K-means聚类

10.2 Mini-batch K-Means

 10.3 Semi-Supervised Learning

 10.4 Agglomerative Clustering

 lec11Gaussian Mixture Model and Bayesian Statistics

11.1 Gaussian Mixture Model

混合模型

高斯混合模型 

11.2最大期望算法EM

11.3 Model Likelihood

11.4 Model Selection  ​编辑

APPENDIX


lec2数据预处理

2.1Data Collection

Data type数据类型

structured or unstructured  table or free text

Data Storage and Presentation数据储存

1 CSV (Comma Separated Values) 逗号分隔

2 TSV (Tab Separated Values) tab分隔

3 XML (eXtensible Markup Language)

4 JSON (JavaScript Object Notation)

(3,4 人可以看的懂点)

2.2Discover and Visualize the Data数据可视化

Data Visualization in Python

• Matplotlib • Seaborn • Pandas.plotting  ………

例:pandas 读CSV文件做出table

import pandas as pd
#pd.read_csv("csv.txt")
pd.read_csv("tsv.txt")

Common Format

• Line Charts • Bar Graphs • Histograms • Scatter Plots • Heat Maps 画出各种统计图

例:Matplotlib做出line charts 和 bar 和 his

import matplotlib.pyplot as plt
plt.plot(data_csv["before"])
data_csv["before"].plot.bar()
data_csv.hist()

2.3Data Preprocessing数据预处理

什么是data

 数据预处理(无顺序要求)

1 Data Cleaning

*data munging 整理例如把之前的没有结构的text一段话转化成整理成结构数据如table

*Handling Missing Data 处理一些丢失的数据 可以直接删除或者去设置为一些值(如平均值,0,中位数等)

*Smooth Noisy Data(更难,因为还要分辨定义什么是noisy) 处理一些离散值,干扰值

alcohol= pd.read_excel("alcohol.xlsx")
alcohol.dropna(axis=1)#删除missingdata所在的列
median_heard=alcohol["Heart"].median()
alcohol["Heart"].fillna(median_heard, inplace=True)#填充na列为中值
alcohol.loc[alcohol["Deaths"]<=0, "Deaths"]=0#处理不合理的noisydata为0

2 Data Integration

处理一些单位问题,重复什么的

3 Data Transformation

使数据更加的可读,例如用Python把数据变成负一到一的数值以0为中心,更加清晰地显示数据

使一个很分散的散点图变得集中更显示出其中的关系

4 Data Reduction数据规约

数据规约方法类似数据集的压缩,它通过维度的减少或者数据量的减少,来达到降低数据规模的目的,数据压缩(Data Compression)有无损与有损压缩。方法主要是下面两种:

    1.维度规约(Dimensionality Reduction):减少所需自变量的个数。代表方法为WT、PCA与FSS。
    2.数量规约(Numerosity Reducton):用较小的数据表示形式替换原始数据。代表方法为对数线性回归、聚类、抽样等。

关于Dimensionality Reduction降维的延伸

Feature Selection特征抽取和Feature Extraction特征选择是DimensionalityReduction(降维)两种方法

这两者达到的效果是一样的,就是试图去减少特征数据集中的属性(或者称为特征)的数目;但是所采用的方式方法却不同:特征抽取的方法主要是通过属性间的关系,如组合不同的属性得新的属性,这样就改变了原来的特征空间;而特征选择的方法是从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间。

1.Feature Selection特征抽取

主成分分析(PCA)和线性评判分析(LDA)是特征抽取的两种主要经典方法

2.Feature Extraction特征选择

过滤式(filter): 先进行特征选择,然后去训练学习器,所以特征选择的过程与学习器无关。相当于先对于特征进行过滤操作,然后用特征子集来训练分类器。
包裹式(wrapper):直接把最后要使用的分类器作为特征选择的评价函数,对于特定的分类器选择最优的特征子集。
Filter和Wrapper组合式算法:先使用Filter进行特征选择,去掉不相关的特征,降低特征维度;然后利用Wrapper进行特征选择。
嵌入式(embedding):把特征选择的过程与分类器学习的过程融合一起,在学习的过程中进行特征选择。最常见的使用L1正则化进行特征选择。
 

lec3分类Classification

3.1分类Classification

这周主要讲二分类binary classification。两个label,圈或者叉去分类

利用训练集(特征值和label)训练模型,然后用这些模型去分类新的个体(只有特征值)

 

 · 训练Training
依据训练集(training set)中的数据,训练集的数据被其标签明确分类,模型需要做的是学会按照这些给定数据确定分类标准
· 推论Inference
用于对未来的未知物体进行分类,在这之前需要估计模型的精度accuracy以评估模型:
评估模型好坏需要使用测试集test set,测试集需要独立于训练集,以测试模型对未探知的个体的分类精度。

Accuracy rate:correctly classified samples / test set(正确预测的除以所有的测试集)


3.2评估分类模型 Evaluating Classification


混淆矩阵 Confusion Matrix

True Positive (TP):模型判断为 +(正P),实际情况也是 +(判断正确True)
True Negative (TN):模型判断为 -(负N),实际情况也是 -(判断错误True)
False Positive (FP):模型判断为 +(正P),实际情况却是 -(判断错误False)
False Negative (FN):模型判断为 -(负N),实际情况却是 +(判断错误False)

利用TP,TN,FP,FN构建的算式,形容模型在某一方面的能力。如下

将实际情况为正的集合称为n+,将实际情况为负的集合称为n-

    1.Recall(Sensitivity): 所有实际为正的个体中分类为正的比例
    TP / (TP+FN) = TP/n+
    2.Fall-out:
    FP / (TN+FP) = TP/n-
    3.Miss rate
    FN / (TP+FN) = FN/n+
    4.Specificity(Selectivity)
    TN / (TN+FP) = TN/n-

上面4个都是该格子在该列的占比,也叫 xxx Rate

    5.Precision,在所有被分类为正的个体中实际为正的比例
    TP / (TP+FP)
    6.Accuracy,模型正确分类的比例
    (TN+TP) / (TP+TN+FP+FN)

 F-Measure

将Precision和Recall加权调和平均:

 β置为1时,式子即为F1-Measure(应该会出关于这些的计算题?):

 Precision/Recall Trade-off

一个不错杀一个不放过 精准度越高预测越准不错杀

 Area under Curve (AUC)曲线下的面积

1是完美0是全错

3.3交叉验证 Cross Validation

通过使用部分训练集作为交叉验证集,增强验证集表达整体数据的能力
可以用于模型评估,进而可以选择最好的学习模型(超参数选择)。

k折交叉测试集进行验证 k-fold Cross Validation

对模型的评估。
将数据划分为k个互斥且大小相等的子集,
进行k次训练和测试,每次选取第 i 个子集作为测试集(1≤i≤k),其余子集作为训练集。用k次测试的结果的平均数去评估的模型的performance。

该方法可以避免固定划分数据集的局限性、特殊性,这个优势在小规模数据集上更明显。

    *小规模数据集的k应该偏大,以采纳更大的训练集(小训练集可能导致训练不充分)
    *大规模数据集的k应该偏小,以采纳更大的测试集(训练集够充分了)


 

留一交叉验证 Leave-one-out Cross Validation
k=数据样本的总数量n,n个数据划分成k个子集,每个子集只包含一个数据,每次只留下一个单个样本作为测试集,其余n-1个样本作为训练集。

Merits: • Less bias: it trains on almost all of the data means that the model is trained on as much data as possible

Drawbacks: • Sensitive to outliers. • Due to n times model fitting, the computation of LOOCV is intensive

训练集与验证集互斥:因为在训练过程中有选择表现较好的那一种模型的需要,所以使用验证集
测试集与(训练集,验证集)互斥:因为有评估模型在应用到实际生活中的正确率的需要,而且又因为模型完全学习于训练集,导致需要与训练集互斥;模型使用了测试集选择最优模型,无形中依赖于测试集降低了一点错误率,为了真实性,需要与验证集互斥

 我觉得选d ab不太清楚 c可能相等如k里面只有一个样本变成了Looc

3.4Multilabel Classification多元分类

一对剩余所有组成一个二元分类器

or组多个一对一二元分类器

 lec4 TRAINING MODELS

4.1Linear Regression

简单线性回归单变量

 预测值和实际值的差叫做残差residuals 𝑒̂

regressed value追求最小的残差平方和

convergence收敛

最小二乘法矩阵求解、正规方程法(Normal Equation)

 逆矩阵用待定系数法去求,乘数拆分去乘以被乘数再相加。x1默认等于1所以直接有bias term是ceta0

 

 4.2梯度下降法(Gradient Descent)

描述:𝑎是学习率,它决定了我们下山过程中迈出的步子有多大。求导的目的是为了确定下山的方向,等式右面的θj是旧的参数,左边的θj是新的参数,每走一步(每一次迭代)我们都需要确定新的参数,因为只有更新了参数才能确定下一步的方向。

  • 太小:
    • 需要迭代很多步才能够收敛
    • 容易陷入局部极值
    • 在plateau区域,存在提前停止迭代的风险,从而无法找到极值
  • 太大:
    • 极值附近会产生振荡
    • 甚至出现 cost function 越来越大的情况
  • 如何确定合适的学习率?
    • 使用 网格搜索 (grid search)
    • 注意设置迭代次数限制,否则收敛时间过长
  • 如何设置迭代次数限制?
    • 将迭代次数设置得较大,但当梯度向量的模小于 ϵ即 tolerance 时,停止计算。(可以认为GD已经几乎找到了极小值)

注意事项:1.学习率不可过小也不可过大,会导致local minimal和oscillation(震荡)和slow convergence(慢收敛)

                  2.如果函数很复杂有极小值和最小值,梯度下降容易卡主

可以多次选择初始ceta比对避免2情况的出现

 d

对于多维特征

多维特征有可能比例尺或者说数量级不同导致高线图非常的扁导致迭代需要很多很多次,所以可以先normaliztion特征使图像变圆,使迭代次数更少

 *批量梯度下降(Batch Gradient Descent)

批量梯度下降法是最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行梯度的更新。把那个抽出来的ceta对所有样本算代价函数(mse)

优点:
(1)一次迭代是对所有样本进行计算,此时利用矩阵进行运算,实现了并行。
(2)由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,批量梯度下降一定能够得到全局最优解。

缺点:
(1)有时我们会遇到样本数目 m 很大的训练集合,这意味着我们每执行一次批梯度下降算法,都要对m个样本进行求和。我们的程序也就需要检测这上百万的样本,甚至我们完成值下降的第一步都十分困难。这样会导致,训练过程很慢,花费很长的时间


*随机梯度下降(Stochastic Gradient Descent)

算法中对\Theta的每次更新不需要再全部遍历一次整个样本,只需要查看一个训练样本进行更新,之后再用下一个样本进行下一次更新,像批梯度下降一样不断迭代更新。只对一个样本算代价函数(mse)。

优点:
(1)由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快。- 可以的在非常大的训练集上进行训练
- can be implemented as an out-of-core algorithm- 更加的不规则 (less regular)

缺点:
(1)准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛
(2)可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势。
(3)不易于并行实现

- 解决方法:
- 初始时设置较大学习率:加速训练过程 & 避开局部最优
- 逐渐减小学习率:使得找到的解停止在最优解(附近)

*小批量梯度下降(Mini-Batch Gradient Descent)

 每次迭代使用 ** batch_size** 个样本来对参数进行更新。它克服上面两种方法的缺点,又同时兼顾两种方法的优点。确定一个batch大小只对一组大小算代价函数(mse)。

优点:
(1)通过矩阵运算,每次在一个batch上优化神经网络参数并不会比单个数据慢太多
(2)每次使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。(比如上例中的30W,设置batch_size=100时,需要迭代3000次,远小于随机梯度下降的30W次)
(3)可实现并行化。

缺点:
(1)batch_size的不当选择可能会带来一些问题
 

4.3Polynomial Regression

一种简单的解决方法就是将每一维特征的幂次添加为新的特征,再对所有的特征进行线性回归分析。这种方法就是 多项式回归。将非线性的换元成多元线性回归问题,例如里面有x平方就可以把它看成x2

4.4Learning Curves

*过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)
*欠拟合:一个假设在训练数据上不能获得更好的拟合,并且在测试数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)


 

 红色欠拟合 蓝色很合适 绿色过拟合(在测试集好,验证集不好)

总结一下:

    欠拟合:泛化能力差,训练样本集准确率低,测试样本集准确率低。
    过拟合:泛化能力差,训练样本集准确率高,测试样本集准确率低。
    合适的拟合程度:泛化能力强,训练样本集准确率高,测试样本集准确率高

欠拟合原因:

    训练样本数量少
    模型复杂度过低
    参数还未收敛就停止循环

欠拟合的解决办法:

    增加样本数量
    增加模型参数,提高模型复杂度
    增加循环次数
    查看是否是学习率过高导致模型无法收敛

过拟合原因:

    数据噪声太大
    特征太多
    模型太复杂

过拟合的解决办法:

    清洗数据
    减少模型参数,降低模型复杂度
    增加惩罚因子(正则化),保留所有的特征,但是减少参数的大小(magnitude)。
 

 

 c

 4.5Regularized Linear Models

对多项式模型来说,正则化可以通过减少阶数来实现。

对线性模型来说,正则化往往通过约束模型的权重来实现。

正则化是用来防止模型过拟合而采取的手段。我们对代价函数增加一个限制条件,限制其较高次的参数大小不能过大。所以如果我们能让这些高次项的系数接近于0的话,我们就能很好的拟合了,因此,我们对代价函数 J(\theta) 进行修改

L2 正则化ridge

岭回归是线性回归的正则化版本,即在原来的线性回归的 cost function 中添加正则项(regularization term)L2正则化对于绝对值较大的权重予以很重的惩罚,对于绝对值很小的权重予以非常非常小的惩罚,当权重绝对值趋近于0时,基本不惩罚。这个性质与L2的平方项有关系,即越大的数,其平方越大,越小的数,比如小于1的数,其平方反而越小。

L1正则化lasso

随着海量数据处理的兴起,工程上对于模型稀疏化的要求也随之出现了。这时候,L2正则化已经不能满足需求,因为它只是使得模型的参数值趋近于0,而不是等于0,这样就无法丢掉模型里的任何一个特征,因此无法做到稀疏化。这时,L1的作用随之显现。L1正则化的作用是使得大部分模型参数的值等于0,这样一来,当模型训练好后,这些权值等于0的特征可以省去,从而达到稀疏化的目的,也节省了存储的空间,因为在计算时,值为0的特征都可以不用存储了。倾向于完全消除不重要的权重Lasso Regression 能够自动进行特征选择,并输出一个稀疏模型(只有少数特征的权重是非零的)。


 

Elastic Net

 ElasticNet 是一种使用L1和L2先验作为正则化矩阵的线性回归模型.这种组合用于只有很少的权重非零的稀疏模型,比如:class:Lasso, 但是又能保持:class:Ridge 的正则化属性.我们可以使用 l1_ratio 参数来调节L1和L2的凸组合(一类特殊的线性组合)。

  • r=0:弹性网络变为岭回归
  • r=1:弹性网络便诶Lasso回归


 

一般来说,我们应避免是用朴素线性回归,而应对模型进行一定的正则化处理,那如何选择正则化方法呢?

  • 常用:岭回归
  • 假设只有少部分特征是有用的:弹性网络 或者 Lasso
    • 一般来说,弹性网络的使用更为广泛。因为在 特征维度高于训练样本数 或者 即为特征是强相关 的情况下,Lasso回归的表现不太稳定

附录:Early stopping防止过拟合

当我们训练深度学习神经网络的时候通常希望能获得最好的泛化性能(generalization performance,即可以很好地拟合数据)。但是所有的标准深度学习神经网络结构如全连接多层感知机都很容易过拟合:当网络在训练集上表现越来越好,错误率越来越低的时候,实际上在某一刻,它在测试集的表现已经开始变差。其做法为:在验证错误率达到最小值的时候停止训练。

4.5Logistic Regression

逻辑回归是用来进行分类的。我们处理二分类问题。由于分成两类,我们便让其中一类标签为0,另一类为1。我们需要一个函数,对于输入的每一组数据x(i),都能映射成0~1之间的数。并且如果函数值大于0.5,就判定属于1,否则属于0。

代价函数cost function

就不好使用mse了会有一些问题

对于第一个 对了就是0,错了就是负无穷

第二个就是第一个的联合

第三个说是梯度下降,看着难但不是你要算

决策边界Decision Boundaries

就上面的逻辑回归,小于0.5的算0大于的算1,0.5就是决策边界

如果有很多个class怎么办

1.如之前讲的可以建立一对剩余或者一对一的多个二元分类器

2.softmax regression主要用于解决多元分类问题。主要是估算对于输入样本   属于每一类别的概率,所以softmax回归的假设函数如下: Softmax Regression (又名 Multinomial Logistic Regression) 就是 Logistic Regression 在 多类别 场合下的推广

lec5 DIMENSIONALITY REDUCTION

5.1 PCA

Data with high dimensions:

• High computational complexity

• May contain many irrelevant or redundant features

• Difficulty in visualization

• With high risk of getting an overfitting model

主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。

PCA降维的目的,就是为了在尽量保证“信息量不丢失”的情况下,对原始特征进行降维,也就是尽可能将原始特征往具有最大投影信息量的维度上进行投影。将原特征投影到这些维度上,使降维后信息量损失最小。

1.标准化连续初始变量的范围(非结构化转成结构化)pca前一定要We must standardize the data first

2. 计算协方差矩阵以识别相关性 covariance matrix

v是variance(方差)指离中心点的距离 用向量乘法求解

最大方差理论:方差越大,信息量就越大。协方差矩阵的每一个特征向量就是一个投影面,每一个特征向量所对应的特征值就是原始特征投影到这个投影面之后的方差。由于投影过去之后,我们要尽可能保证信息不丢失,所以要选择具有较大方差的投影面对原始特征进行投影,也就是选择具有较大特征值的特征向量。然后将原始特征投影在这些特征向量上,投影后的值就是新的特征值。每一个投影面生成一个新的特征,k个投影面就生成k个新特征。

进一步的推导

 

 

 

 Namita是特征值eigenvalues E是对角线为1其他是0的单位向量

Singular Value Decomposition (SVD)

在降维过程中,我们会减少特征的数量将那些带有重复信息的特征合并,并删除那些带无效信息的特征等等——逐渐创造出能够代表原特征矩阵大部分信息的,特征更少的,新特征矩阵

PCA和SVD是两种不同的降维算法,但他们都遵从上面的过程来实现降维,只是两种算法中矩阵分解的方法不同,信息量的衡量指标不同罢了。PCA使用方差作为信息量的衡量指标,并且特征值分解来找出空间V。降维时,它会通过一系列数学的神秘操作(比如说,产生协方差矩阵)将特征矩阵X分解为以下三个矩阵,Namita?其对角线上的元素就是方差。

SVD使用奇异值分解来找出空间V,其中Σ也是一个对角矩阵,不过它对角线上的元素是奇异值,这也是SVD中用来衡量特征上的信息量的指标。U和 V^T 分别是左奇异矩阵和右奇异矩阵,也都是辅助矩阵。

 

 

 

 最好大于95

 

5.2Independent Component Analysis(ICA)

 如果所有的特征都是独立的没有主次之分所以pca就不太够用

 PCA主要用于数据的降维,将原本相关的数据映射到一个新的空间中,在这个空间中,数据的各个维度是不相关的;ICA是一种找到数据可能存在的各组成分量的方法,主要应用于信号解混,特征提取,使用ICA时往往对数据存在几点假设:源信号独立,且服从非高斯分布,甚至要假设源信号的概率分布和个数。ICA使得WTx的非高斯性最大,找到独立分量。PCV往往是ICA预处理的一部分。


NMF(非负矩阵分解)

NMF在人脸识别的应用中和PCA还有VQ分解不同。VQ分解是用一张完整的图像直接代表源脸部图像;PCA是将几个完整人脸加减压成一张脸;而NMF是取甲的眼睛,乙的鼻子,丙的嘴巴直接拼成一张脸,也就是说NMF分解后的基矩阵H是每张人脸的一个特征部分,例如眼睛,鼻子,嘴巴等,然后权重矩阵对这些特征进行加权处理从而得到一张完整的人脸。如下图所示3种矩阵分解方式的区别。

NMF(Non-negative matrix factorization),即对于任意给定的一个非负矩阵V,其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件V=W*H,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。**其中,V矩阵中每一列代表一个观测(observation),每一行代表一个特征(feature);W矩阵称为基矩阵,H矩阵称为系数矩阵或权重矩阵。这时用系数矩阵H代替原始矩阵,就可以实现对原始矩阵进行降维,得到数据特征的降维矩阵,从而减少存储空间。**过程如下图所示:

 NMF is not unique

 5.3Manifold Learning

PCA是目前应用最广泛的线性降维方法,采用线性投影的方法进行数据降维,使数据在给定方向上的投影得到最大的投影方差,当流形是一个线性流形时,PCA得到的结果是最优的,PCA无法有效处理非线性流形上的数据。

主要的代表方法LLE(Locally Linear Embedding) 局部线性嵌入

 其他方法

1) Isomap (等距映射)

Isomap = MDS(Multidimensional Scaling)多维尺度变换 + 测地线距离

MDS: MDS是理论上保持欧式距离的一种经典方法,MDS最早用来做数据的可视化,MDS得到的低维表示中心在原地,所以又可以说是保持内积大小,MDS降维后的任意两点的距离(内积)与高维空间的距离相等或近似相等。

因此MDS在流形数据处理上,保持欧式距离不变的理论不可行(失效),Isomap就是改进的MDS方法,在流形非线性降维领域的应用方法。

Isomap的理论框架为MDS,放在流形的理论框架中,原始的高维空间欧氏距离换成了流形上的测地线距离。Isomap是把任意两点的测地距离(准确地说是最短距离)作为流形的几何描述,用MDS理论框架保持点与点之间的最短距离。

测地线的计算:在流形结构未知,数据采样有限的情况下, 通过构造数据点间的邻接图(Graph),用图上的最短距离来近似测地线距离,当数据点趋于无穷多时,这个估计近似距离趋向于真实的测地线距离。

此算法是计算机系中常用的图论经典算法。

somap 与LLE的比较:

    Isomap与LLE从不同的角度出发来实现同一个目标,它们都能从某种程度上发现并在映射的过程中保持流形的几何特征。
    Isomap希望保持任意两点间的测地线距离;LLE希望保持局部线性关系。
    从保持几何角度来看,Isomap保留了更多信息,然而Isomap方法的一个问题是要考虑任意两点之间的关系,这个数量随着数据点的增多而呈现爆炸性增长,从而增加计算负荷,在大数据时代,使用全局方法分析巨型数据结构正在变得越来越困难。
    因此,以LLE为开端的局部分析方法的变种和相关理论正在受到越来越多的关注。


2) t-Distributed Stochastic Neighbor Embedding (t-SNE)

Trying to keep similar instances close and dissimilar instances apart.

lec6 Support Vector Machine (SVE)

通俗来讲,所谓支持向量机是一种分类器,对于做出标记的两组向量,给出一个最优分割超曲面把这两组向量分割到两边,使得两组向量中离此超平面最近的向量(即所谓支持向量,在街道的两边)到此超平面的距离都尽可能远

 feature scales

标准化归一化还是很重要

 6.1 Hard Margin Classification 硬间隔支持向量机(线性可分SVM)

假设条件:
硬间隔SVM要求数据集是严格线性可分的。
线性可分数据集的定义是:对于以上给定的数据集T,存在一个超平面能够将数据集中的正类点和负类点完全正确地划分到超平面的两侧

All instances being off the street and on the right side is named “hard margin classification”

The main limitation of hard margin classification is

*The data must be linearly separable

*There are little outliers

 6.2 Soft Margin Classification

数据是近似线性可分的,采用soft margin 就是说数据在一定的错误容忍度上,可以用一条直线将以区分;如下图,如果按照第一种情况,会产生两个黄色的边界,因为受到一个红色异常点的影响,这两个边界的间隔很小,如果目前有一个黑色的待分类的点,按照黄色线的分类器,就会划分为红色,但实际上它可能是绿色,因为和绿色的聚集中心是比较近的。所以为了减少异常点的影响,我们允许分类器有一点错分的情况,这就是soft margin


 

 Soft Margin Classification provides more flexibility

The algorithm balances  *The width of street

                                        *The amount of margin violations

 

做特征提取那些线性可分的

 

 6.3Polynomial Feature (Nonlinear SVM Classfication)

 加了一个x2使得它线性可分

1. 基于特征预处理的 nonlinear SVM: polynomial features

  • 优点:能够在大多数ML方法中得到应用
  • 缺点:当 polynomial degree 较小时,无法处理复杂的数据集;当 polynomial degree 较大时,特征维度过大,使得模型计算极度过低。

6.4 Polynomial Kernel 多项式核函数 

度数太大可能导致过拟合,使得在测试集上不好的表现

 可能获得与加了 polynomial features 一样的结果,但并不会产生特征维度爆炸。即,具有 polynomial features 的优点,同时能够解决其缺点。

 6.5 RBF(Radial Basis Function Kernel)高斯核

多项式核函数而言,它的核心思想是将样本数据进行升维,从而使得原本线性不可分的数据线性可分。那么高斯核函数的核心思想是将每一个样本点映射到一个无穷维的特征空间,从而使得原本线性不可分的数据线性可分。

所以我们得出结论,‍‍当y取‍‍值比较大时,数据训练结果趋于过拟合,当γ取值比较小时,数据训练结果趋于欠拟合。

6.6 SVM Regression

SVM解决回归问题的思路和解决分类问题的思路正好是相反的。我们回忆一下,在Hard Margin SVM中,我们希望在Margin区域中一个样本点都没有,即便在Soft Margin SVM中也是希望Margin区域中的样本点越少越好。

而在SVM解决回归问题时,是希望Margin区域中的点越多越好。也就是找到一条拟合直线,使得这条直线的Margin区域中的样本点越多,说明拟合的越好,反之依然。

 lec7 Naïve Bayes

朴素贝叶斯(Naïve Bayes)属于监督学习的生成模型,实现简单,没有迭代,学习效率高,在大样本量下会有较好的表现。但因为假设太强——假设特征条件独立,在输入向量的特征条件有关联的场景下并不适用。

7.1 Bayes’ Rule 贝叶斯法则

  1. P(c|x):后验概率-posterior probability,贝叶斯公式希望求得的东西。我的个人理解是个体概率。
  2. P( c): 先验概率- prior probability(如果prior未知,则假定其等概率→c1=c2=c3…)我的个人理解是群体概率。
  3. P(x|c): 拟然度- likelihood
  4. P(x): 观测事实,证据- evidence factor or observation观测事实通常被认为是一个常数,或者有时候不参与计算 


7.2 Naïve Bayes Classifier

朴素贝叶斯法,顾名思义,选择了贝叶斯方法构造分类器。输入依然是特征向量x,输出是类标记c。我们希望通过训练数据学习联合概率分布P(c∩x),这说明朴素贝叶斯属于生成模型

具体又是学习c的先验概率和条件概率(拟然)P(x|c)。既然已经有训练数据,特征和对应的标签类别是已知的,所以根据统计可以很容易地知道c的先验概率。
而条件概率就比较棘手了,因为特征空间通常是高维的,所以在已知某个类别下的条件概率有好多个,所以我们做了一个特别重要的假设,叫做条件独立性假设:在类确定的条件下,用于分类的特征是条件独立的。

而朴素贝叶斯方法选择了最大后验概率作为策略,选择0-1函数作为损失函数。按照书中的推导,为了使期望风险最小化,应该使**已知输入特征(训练集)**的后验概率最大化。所以朴素贝叶斯的策略应该是结构风险最小化的策略,先验概率表示了模型的复杂度。
 

 

 

 

 

 

 

 

 d a是的,有标签 b是的,条件独立性假设 c是的还是独立性 d不是,不只是二元

lec8 Non-parametric Classification

8.1

 Non-parametric models can be used with arbitrary distributions and without the assumption that the forms of the underlying densities are known.

Moreover, they can be used with multimodal distributions which are much more common in practice than unimodal distributions.

Here we introduce two major methods: decision tree and k-nearest neighbour

8.2 decision tree

每个方框代表一个节点. 每个非叶子节点  节点(node)有2个分支, 一个是判定True, 一个判定False. 分别走两个不同的分支. 叶子节点表示决策结果. 任何一个输入从root出发, 总是会达到且唯一到达一个叶子节点. 这就是决策树的工作原理.

决策树有两种节点: 中间节点叶子节点

1. 每个中间节点有4个参数:
a) 判定函数。 是一个特征的取值。 当特征小于等于这个值得时候决策路径走左边, 当特征大于这个值得时候决策树走右边。
b) 不纯度值(impurity value). 是当前节点的不纯度值. 关于不纯度值得意义后面会讲到. 他反应了当前节点的预测能力.
c) 覆盖样本个数(n_samples). 是指参与此节点决策的样本个数. 父亲节点§和两个孩子节点(l,r)的样本个数的关系为: n_samples§ = n_samples(l) + n_samples® 覆盖样本个数越多, 说明判定函数越稳定. 实际上很容易看出来, 所有的叶子节点所对应的样本是总样本的一个划分.
d) 节点取值(node value). 节点取值是一个数组. 数组的长度为类目个数. value = [997, 1154] 表示在2151个样本数中, 有997个属于class1, 1154属于class2. (这是分类树的意义, 会归数的取值规则后面会讲.)
2. 每个叶子节点有3个参数. 除了没有决策函数之外, 其他参数意义一样.

决策树学习的关键在于如何选择最优的划分属性,所谓的最优划分属性,对于二元分类而言,就是尽量使划分的样本属于同一类别,即“纯度”最高的属性。

*从构建决策树来理解决策树(例子中使用的measure the impurity of node的方法是课上的信息熵(info entropy)基尼指数(Gini Index)中的entropy,通过熵算出信息增益选择纯度最高的特征)

Gini 基尼指数

GINI反应了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此, 越小,则数据集D的纯度越高。所以在候选属性集合中国,选择那个使得划分后基尼指数最小的属性作为最优划分属性。

Entropy 信息熵

 

 

 

 b   根据公式是四个-0.25log0.25 相加所以等于2

8.3 CART,又名分类回归树

CART算法的几个特点:

(1)由任务目标决定CART是分类树还是回归树。当CART是分类树时,采用基尼系数(gini)作为特征划分的度量;当CART是回归树时,采用均方误差(mse)作为特征划分的度量。

(2)CART算法不仅可以处理二分属性,可以用来处理标称属性和连续属性(回归),简单来说,就是如果特征值大于或等于给定值就将该记录划分到左子树,否则就划分到右子树。

(3)决策树生成只考虑了对训练数据进行更好的拟合,而决策树剪枝考虑了减小模型复杂度。决策树生成学习局部的模型,决策树剪枝学习 整体的模型。一般选择损失函数最小作为剪枝的标准。
 

一)终止条件有:
1、特征已经用完了:没有可供使用的特征再进行分裂了,则树停止分裂;
2、子结点中的样本已经都是同一类:此时,样本已经全部被划分出来了,不用再进行区分,该结点停止分裂(不过一般很难达到,达到的话,该树肯定过拟合);
3、子节点中没有样本了:此时该结点已经没有样本可供划分,该结点停止分裂;


二)很多复杂的决策树算法(例如lightgbm)中还有额外的终止条件,为了防止过拟合:
1、树达到了最大深度:depth >= max_depth,树停止分裂。
2、结点的样本数量达到了阈值:如果一个集合(结点)的样本数量 < min_samples_leaf,则树停止分裂;
其中,max_depth和min_samples_leaf都是人为制定的超参数


 

 a 明显的unerfitting,太浅了就会拟合不完全

 

 

Model Parameters: These are the parameters that the model determines on its own while training on the dataset provided. These are the fitted parameters.

模型参数: 这些是模型在提供的数据集上进行训练时自行确定的参数。 这些是拟合的参数。

Model Hyper-parameters: These are adjustable parameters that must be tuned, prior to model training, in order to obtain a model with optimal performance.

模型超参数: 这些是可调参数,必须在模型训练之前对其进行调整,以获取具有最佳性能的模型。

Decision Tree for Regression

分类任务:预测目标是离散值,例如预测该用户是否会逾期,逾期是一类,用1表示,不逾期是另一类,用0表示。分类树采用GINI值作为结点分裂的依据;
回归任务:预测目标是连续值,例如预测用户的身高。回归树采用MSE(均方误差)作为结点分裂的依据。

8.4 k-Nearest Neighbour

 

 

 

lec9 Ensemble Learning and Random Forests

9.1 Voting Classifiers

      VotingClassifier背后的想法是组合概念上不同的机器学习分类器,并使用多数投票或平均预测概率(软投票)来预测类别标签。这样的分类器可以用于一组性能同样良好的模型,以平衡它们各自的弱点。

  • 分类   

       a) hard voting: 多数投票法,也叫硬投票,根据少数服从多数的原则 (Majority Class Labels)

       b) soft voting: 加权投票法,增加了权重weight参数, 使用加权平均概率(Weighted Average Probabilities),通常会比 hard voting 效果好一些

  • many weak leaners -> strong learne
  • 性能有限的原因                                                                                                                                     各个classifier之间不够 independent, 预测的 错误结果 之间通常有一定的关联性 => classifiers 是在相同的数据集上 训练得到的
  • 解决方法                                                                                                                                                 train them using very different algorithms. => 产生的错误类型不同

9.2 Bagging and Pasting

        虽然有很多的机器学习算法,但是从投票的角度看,仍然不够多,如果有成千上万的投票者,才能保证最终结果可信(大数定律)。

        所以需要创建更多的子模型,并且子模型之间要有差异性,不能保持一致。

        每个子模型不需要太高的准确率

        对于数据集,每次放回取样叫做Bagging不放回取样叫做Pasting,Bagging使用的多(统计学中放回取样叫做bootstrap,这也是sklearn中控制放回不放回的参数)


上面加了个evaluation注意!!!!!! oob评估

 

 减少过拟合通过减少离散值的影响

9.3 Random Patches and Random Subspaces (features selection)

random patches method

    sampling both training instances and features   (randomly select features and randomly select sample)针对特征进行随机取样,不针对样本进行随机取样

random subspaces method

    keeping all training instances but sampling features (randomly select features for training)既针对样本,又针对特征进行随机取样

9.4 Random Forest

由很多棵决策树构成,最后通过voting等手段进行ensemble。由于决策树的构建具有很大的随机性,所以random forest 能够有效降低决策树算法的 variance,从而取得更好的效果。

随机森林本质上是许多以不同方式过拟合的决策树的集合,我们可以对这些互不相同的树的结果取平均值来降低过拟合,这样既能减少过拟合又能保持树的预测能力。

9.5 Feature Importance

一般来说,就单个决策树,越重要的特征距离根节点越近,因此,特征的重要度可能通过随机森林中各决策树中各特征的平均深度来衡量。在理解 feature importance 的基础上,可以进一步展开fature selection 操作。

那些可以用来做预测的特征是重要的

 9.6 AdaBoost

  • 每一轮的训练数据样本赋予一个权重,并且每一轮样本的权值分布依赖上一轮的分类结果。
  • 基分类器之间采用序列式的线性加权方式进行组合。

    boost: Originally called hypothesis boosting.
    General idea: train predictors sequentially, each trying to correct its predecessor.


代表性 booting 算法

    AdaBoost (Adaptive Boosting)
    Gradient Boosting

Adaboost

之前分类错的样本会被赋予更高的权重

 停止条件

  • pedictors 的数目达到上限
  • A perfect predictor is found.

9.6 Gradient Boosting for regression

对比应该的值和预测的值

 

 学习率过小容易导致计算时间花费很多以及拟合路程长?

Prevent Overfitting

要构造一个随机森林模型,第一步是确定森林中树的数目,通过模型的 进行调节。n_estimators越大越好,但占用的内存与训练和预测的时间也会相应增长,过拟合的风险也在增加且边际效益是递减的,所以要在可承受的内存/时间内选取尽可能大的n_estimators

n_estimators : 指定随机森林中的分类器的个数,默认为10。一般来说n_estimators 太小容易欠拟合,太大计算量大,故需要参数调优选择一个适中的数值;找一个最好的

 9.7 Stacking (Stacked Generalization, 层叠/堆栈泛化)

 lec10 Unsupervised Learning

10.1Clustering

  1. 将数据集在某些方面相似的数据成员进行分类组织的过程
  2. 与回归与分类不同,聚类是无监督学习算法,无监督指的是只需要数据,不需要标记结果自己给自己分类。它与分类问题最明显的区别就是分类问题有事先的标注,而聚类的分组是完全靠自己学习得来的。
  3. 在现实生活中,很少直接用聚类算法,因为聚类效果的好坏不容易衡量(因为没有标记,就没有标准答案),有时候会用做监督学习中稀疏特征的预处理,把混乱的数据先分分看,看看大类如何。

聚类算法,顾名思义是将数据聚集起来的算法,是一个无监督学习方法。他是为了实现将数据按照某一标准(相似度)将整个数据集分为若干子集(簇),最终的分类结果要尽量保证组内相似度尽可能大,组间相似度尽可能小。而所谓的标准,实则为各种的距离。在本博客中,主要讲述三个聚类方法,分别是K-means聚类,层次聚类(AgglomerativeClustering),密度聚类(DBSCAN)。

聚类前需要进行数据标准化!

10.2 K-means聚类

K-means算法是很典型的基于距离的聚类算法。它是通过将样本划分为k个方差齐次的类来实现数据聚类。该算法需要指定划分的类的个数,即在最小化误差函数的基础上将数据划分为预定的类数K,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

具体步骤

  1. 随机选取k个数据点作为初始聚类中心centroids(某聚类中所有数据点的均值)
  2.  计算每个数据点与各个种子聚类中心之间的距离,把每个数据点分配给距离它最近的聚类中心,形成一个聚类
  3. 待所有数据点均被分配后,每个聚类根据当前聚类中的数据点,重新计算出新的聚类中心
  4. 以上步骤不断重复,直到没有(或最小数目)数据点被重新分配给不同的聚类/没有(或最小数目)聚类中心再发生变化/误差平方和(SSE)局部最小

特点

  •     对于k值选取要求比较高,并且需要进行试探性去取值
  •     当结果簇是密集的,而簇与簇之间区别明显时,处理类间方差差异大的样本时,有着很好的效果。
  •     处理类规模较大的效果很好

缺点

  •     在簇的平均值被定义的情况下才能使用,这对于处理符号属性的数据不适用。
  •     必须事先给出k(要生成的簇的数目),而且对初值敏感,对于不同的初始值,可能会导致不同结果。
  •     它对于“躁声”和孤立点数据是敏感的,少量的该类数据能够对平均值产生极大的影响
  •     采用迭代方法,可能只能得到局部的最优解,而无法得到全局的最优解。

总结
        K-means算法不适合处理比较离散的数据.同时对于k值得选取至关重要,换句话说,我们对k值得选取比较被动.在k值得选取方面可能需要多做尝试,最后指定相应的关于k值得散点图

要多次尝试去找到最好的那个

10.2 Mini-batch K-Means

 10.3 Semi-Supervised Learning

收集了大量未标记的数据,您想在这些数据上训练模型。手动标记所有这些信息可能会花费你一大笔钱,除了需要几个月的时间来完成注释。这时候半监督机器学习方法就派上用场了。工作原理很简单。无需将标签添加到整个数据集,而是仅对一小部分数据进行手工标记并使用它来训练模型,然后将其应用于未标记数据的海洋。

 10.4 Agglomerative Clustering

层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。

算法维护一个簇集合,
第一次循环,簇集合内每个簇中只有一个个体
第二次循环,对所有簇集合,将两个最邻近的簇合并
第三次循环,对所有簇集合,将两个最邻近的簇合并

一直循环到只剩下一个簇

由于层次聚类将小簇从下到上合并成大簇,所以层次聚类自底向上bottom-up

特点:

  • 层次聚类算法对于k值选取要求也比较高,并且也需要进行试探性去取值
  • 对较为离散的数据,分类效果比Kmeans好

缺点:

  • 计算复杂度高,不适合数据量大的数据集;

 例题

 lec11Gaussian Mixture Model and Bayesian Statistics

11.1 Gaussian Mixture Model

混合模型

是一个可以用来表示在总体分布(distribution)中含有 K 个子分布的概率模型,换句话说,混合模型表示了观测数据在总体中的概率分布,它是一个由 K 个子分布组成的混合分布。混合模型不要求观测数据提供关于子分布的信息,来计算观测数据在总体分布中的概率。

这样的分布模型也可以做聚类,其中最经典的是高斯混合模型

高斯混合模型 

高斯混合模型中的高斯就是指的是高斯分布,顾名思义,就是多个高斯分布组成的混合模型。由中心极限定理可得,把数据看作成高斯分布是比较合理的做法。高斯混合模型的产生是因为数据在非常复杂的情况下,我们无法通过单个高斯模型进行拟合,只能够通过通过多个高斯进行不同权重的拟合才行。这样就产生了高斯混合模型

与k均值类似,但更包容,为了解决数据缺失或存在未发现特征的情况。

不再用”距离中心最短“硬性分割类别,而是用“有多大高斯分布概率属于这个类“的思想去分类

每个高斯分量对应一个组,假设数据点符合高斯分布,通过最大期望算法EM 找到每个组的高斯参数(即均值和标准差),进而求得每个组的高斯分布,从而得到组

11.2最大期望算法EM

如果我们已经清楚了某个变量服从的高斯分布,而且通过采样得到了这个变量的样本数据,想求高斯分布的参数,这时候极大似然估计可以胜任这个任务;而如果我们要求解的是一个混合模型,只知道混合模型中各个类的分布模型(譬如都是高斯分布)和对应的采样数据,而不知道这些采样数据分别来源于哪一类(隐变量),那这时候就可以借鉴EM算法。

EM算法包含两个步骤,E步和M步。E步也就是我们求期望的步骤,M步将E步所求的期望最大化,重复E步和M步直到收敛,也就是我们估计的模型参数不再发生变化或者变化幅度很小。这就是EM算法的基本概括,

分为期望和最大化期望步骤:
期望Expectation step: find the posterior probability according to current model
期望最大化Maximisation step: calculate the new modal parameters

算法维护k个类的k个高斯函数:
第一次循环,随机初始化这些高斯函数。
每次循环一开始时,重新计算每个样本根据高斯函数划分到那个类的的概率(拟分类)。
然后,求出每组中的样本的概率,重塑高斯函数使这个组的样本概率最大化(更新高斯函数)。
再次循环,直到每组内样本概率收敛。

11.3 Model Likelihood

 

Exercise(应该不考吧) 

T1

 

T2 

11.4 Model Selection
  

APPENDIX

常见的监督学习:线性回归、决策树、朴素贝叶斯分类、最小二乘法、逻辑回归、支持向量机、集成方法
常见的无监督学习:聚类算法、主成分分析、奇异值分解、独立成分分析。
常用的分类器包括SVM、KNN、贝叶斯、线性回归、逻辑回归、决策树、随机森林、xgboost、GBDT、boosting、神经网络NN。
常见的降维方法包括TF-IDF、主题模型LDA、主成分分析PCA等等
常用的回归技术:线性回归、多项式回归、逐步回归、岭回归、套索回归、ElasticNet回归(是套索回归和岭回归技术的混合体)


 

 c

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值