线性回归与逻辑回归的区别?
线性回归的样本的输出,都是连续值,$ yin (-infty , infty ),而逻辑回归中,而逻辑回归中,而逻辑回归中yin (0,1)$,只能取0和1。
对于拟合函数也有本质上的差别:
线性回归:f(x)=θTx=θ1x1 θ2x2 ... θnxnf(x)=theta ^{T}x=theta _{1}x _{1} theta _{2}x _{2} ... theta _{n}x _{n}f(x)=θTx=θ1x1 θ2x2 ... θnxn
逻辑回归:f(x)=P(y=1∣x;θ)=g(θTx)f(x)=P(y=1|x;theta )=g(theta ^{T}x)f(x)=P(y=1∣x;θ)=g(θTx),其中,g(z)=11 e−zg(z)=frac{1}{1 e^{-z}}g(z)=1 e−z1
可以看出,线性回归的拟合函数,是对f(x)的输出变量y的拟合,而逻辑回归的拟合函数是对为1类的样本的概率的拟合。
那么,为什么要以1类样本的概率进行拟合呢,为什么可以这样拟合呢?
θTx=0theta ^{T}x=0θTx=0就相当于是1类和0类的决策边界:
当θTx>0theta ^{T}x>0θTx>0,则y>0.5;若$theta ^{T}xrightarrow infty ,则,则,则y rightarrow 1 $,即y为1类;
当θTx<0theta ^{T}x<0θTx<0,则y<0.5;若$theta ^{T}xrightarrow -infty ,则,则,则y rightarrow 0 $,即y为0类;
这个时候就能看出区别来了,在线性回归中θTxtheta ^{T}xθTx为预测值的拟合函数;而在逻辑回归中θTxtheta ^{T}xθTx为决策边界。
线性回归 | 逻辑回归 | |
---|---|---|
目的 | 预测 | 分类 |
y(i)y^{(i)}y(i) | 未知 | (0,1) |
函数 | 拟合函数 | 预测函数 |
参数计算方式 | 最小二乘法 | 极大似然估计 |
下面具体解释一下:
- 拟合函数和预测函数什么关系呢?其实就是将拟合函数做了一个逻辑函数的转换,转换后使得y(i)∈(0,1)y^{(i)} in (0,1)y(i)∈(0,1);
- 最小二乘和最大似然估计可以相互替代吗?回答当然是不行了。我们来看看两者依仗的原理:最大似然估计是计算使得数据出现的可能性最大的参数,依仗的自然是Probability。而最小二乘是计算误差损失。
one hot 编码及数据归一化。
one hot 编码及数据归一化
在Pandas中pandas.get_dummies函数可以实现一键实现One-Hot编码:
pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False)
dummy_na:默认为False,代表是否忽略空值
代码语言:javascript复制import pandas as pd
s = pd.Series(list('abca'))
pd.get_dummies(s)
Output:
代码语言:javascript复制 a b c
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?
对于Bias:
- Bias衡量模型拟合训练数据的能力(训练数据不一定是整个 training dataset,而是只用于训练它的那一部分数据,例如:mini-batch)。
- Bias 越小,拟合能力越高(可能产生overfitting);反之,拟合能力越低(可能产生underfitting)。
对于Variance:
- Variance衡量模型的泛化的能力。
- Variance越小,模型的泛化的能力越高;反之,模型的泛化的能力越低。
训练误差大,测试误差小 → Bias大 训练误差小,测试误差大→ Variance大 → 降VC维 训练误差大,测试误差大→ 升VC维
机器学习和统计里面的AUC怎么理解?
AUC是指随机给定一个正样本和一个负样本,分类器输出的正样本的概率比分类器输出负样本的概率大的可能性。AUC越大,表明方法效果越好。
@李大猫:
知乎回答
推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure) ?
推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)
点击率预估算法:FM与FFM?
点击率预估算法:FM与FFM
如何理解Dropout?
深度学习网络大杀器之Dropout——深入解析Dropout
平时在一些数据处理中,经常会把原始数据取对数后进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有: 1.缩小数据的数值,方便计算。例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。
2.取对数后,可以将乘法计算转换称加法计算。
3.某些情况下,在数据的整个值域中的在不同区间的差异带来的影响不同。例如,中文分词的mmseg算法,计算语素自由度时候就取了对数,这是因为,如果某两个字的频率分别都是500,频率和为1000,另外两个字的频率分别为200和800,如果单纯比较频率和都是相等的,但是取对数后,log500=2.69897, log200=2.30103, log800=2.90308 这时候前者为2log500=5.39794, 后者为log200 log800=5.20411,这时前者的和更大,取前者。因为前面两个词频率都是500,可见都比较常见。后面有个词频是200,说明不太常见,所以选择前者。
从log函数的图像可以看到,自变量x的值越小,函数值y的变化越快,还是前面的例子,同样是相差了300,但log500-log200>log800-log500,因为前面一对的比后面一对更小。
也就是说,对数值小的部分差异的敏感程度比数值大的部分的差异敏感程度更高。这也是符合生活常识的,例如对于价格,买个家电,如果价格相差几百元能够很大程度影响你决策,但是你买汽车时相差几百元你会忽略不计了。
4.取对数之后不会改变数据的性质和相关关系,但压缩了变量的尺度,例如800/200=4, 但log800/log200=1.2616,数据更加平稳,也消弱了模型的共线性、异方差性等。
5.所得到的数据易消除异方差问题。
6.在经济学中,常取自然对数再做回归,这时回归方程为 lnY=a lnX b ,两边同时对X求导,1/Y*(DY/DX)=a1/X, b=(DY/DX)(X/Y)=(DYX)/(DXY)=(DY/Y)/(DX/X) 这正好是弹性的定义。
当然,如果数据集中有负数当然就不能取对数了。实践中,取对数的一般是水平量,而不是比例数据,例如变化率等。