凸函数、凸集
集合范围内 任意两点的连线 不会超出集合范围
以下哪个集合不是凸(convex)的?
选C
{ (x, y) | (x -2)^2 + (y-2)^2 <= 2}
空集合
{x | ||x|| >= 1}, ||x||表示x的绝对值
{(x, y) | x + y = 2}
假设每天投稿池中,每1000个视频中会有1个营销号视频,为了净化社区环境,
b站同事训练了一个检测营销号视频的模型。模型评估结果如下:
如果某视频是营销号视频,就一定会被模型检测出来,
但是如果某视频是正常视频,也会有1%的概率被误判成营销号视频。
提问:现在有一个新投稿的视频,被模型判定成了营销号视频,
那么它原本真正是营销号视频的概率是多少()
X:是否为营销号
Y:预测为营销号
P(x=1) = 0.001
P(x=0) = 0.999
P(Y=1 | X=1 ) = 1
P(Y=1 | X=0 ) = 0.01
P(X=1 | Y=1) = P(Y=1|X=1)*P(x=1) / p(y=1)
= 0.001/0.109
= 0.09099
P(Y=1) = P(Y=1 | X=1 )*P(x=1) + P(Y=1 | X=0 ) *P(x=0)
= 0.001 + 0.01*0.999
= 0.001 + 0.0999
= 0.109
神经网络中的dropout的效果跟以下哪种机器学习方法的效果类似:
Boostraping
Bootstrap Method:在统计学中,Bootstrap从原始数据中抽取子集,
然后分别求取各个子集的统计特征,最终将统计特征合并。
例如求取某国人民的平均身高,不可能测量每一个人的身高,
但却可以在10个省市,分别招募1000个志愿者来测量并求均值,最终再求取各省市的平均值
Bagging
Bagging(Bootstrap Aggregating):应用了 Bootstrap的思想,
从Training Set抽取k次subset,分别用来训练k个单独的模型,
然后用这k个模型来做预测。最终,如果是Regression问题,
则Average k个模型的输出;如果是Classification问题,则进行Majority Vote。
经过 bagging 得到的结果方差(variance)更小。
Boosting
具体过程:
通过加法模型将基础模型进行线性的组合。
每一轮训练都提升那些错误率小的基础模型权重,
同时减小错误率高的模型权重。
在每一轮改变训练数据的权值或概率分布,
通过提高那些在前一轮被弱分类器分错样例的权值,
减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。
样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
Stacking
一般来说,就是训练一个多层(一般是两层,本文中默认两层)的学习器结构,
第一层(也叫学习层)用n个不同的分类器
(或者参数不同的模型)将得到预测结果合并为新的特征集,
并作为下一层分类器的输入
向量 A=[1, 3, 6, 4, -9, 0]的L1范数为
L1范数(L1 norm)是指向量中各个元素绝对值之和
1+3+6+4+9 = 23
正则化是为了防止过拟合, 进而增强泛化能力
L0范数是指向量中非0的元素的个数
L1范数是指向量中各个元素绝对值之和 遵从拉普拉斯分布
L2范数是指向量各元素的平方和然后求平方根 遵从高斯分布
不属于判别模型的算法是:
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)
作为预测的模型。即生成模型
之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系
判别方法由数据直接学习决策函数f(X)
或者条件概率分布P(Y|X)
作为预测的模型,即判别模型。
典型的判别模型包括:KNN、感知机、决策树、线性回归、
逻辑斯蒂回归模型、支持 向量机、神经网络、boosting提升方法。
现有6个相同的抽屉,一个小球等可能得存在于其中任何一个抽屉,
也可能隐藏于抽屉之外(其概率为1/8)。
一个人检查完前5个抽屉,都没有发现该小球,
那么此时小球在第6个抽屉的概率是多少?
假设A=小球在第6个抽屉的概率,B=小球不在前5个抽屉的概率。
P(A)=P(AB)=(1-1/8)/6=7/48, P(B)=(1-1/8)/6+1/8=13/48,
所以P(A|B)=P(AB)/P(B)=7/13。
有一观测数据集X:{x1, x2, ..., xn}, 假设其真实分布为N(μ,σ^2) 简记其为f(x); 现有一近似模型h(x), 以下说法正确的是:
贪心算法往往是这种自顶向下的设计,先做出一个选择,然后再求解下一个问题,而不是自底向上解出许多子问题,然后再做出选择
以下数据结构体在64位机器上占用的内存(sizeof(data))是多少:
typedef struct _data
{
int id;
char name[6];
long long time;
char add[4];
}data
64位机器会按8字节对齐
按8个字节为单位分配存储空间,如果不足,会自动补充,
本次分配不足以存放下面的变量时,会重新分配空间
int id 4字节
char name[6] 6字节
long long time 8字节
char add[4] 4字节
4+6+6+8+4+4 = 32
激活函数是为了引入非线性,故不可以是线性函数
四种主要的遍历思想为:
前序遍历:根结点 ---> 左子树 ---> 右子树
中序遍历:左子树---> 根结点 ---> 右子树
后序遍历:左子树 ---> 右子树 ---> 根结点
层次遍历:只需按层次遍历即可
已知一个二叉树树的前序遍历结果(ABCDEFGH)
和中序遍历结果(CDBAGFEH),那么其后序遍历结果为
第1个假设, 离群点要着重考虑, 第一点是对的
第2个假设, 正态分布不是必须的. 当然, 如果是正态分布, 训练效果会更好
第3个假设, 有少量的多重线性相关性也是可以的, 但是我们要尽量避免