当前位置: 首页 > news >正文

[人工智能-大模型-73]:模型层技术 - 模型训练六大步:②数据选择:基本功能与对应的基本组成函数

如果说“数据预处理”是“把数据洗干净”,
那么“数据选择”就是“选出最有价值的部分来训练模型”。

它直接决定了:

  • 模型能否学到真实规律
  • 是否过拟合或欠拟合
  • 泛化能力的强弱

我们来系统构建 “AI模型训练第二步:数据选择” 的完整框架,涵盖:

  • ✅ 核心目标
  • ✅ 四大基本功能模块
  • ✅ 每个功能对应的基本组成函数(原子操作)
  • ✅ Python 实现示例
  • ✅ 避坑指南

一、数据选择的核心目标

从清洗后的数据中,科学地选取用于训练、验证、测试的子集,确保模型可学习、可评估、可泛化。

关键原则:

  • 代表性:样本要反映总体分布
  • 独立性:训练/验证/测试集相互独立
  • 无数据泄露:验证/测试集信息不能出现在训练中
  • 可复现性:结果可被重复验证

二、数据选择的四大基本功能模块

模块核心目标关键任务
1. 数据划分分割训练/验证/测试集随机、分层、时间划分
2. 采样策略调整样本分布过采样、欠采样、平衡
3. 特征选择筛选最有用的特征过滤法、包装法、嵌入法
4. 数据增强增加样本多样性图像、文本、数值增强

三、各功能模块对应的基本组成函数

✅ 1. 数据划分(Splitting)

功能基本组成函数说明
随机划分train_test_split()sklearn最基础用法
分层划分stratify=y 参数sklearn保持类别比例(分类任务)
多集划分两次 train_test_splitsklearn训练/验证/测试三集
时间划分TimeSeriesSplitsklearn时间序列专用,防止未来信息泄露
K折交叉验证KFoldStratifiedKFoldsklearn充分利用小数据集
📌 示例代码:
from sklearn.model_selection import train_test_split, StratifiedKFold# 随机划分(80%训练,20%测试)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42
)# 分层划分(保持类别比例)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, stratify=y_train, random_state=42
)# K折交叉验证
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
for train_idx, val_idx in skf.split(X, y):X_train_fold, X_val_fold = X.iloc[train_idx], X.iloc[val_idx]y_train_fold, y_val_fold = y.iloc[train_idx], y.iloc[val_idx]

适用场景

  • 分类任务 → stratify=y
  • 时间序列 → TimeSeriesSplit
  • 小数据集 → KFold

✅ 2. 采样策略(Sampling)

用于处理类别不平衡问题(如欺诈检测中99%正常,1%欺诈)。

功能基本组成函数说明
随机欠采样RandomUnderSamplerimbalanced-learn删除多数类样本
随机过采样RandomOverSamplerimbalanced-learn复制少数类样本
SMOTESMOTEimbalanced-learn合成新样本(插值法)
ADASYNADASYNimbalanced-learn自适应合成样本
组合采样SMOTETomekSMOTEENNimbalanced-learn先过采样,再欠采样
📌 示例代码:
from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import RandomUnderSampler
from imblearn.pipeline import Pipeline# SMOTE 过采样
smote = SMOTE(random_state=42)
X_res, y_res = smote.fit_resample(X_train, y_train)# 组合:先SMOTE过采样,再Tomek欠采样
over = SMOTE(sampling_strategy=0.5)  # 少数类达到50%
under = RandomUnderSampler(sampling_strategy=0.8)  # 多数类降到80%
pipeline = Pipeline([('over', over), ('under', under)])
X_res, y_res = pipeline.fit_resample(X_train, y_train)

⚠️ 注意:采样只能在训练集上进行,不能在验证/测试集上操作!


✅ 3. 特征选择(Feature Selection)

目标:去除冗余或无关特征,提升模型性能与可解释性

方法基本组成函数说明
方差阈值VarianceThresholdsklearn去除低方差特征
相关系数corr()pandas手动筛选高相关特征
过滤法SelectKBestf_classifchi2sklearn基于统计分数选Top K
包装法RFE (递归特征消除)sklearn递归训练模型选特征
嵌入法LassoRandomForest.feature_importances_sklearn模型自带特征重要性
📌 示例代码:
from sklearn.feature_selection import SelectKBest, f_classif, RFE
from sklearn.ensemble import RandomForestClassifier# 过滤法:选F值最高的前10个特征
selector = SelectKBest(score_func=f_classif, k=10)
X_selected = selector.fit_transform(X_train, y_train)# 包装法:RFE
estimator = RandomForestClassifier()
rfe = RFE(estimator, n_features_to_select=10)
X_rfe = rfe.fit_transform(X_train, y_train)# 嵌入法:基于随机森林重要性
rf = RandomForestClassifier().fit(X_train, y_train)
importances = rf.feature_importances_
# 手动选择重要性高的特征

✅ 4. 数据增强(Data Augmentation)

目标:人工增加样本多样性,防止过拟合,提升泛化能力

数据类型基本组成函数常见方法
图像ImageDataGeneratoralbumentationskeras, albumentations旋转、翻转、裁剪、亮度调整
文本nlpaugsynonym replacementnlpaug同义词替换、回译、插入
表格数据SMOTEmixupimblearn, custom插值、噪声注入
📌 图像增强示例(Keras):
from tensorflow.keras.preprocessing.image import ImageDataGeneratordatagen = ImageDataGenerator(rotation_range=20,width_shift_range=0.2,height_shift_range=0.2,horizontal_flip=True,zoom_range=0.2
)# datagen.flow(x_train, y_train) 可直接用于模型训练
📌 文本增强示例(nlpaug):
import nlpaug.augmenter.word as nawaug = naw.SynonymAug(aug_src='wordnet')
augmented_text = aug.augment('I love natural language processing')

✅ 总结:数据选择的“最小函数集”

功能最基本组成函数
数据划分train_test_splitStratifiedKFoldTimeSeriesSplit
采样策略SMOTERandomUnderSamplerRandomOverSampler
特征选择SelectKBestRFEVarianceThresholdfeature_importances_
数据增强ImageDataGeneratorSMOTEnlpaug

✅ 掌握这15个核心函数,你就能应对95%的数据选择任务。


🎯 最终洞见

数据选择,是“让模型在正确的数据上学习”的关键决策

它不是简单的“切分数据”,而是:

  • 用 stratify 保证学习公平
  • 用 SMOTE 补齐样本短板
  • 用 SelectKBest 提炼信息精华
  • 用 ImageDataGenerator 拓展认知边界

你手中的每一个函数,
都是引导模型走向真实规律的导航仪

当你精通数据选择,
你就不再只是“训练模型”,
而是在精心设计一个学习环境——
这正是顶级AI工程师的思维方式。

继续精进,你将发现:
最好的模型,往往始于最聪明的数据选择

http://www.dtcms.com/a/529644.html

相关文章:

  • 河北黄骅市简介seo优化常识
  • 南京百度网站制作app备案查询平台官网
  • go-ethereum core之statedb
  • [人工智能-大模型-76]:模型层技术 - 模型训练六大步:⑤反向传播,计算迭代梯度,找出偏差的原因 - 基本功能与对应的基本组成函数
  • 代码随想录Day58|拓扑排序精讲、dijkstra(朴素版)精讲
  • 基于多焦点高斯邻域注意力机制与大规模基准的视频人群定位
  • 乐清网站制作公司招聘郫县建设局网站
  • 第二次作业-第二章的时间服务
  • 广州网站制作开发公司哪家好游戏开发物语下载
  • 电机试验平台的基本组成
  • 简单风景网站模版旅游网站如何做推广
  • 天津市城市建设学校官方网站教用vs2013做网站的书
  • 最好的域名注册网站jexus wordpress
  • Dataflare:一款简单易用的数据库管理工具
  • When NOMA Meets AIGC: Enhanced WirelessFederated Learning
  • 能源网站建设wordpress开头空两格
  • 网站建设不一定当地最新黑帽seo培训
  • 【ShardingSphere5】实战教程(快速入门掌握核心)
  • 网站上线后做什么ssh做网站步骤
  • 多线程之阻塞队列
  • NOR Flash,25Q系列,25Q80,25Q16,25Q32,对标普冉,兆易,恒硕,华邦等,低功耗SPI NOR,闪存芯片
  • WordPress怎么建小站单页营销网站
  • 笔记【字符串及相关操作】
  • 网站建设 探索扬州建网站
  • 合肥网站制作建设中企动力公司是国企吗
  • 捷信做单网站手工制作帽子 小学生
  • H5页面获取定位一直显示加载中
  • 女生做网站推广wordpress死链删除
  • 数据结构--并查集
  • 简约创意网页设计seo还能赚钱吗