分类和回归的区别和联系

先简单的说下吧,下面给出实际例子

类和回归的区别在于输出变量的类型。

定量输出称为回归,或者说是连续变量预测;
定性输出称为分类,或者说是离散变量预测。

举个例子:
预测明天的气温是多少度,这是一个回归任务;
预测明天是阴、晴还是雨,就是一个分类任务。 


拿支持向量机举个例子,分类问题和回归问题都要根据训练样本找到一个实值函数g(x)。

回归问题的要求是:给定一个新的模式,根据训练集推断它所对应的输出y(实数)是多少。也就是使用y=g(x)来推断任一输入x所对应的输出值。

分类问题是:给定一个新的模式,根据训练集推断它所对应的类别(如:+1,-1)。也就是使用y=sign(g(x))来推断任一输入x所对应的类别。

综上,回归问题和分类问题的本质一样,不同仅在于他们输出的取值范围不同。分类问题中,输出只允许取两个值;而在回归问题中,输出可取任意实数。

也就是说,回归其实是求一个函数能尽可能的描述出X和Y的关系。对应的是每一个X都有一个Y与之对应。分类是一定范围内的X确定与一个Y对应。



最后在粘贴下两个的概念和方法:

1. 线性回归

回归分析常用于分析两个变量X和Y 之间的关系。 比如 X=房子大小 和 Y=房价 之间的关系, X=(公园人流量,公园门票票价) 与 Y=(公园收入) 之间的关系等等。

那么你的数据点在图上可以这么看


现在你想找到 房子大小和房价的关系, 也就是一个函数f(x) = y. 能够很好的表示 这两个变量之间的关系。

于是你需要大概评估一下这个 房子大小和房价大概是一个什么关系.

线性的关系吗? 还是非线性的关系?


当然在这个问题里面, 线性的关系更符合这两者的关系。于是我们 选择一个合适的 线性模型, 最常用的是 f(x) = ax+b. 

然后用这个线性的模型 去 匹配这些数据点。

1.1 怎么匹配? 

有了数据点 和 你臆想出来的线性模型,怎么进行匹配,也就是怎么用这根线最好地描述些数据点的关系?

需要最好地描述点, 我们又需要一个关于“好”的定义。你也可以想出很多关于“好”的定义。下面有两个,


这两个定义都是 将模型与数据点之间的距离差 之和做为 衡量匹配好坏的标准。  误差越小,  匹配程度越大。

但是 总的来说, 我们想要找到的模型, 最后是想要使 f(x) 最大程度地 与y相似, 所以我们想要尽量地减少 f(x)与y之间的差值。 所以在这里 用第二个图的“好的定义” 来评估这根线的匹配程度是很合理的。于是我们有了误差公式!!!!!


这个公式,说的是,可以通过调整不同的a 和 b的值,就能使 误差不断变化,而当你找到这个公式的最小值时,你就能得到最好的a,b. 而这对(a,b)就是能最好描述你数据关系的模型参数


1.1.1 沿导数下降法(Gradient Descent)

怎么找 cost(a,b)的最小? cost(a,b) 的图像其实像一个碗 一样,有一个最低点。 找这个最低点的办法就是,先随便找一个点(e.g. a=3, b = 2), 然后 沿着这个碗下降的方向找,最后就能找到碗的最低点。


cost(a,b) 的形状

怎么找(某一点)碗下降的方向?? 答案是,找那一点导数的反方向。拿参数a 举个例子,  a与cost 关系如下图,


只要将任意一个a, 沿着使cost 导数的反方向 慢慢移动,那么 最终有一天a值就会到达使 cost 最小的那一点. 于是你可以不断地移动a,b, 向着最低点前进。



当然在进行移动的时候也需要考虑,每次移动的速度,也就是\Alpha的值,这个值也叫做(学习率). 学习率的增大可以加速参数逼近最优的情况, 但是如果在快要到达函数的底端的时候,需要减小学习率,以免出现cost 不断增大或者不停摆动的情况(如下图, J(a,b)就是cost(a,b) )。 所以说,当出现以上两种情况时候,我们应该果断选取一个较小的学习率, 以保证cost能减少到一个稳定的值(我们称为 收敛converge). 


1.1.2 直接求解最小点方法

这时候,有的人会问,为什么要让a不停地往下跑呢? 而且还需要设定学习率, 多麻烦, 直接让找 导数为0点(最小极值), 不就可以了吗? 嗯。。。也可以...但是各有优缺,

具体方法和优劣分析可见Rachel-Zhang 的博客: http://blog.youkuaiyun.com/abcjennifer/article/details/7700772


总结一下:  回归问题的解决方法是:

     1. 假定一个模型   2.  定义什么叫做最好的匹配(构造误差函数)   3. 用这个模型去匹配已有的数据点(训练集)


需要进一步讨论的问题:

  • 如果参数(a,b)更多了该怎么办?
  • 如果最合适的匹配模型并不是线性的怎么办?   --- 选用一个 非线性模型  比如  y = ax^2 + bx + c.
  • 如果误差(cost)与a,b(模型参数)的关系不是像碗一样的, 而是凹凸不平的该怎么办? ------   这时候你就得注意你得到的cost的最低点(局部的最低)可能因初始点的不同而不同。 而这些最低点你需要进行比较,以确定是不是全局的最低

2.分类(Logistic regression)

分类问题也是一类很常见的问题。 比如说,怎么判定一个人是高富帅还是吊丝? 假如我是中央电视台的记者,采访了N个人, 拿到了第一手资料。资料如下

我们想要根据一个人的口袋钱数量,来预测一个人是(富帅) 还是 (吊丝).  我们能不能用回归的方法做呢?  显然是可以的, 我们只要找到一个模型,然后再进行匹配就可以了。
但是因为分类问题的y值常常是一些离散的数字,(比如, 富帅为1, 吊丝为0), 所以我们已经不能用一个 简单的线性函数来拟合这些数据了。我们需要一个更逼真的模型。 

于是我们引入了一个更适合处理分类问题的函数--- 一个 非线性函数, 阶跃函数。

这个函数的形状更像我们分类问题的数据分布,所以,用他来拟合分类问题的数据将 更适合
所以我们有了一个新的模型, 

通过调整a,b 的值,可以让模型不断改变以匹配数据点。 为了匹配数据点,我们又需要一个衡量匹配程度的函数,就像 回归问题一样的cost 函数. 于是同理我们可以得到cost

于是我们急切地想要把它用我们之前的gradient descent 的方法求解出使cost 最小的两个a,b值。 但是很遗憾的是, 这个cost函数关于a,b,是非凸(non-convex)的。 就像下面那张图那样坑坑洼洼。。。



所以你 没有办法通过以上两种方法(1.1.1和1.1.2)求出这个cost函数的 全局最小值
所以你需要构造一个更好的cost函数, 在可以 衡量拟合程度的同时 又是 一个关于a,b 的凸函数(像回归问题的cost一样,和一个碗一样,只有一个极小值). 
这怎么构造啊....


幸好我们还有各种伟大的数学家,他们夜以继日,终于赶制出了一个形状和碗一样(convex)的cost函数. (Maximum Likelihoods Estimation 更具体的介绍请看 http://www.holehouse.org/mlclass/06_Logistic_Regression.html )

现在我们又可以用我们熟悉的 导数方向下降法(gradient descent) 移动a, b的值,使cost 降低到最小。



最后,分类的问题就这样被解决了。


当然,更复杂的问题可能有:
  • 现在是分成两类,如果数据需要分成三类或者更多该怎么办?  ---- 假如有A,B,C三类, 把其中A类做为1,BC做为0,然后做Logistic regression, 得到模型a, 同理将B类做为1,AC作为0,得到模型b, 再同理得到模型c.    最后测试的时候, 对任意一个数据点x, 我们能够得到x分别属于A,B,C三类的概率值 

最后比较大小,哪个大,这个x就属于哪一类


3.总结(两个问题的区别)

这篇文章大概的意图是能想让大家了解, 机器学习中最基本的两类问题,线性回归和分类。 能让大家有个清晰的思想,对于这两类问题都有以下几个步骤,
  • 如何选取一个 合理的模型(线性的,or 非线性的(e.g. 阶跃函数, 高斯函数)).--模型
  • 制造一个"美好"的 误差函数 (可以评估拟合程度,而且还是convex函数)--策略
  • 采取一切可能的技术(e.g. 导数下降法,解极值方程法) 求出最好的模型参数--算法(算法中涵盖:1.对策略的实现,2.以及为了达到某种效果(例如,时间减少),而对策略的优化)

谈谈回归和分类的区别:
总的来说两个问题本质上都是一致的,就是模型的拟合(匹配)。 但是分类问题的y值(也称为label), 更离散化一些. 而且, 同一个y值可能对应着一大批的x,  这些x是具有一定范围的。 
所以分类问题更多的是 (一定区域的一些x) 对应 着 (一个y).   而回归问题的模型更倾向于 (很小区域内的x,或者一般是一个x)  对应着  (一个y).

在把一个问题建模的时候一定要考虑好需求,让你的模型更好的与现实问题相对应。


转自:

http://blog.youkuaiyun.com/abcjennifer/article/details/7716281

http://blog.youkuaiyun.com/ppn029012/article/details/8775597

http://blog.youkuaiyun.com/u010159842/article/details/46457781

<think> 我们正在讨论分类问题回归问题的区别联系。根据用户的需求,我们需要详细解释分类回归的特点及区别。我们可以参考之前提供的引用内容,特别是引用[1]引用[3]中的内容。 分类回归是监督学习中的两种主要任务。它们的核心区别在于目标变量的类型: - 分类:目标变量是离散的类别标签(例如:垃圾邮件/非垃圾邮件,猫/狗/鸟)。 - 回归:目标变量是连续的数值(例如:房价,温度,销售额)。 下面我们详细展开: ### 一、特点区别 #### 1. **输出类型** - **分类**:输出是离散的类别标签。例如: - 二分类:输出只有两种可能(如01) - 多分类:输出有多个类别(如手写数字识别0-9) - **回归**:输出是连续的数值。例如: - 预测房价(输出可以是任意实数) - 预测温度(可以是小数) #### 2. **算法目标** - **分类**:目标是学习决策边界,将数据划分到不同的类别中。常用算法包括: - 决策树(用于分类) - 支持向量机(SVM) - 逻辑回归(虽然名字叫回归,但实际上是分类算法) - 神经网络(用于分类) - **回归**:目标是学习输入特征连续目标值之间的映射关系。常用算法包括: - 线性回归 - 多项式回归 - 回归树 - 神经网络(用于回归) #### 3. **评价指标** - **分类**:评价指标关注预测类别的准确性。常用指标: - 准确率(Accuracy) - 精确率(Precision)召回率(Recall) - F1分数(F1-Score) - AUC-ROC曲线 - **回归**:评价指标关注预测值真实值之间的误差大小。常用指标: - 均方误差(MSE) - 均方根误差(RMSE) - 平均绝对误差(MAE) - R-squared(决定系数) #### 4. **应用场景** - **分类**的应用场景: - 图像识别(识别图像中的物体类别) - 文本分类(如垃圾邮件检测、情感分析) - 医学诊断(判断是否患有某种疾病) - 欺诈检测(判断交易是否为欺诈) - **回归**的应用场景: - 房价预测 - 股票价格预测 - 销售额预测 - 气象预测(如温度、降水量) ### 二、联系 尽管分类回归有显著区别,但它们之间也存在联系: 1. **问题转换**:某些问题可以从分类转化为回归,反之亦然。例如: - 将回归问题离散化(如将房价分为高、中、低三档)就变成了分类问题。 - 某些分类算法(如逻辑回归)实际上是通过回归方法(如线性回归+激活函数)来实现分类的。 2. **算法通用性**:一些算法可以同时处理分类回归任务,例如: - 决策树:通过改变目标变量类型,可以用于分类分类树)回归回归树)。 - 神经网络:通过改变输出层(如分类用softmax,回归用线性激活)可以处理两种任务。 3. **特征处理相似性**:在特征工程阶段,两类任务的处理方法高度相似,包括: - 缺失值处理 - 特征缩放 - 特征编码(如独热编码处理分类特征) ### 三、示例对比 假设我们有一个关于房屋的数据集: - 如果我们要预测房屋的**价格**(连续值),这是一个回归问题。 - 如果我们要预测房屋是否**畅销**(是/否),这就是一个分类问题。 ### 总结 分类回归是监督学习的核心任务,二者在输出类型、算法目标、评价指标应用场景上存在本质区别。但在实际应用中,它们又相互关联,通过适当的问题转换算法调整,可以扩展模型的应用范围[^1][^3]。 §§相关问题§§ 1. 逻辑回归为什么用于分类却被称为回归? 2. 决策树如何同时用于分类回归任务? 3. 分类问题中如何处理类别不平衡? 4. 回归问题中如何处理非线性关系? </think> ### 分类回归的特点及区别 #### 一、核心特点对比 | **维度** | **分类 (Classification)** | **回归 (Regression)** | |----------------|--------------------------------------------------|---------------------------------------------| | **输出类型** | 离散类别标签(如猫/狗/鸟) | 连续数值(如房价、温度) | | **算法目标** | 学习决策边界,划分数据类别 | 学习特征目标值的映射函数 | | **预测本质** | 定性判断("是什么") | 定量预测("有多少") | | **典型算法** | 逻辑回归、决策树、SVM、随机森林 | 线性回归、多项式回归回归树、神经网络 | #### 二、详细区别解析 1. **输出形式(核心区别)** - **分类**:输出有限个离散类别 $$ \hat{y} \in \{0, 1, ..., K\} \quad (\text{K为类别数}) $$ 例如:垃圾邮件检测(0=正常,1=垃圾)[^1] - **回归**:输出连续实数 $$ \hat{y} \in \mathbb{R} $$ 例如:房价预测(输出可能为 325.7万)[^3] 2. **评价指标差异** - **分类**:关注类别准确性 - 准确率:$ \text{Accuracy} = \frac{\text{正确预测数}}{\text{总样本数}} $ - F1-score:$ \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} $ - **回归**:关注数值误差 - 均方误差:$ \text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 $ - $R^2$ 决定系数:$ 1 - \frac{\sum(y_i - \hat{y}_i)^2}{\sum(y_i - \bar{y})^2} $ 3. **应用场景对比** ```mermaid graph LR A[分类应用] --> B[图像识别] A --> C[疾病诊断] A --> D[情感分析] E[回归应用] --> F[房价预测] E --> G[股票走势] E --> H[气温预报] ``` - **分类**:需要定性结论的场景(如信用卡欺诈检测[^4]) - **回归**:需精确数值的场景(如销售额预测[^3]) 4. **模型解释方式** - **分类模型**:输出类别概率 $$ P(y=k|\mathbf{x}) = \frac{e^{\mathbf{w}_k^T \mathbf{x}}}{\sum_{j=1}^{K} e^{\mathbf{w}_j^T \mathbf{x}}} \quad \text{(softmax函数)} $$ - **回归模型**:输出数值关系 $$ \hat{y} = \beta_0 + \beta_1 x_1 + ... + \beta_n x_n \quad \text{(线性回归)} $$ #### 三、本质联系 1. **问题可转换性** - 回归分类:设定阈值将连续值离散化(如血糖>7mmol/L判为糖尿病) - 分类回归:将类别次序视为连续值(如电影评分1-5星) 2. **算法互通性** - 决策树、神经网络等算法可同时处理两类任务 - 逻辑回归本质是**用回归方法解决分类问题**(通过Sigmoid函数映射概率)[^2] #### 四、典型场景选择指南 1. **选择分类**当: - 目标为判断类型/状态(如垃圾邮件检测) - 输出有明确边界(如动物种类不可介于猫狗之间) 2. **选择回归**当: - 需精确量化影响(如广告投入对销售额的影响) - 预测值有连续变化特性(如时间序列预测)[^3] > **总结**:分类解决“是什么”的定性问题,回归解决“有多少”的定量问题。二者根本区别在于输出的离散性连续性,但在算法实现问题转换上存在深层联系[^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值