线性回归, 逻辑回归和线性分类器
线性回归, Linear Regression
逻辑回归, Logistic Regression
线性分类器, Linear Classifier
逻辑分类器, Logistic Classifier. 注意, 这个名词是我在文章中为了方便说明问题造出来的.
线性回归可以看作一个Perceptron, 激活函数是identical, 即\(f(x) = x\).
将逻辑回归也可以看作一个Perceptron, 不同的是使用了sigmoid激活函数.
一般的说法是, 线性回归是真正的回归, 而逻辑回归是一个分类器, 不是真回归. 这算是一个约定俗成的一个失误性命名吗? NO. 逻辑回归的主体还是回归操作: 回归对象是sigmoid函数, 它将输入映射为一个处于0到1之间的小数. 得到这个0到1之间的小数之后人为将其解读成概率, 然后根据事先设定的阈值进行分类. 回归操作的工作量在整个Logistic Regression中保守估计也得超过\(99\%\). 以这个算法的主体---逻辑回归来命名算法是无可厚非的. 当然, 若一定要叫Logistic Classifier也是可以的, 只不过大家都不这么叫而已.
已经有了Logistical Regression, Logistic Classifier, Linear Regression, 很自然的就能想到 Linear Classifier. Logistic Classifier是在Logistic Regression之后加了一步. 虽然Linear Classifier 与Linear Regression 之间没有这种关系, 但它们在形式上还是很相似的:
Logistic Regression(这里特指回归操作):
\[
f(x) = sigmoid(w^Tx + b)
\]
Logistic Classifier:
\[
y =
\begin{cases}
1 & f(x) \ge 0.5 \\
-1& f(x) < 0.5
\end{cases}
\]
Linear Regression:
\[
f(x) = w^Tx + b
\]
Linear Classifier:
\[
y =
\begin{cases}
1 & f(x) \ge 0 \\
-1& f(x) < 0
\end{cases}
\]
是不是很具有迷惑性?
可这只是表面现象, 因为Linear Classifier里的\(f(x)\)并不是通过Linear Regression得到的. 说到这里就得给Linear Classifier下一个定义了. 简单的讲, Linear Classifier就是以超平面(Hyperplane)为决策边界(Decision Boundary)的分类器. 常见的Linear Classifier有Logistic Regression, SVM, Perceptron. 很明显, 这些个分类算法都不是通过Linear Regression 得到自己的分类超平面的.
还有一类经常引起争论的问题: 数据集\(D\)在原始输入空间\(\chi\)上是线性不可分的, 但将其映射到另外一个空间, 称为特征空间\(H\)上又成了线性可分的. 例如\(\chi \to H : x \to (x, x^2, x^3)\), 判定函数为
\[
f(x) =
\begin{cases}
1&, x+x^2+x^3 \ge 0 \\
-1&, x+x^2 + x^3 < 0
\end{cases}
\]
问这个分类器是线性还是非线性的? (其实是使用了kernel)
我个人的看法是: 在特征空间\(H\)上是线性的, 在原始输入空间\(\chi\)上是非线性的. 如果不指明是哪个空间, 默认为原始输入空间, 为非线性的.
- JQuery对象与DOM对象
- HTML学习3-超链接标签
- 开始便持久 or 绑定共生死
- leetcode-Excel Sheet Column Title
- centos 研究
- 8/4 ?= 2
- 通过zookeeper实现分布式排他锁
- Android逆向之旅---Android应用的安全的攻防之战
- 黑马程序员——Java基础---面向对象
- sqlserver得到昨天的数据
- 对HashMap的“操”作
- c语言:新颖的进制灵活应用
- 记事本项目计划进度安排
- drop.delete.trauncat的区别
- 命令行shell 用于SQLite
- Android DiskLruCache完全解析,硬盘缓存的最佳方案(转)
- build.version_codes.m 找不到
- 时间管理
- 【洛谷P1378】油滴扩展
- Android中自定义控件的测量及布局