分类和回归
Classification & regression
本质上讲:classification是预测一个标签,但是regression是关于预测数量
当有人询问“how do I calculate accuracy for my regression problem?”时,就是没有充分理解好二者的区别
1.Function approximation
预测模型其实就是建立一个模型根据一些数据来预测一些没有答案的数据。
使用数学的方法来表示的话,就是建立一个映射函数f() (mapping function), 根据input的X来得到output的Y.
算法的作用就是找到最好的映射函数。
2. Classification predictive modeling 分类预测模型
2.1 介绍
比如,最典型的一个例子就是:邮件的分类(spam/not spam)。也就是我们根据一个邮件的内容,判定该邮件有用还是无用。那么这里有用和无用就是两个类。我们一般管只有两个类的叫做“binary classification problem”,当类的个数超过2个的时候,我们称之为“multi-class classification problem”。
Input:一些features
Output:一个lables / categories(标签)
2.2定义
Classification predictive modeling is the task of approximating a mapping function (f) from input variables (X) to discrete output variables (y).
注意:得到的是一个离散的输出结果。
2.3 如何得到输出结果?
我们主要计算test instance 在每种labels下的概率,选择概率大的最为output。
2.4准确率
我们使用准确率对分类结果进行评判。准确率对计算是预测正确的个数和总数的比值。
3. Regression predictive modeling
3.1 介绍
比如,预测一个房子的卖价,它可能在100000-200000之间。预测的结果就是一个真实的数值。
Output:一个真实的值,比如integer/floating point value。一般情况下是amounts/sizes
3.2定义:
Regression predictive modeling is the task of approximating a mapping function (f) from input variables (X) to a continuous output variable (y).
注意:得到的是连续的结果
3.3 RMSE
评判regression predictive model我们使用RMSE。比如我们预测两个instance,1.5(真实) – 1.0(预测)/ 3.0(真实)--3.5(预测)。计算的方法如下:
4. 对比
1.预测的结果:分类是离散;回归是连续
但是要注意,分类算法可以得到连续的数值,但是连续的数组最后会根据某些函数和规则映射成一个class,比如step function。同样,回归算法有时也会得到一些离散的值,但是这些数值都是integer/float quantity。
算法可以即是classification又是regression,比如 decision tree或者artificial neural networks。但是有些算法不行,比如logistic regression 或者linear regression.
2.评估方法不同
Classification使用accuracy(准确率)。
Regression 使用root mean squared error(RMSE)
参考:https://machinelearningmastery.com/classification-versus-regression-in-machine-learning/