分类和回归的区别

其实分类和回归的本质是一样的,都是对输入做出预测,其区别在于输出的类型。

分类问题:分类问题的输出是离散型变量(如: +1、-1),是一种定性输出。(预测明天天气是阴、晴还是雨) 
回归问题:回归问题的输出是连续型变量,是一种定量输出。(预测明天的温度是多少度)。

转载地址:https://blog.youkuaiyun.com/fisherming/article/details/79646134

### KNN算法在分类回归任务中的差异 #### 分类任务中的KNN 在分类任务中,K近邻(KNN)算法通过计算测试样本其最近邻居的距离来预测类别标签。具体来说,在给定的数据集中找到距离最近的`k`个训练实例,并依据这些邻居所属的主要类别决定新数据点的类别归属[^2]。 对于分类问题而言,最终输出的是离目标样本最接近的一组已知样本所占比例最大的那一类标签作为预测结果。例如: ```python from sklearn.neighbors import KNeighborsClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载鸢尾花数据集并划分训练集测试集 data = load_iris() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target) # 创建KNN分类器对象并将模型拟合到训练数据上 clf = KNeighborsClassifier(n_neighbors=15) clf.fit(X_train, y_train) # 计算准确率得分 accuracy_train = accuracy_score(y_train, clf.predict(X_train)) accuracy_test = accuracy_score(y_test, clf.predict(X_test)) print(f'Training Accuracy: {accuracy_train:.4f}') print(f'Testing Accuracy: {accuracy_test:.4f}') ``` #### 回归任务中的KNN 而在回归场景下,KNN的工作方式略有不同。此时的目标不再是寻找多数投票最多的类别,而是基于选定的`k`个临近点估计连续型变量值。通常采用的方法是对这`k`个邻居的实际数值取平均数或加权均值以得出预测值。 针对回归分析,可以利用如下代码实现简单的线性关系建模: ```python from sklearn.neighbors import KNeighborsRegressor import numpy as np # 构造简单的人工数据用于演示目的 np.random.seed(0) X_reg = np.sort(5 * np.random.rand(40, 1), axis=0) y_reg = np.sin(X_reg).ravel() # 添加一些噪声使情况更贴近现实世界应用 y_reg[::5] += 1 * (0.5 - np.random.rand(8)) # 使用默认参数初始化KNN回归器并进行拟合操作 regressor = KNeighborsRegressor(n_neighbors=5) regressor.fit(X_reg, y_reg) # 预测新的输入向量对应的响应变量值 new_input = [[2.]] predicted_value = regressor.predict(new_input) print(f'Predicted value for input {new_input}: {predicted_value[0]:.4f}') ``` 两种情况下虽然都依赖于相似的核心概念——即考虑周围样本来做出决策,但在处理不同类型的任务时采取的具体策略存在明显区别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值