You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中使用KNN分类对新样本(年薪32000、行业1)预测性别?

KNN预测新样本性别的实现步骤

要预测新样本(年薪32000、行业1)的性别,核心是让新样本的特征和训练数据采用完全相同的归一化规则,具体操作如下:

1. 获取原始训练数据的特征极值

你的归一化函数基于iwg数据集的SalaryInUSD和Industry的最大、最小值计算,先提取这两个特征的原始统计量:

# 提取原始数据的极值,用于后续归一化
salary_min <- min(iwg$SalaryInUSD)
salary_max <- max(iwg$SalaryInUSD)
industry_min <- min(iwg$Industry)
industry_max <- max(iwg$Industry)

2. 对新样本做归一化处理

不能直接用原始值输入KNN,必须按照训练数据的归一化规则转换:

# 创建新样本数据框
new_sample <- data.frame(SalaryInUSD = 32000, Industry = 1)

# 执行归一化,与训练集规则完全一致
new_sample$SalaryInUSD <- (new_sample$SalaryInUSD - salary_min) / (salary_max - salary_min)
new_sample$Industry <- (new_sample$Industry - industry_min) / (industry_max - industry_min)

3. 调用KNN进行预测

沿用你训练时的参数(k=24),传入训练集、归一化后的新样本和训练集的性别标签:

library(class)
set.seed(12) # 保持随机种子一致,确保结果可复现
new_pred <- knn(train = mstr, test = new_sample, cl = iwg[1:450, 3], k = 24)

# 查看预测结果
print(new_pred)

关键注意事项

  • 归一化是KNN的核心前提,新样本必须和训练集共享同一套极值计算逻辑,否则距离计算会失效,导致预测结果不可靠。
  • 从你提供的混淆矩阵来看,模型对女性样本的预测准确率更高(71/77),男性样本的误判率较高(30/42),预测结果可结合这一特性参考。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:48:19