实践视角:数据挖掘DM(机器、深度)
这个专栏的最早的博客,从数据预处理与探索性分析、特征工程与维度降维、型构建与评估、非监督学习与关系挖掘到时间序列分析与预测,一步步代码皆可以运行和图片示例。
引言:重新理解数据挖掘的本质
在这个数据驱动的时代,数据挖掘已不仅仅是一套技术工具,而是一种认知方式、一种哲学思辨、一种对世界理解的方法论。当我们谈论数据挖掘时,我们实际上在讨论如何从不确定性中寻找确定性,如何从杂乱无章的信息中构建知识体系,如何在有限的观察中把握无限的规律。
根据IEEE的权威定义,数据挖掘是从大数据集中非平凡地提取新颖、隐式和可操作知识的过程。这个定义揭示了数据挖掘的三个哲学维度:新颖性(Novelty)- 发现未知的模式,隐式性(Implicitness)- 挖掘潜藏的关系,可操作性(Actionability)- 产生实用的洞察。
然而,传统的技术教学往往将数据挖掘描述为一个线性流程:数据收集→预处理→建模→评估→部署。这种理解是危险的,因为它掩盖了数据挖掘的循环本质和认知复杂性。实际上,数据挖掘过程本身是循环的,一个数据挖掘过程在解决方案部署后仍会继续,过程中学到的经验会引发新的、通常更加聚焦的业务问题。
一、数据挖掘的认识论基础与哲学框架
1.1 从认知科学到不可知科学的范式转换
传统科学方法遵循假设-验证的认知模式(Gnostic Mode):科学家基于现有理论提出假设,然后通过实验来确认或否定这些假设。这种方法要求研究者事先了解现象之间的联系。
然而,大数据的普及引发了一个新的不可知科学时代,在这里,科学知识可以在没有现象或其相互关系的先验知识或理解的情况下生成。这种不可知模式(Agnostic Mode)的核心是:让数据自己"说话",通过算法自动发现模式,而不需要预先的理论假设。
这种范式转换带来了深刻的认识论问题:
认识论悖论:当我们声称"让数据说话"时,我们实际上是在用特定的算法、特定的假设、特定的偏见来"倾听"数据。
客观性幻象:数据收集既不中性也不客观;穷尽性是一个数学极限;解释和知识生产仍然是理论性的和主观的。
1.2 数据挖掘的三层哲学框架
数据挖掘研究可以分为三层概念框架:哲学层、技术层和应用层。这个框架为我们提供了理解数据挖掘完整性质的视角:
哲学层:关注数据挖掘的本质、知识的来源、真理的标准。主要问题包括:什么是知识?我们如何避免在解释有趣现象时犯错?
技术层:关注如何在机器中发现知识。涉及算法实现、编程语言、存储检索等计算机科学问题。
应用层:关注数据挖掘在具体领域的应用和价值创造。
这三层之间并非简单的层级关系,而是相互渗透、螺旋上升的认知结构。技术创新会推动哲学反思,哲学思辨会指导应用方向,应用实践会验证技术有效性。
1.3 数据准确性的哲学思考
数据准确性是一个多层面的概念,与认识论、本体论和形而上学等各种哲学学科相交。数据的准确性不仅是技术问题,更是哲学问题:
经验主义视角:数据应该基于观察和经验。这意味着数据收集方法应该设计为最小化偏见,最大化数据与所研究现象的保真度。
理性主义视角:强调理性在数据验证中的重要性。纯粹的数据驱动方法可能忽略了理性分析的价值。
本体论维度:本体论分析可以帮助识别相关概念及其相互关系,从而促进数据模型的设计,准确反映所建模领域的结构。
二、数据挖掘的循环本质与CRISP-DM哲学
2.1 破除线性流程的幻象
许多人将数据挖掘理解为从数据到洞察的单向流程,这是一个根本性的认知错误。CRISP-DM过程间接倡导敏捷原则和实践,声明"阶段的顺序不是严格的,在不同阶段之间来回移动总是必要的"。
真实的数据挖掘过程更像是一个认知螺旋:
业务理解 ↔ 数据理解 ↔ 数据准备 ↔ 建模 ↔ 评估 ↔ 部署
↑ ↓
←←←←←←←←←←←←← 新的业务问题 ←←←←←←←←←←←←←←←←
每一次循环都会带来:
- 认知深化:对业务问题的理解更加深入
- 方法优化:技术手段更加精准
- 视野扩展:发现新的问题和机会
2.2 迭代中的哲学思辨
在每一轮迭代中,我们都面临着经典的哲学问题:
归纳问题:我们基于有限的历史数据,如何对未来进行预测?这涉及休谟的归纳问题 - 我们如何证明未来会像过去一样?
测量问题:我们选择的特征和指标真的反映了我们想要测量的概念吗?这是操作化定义的哲学问题。
因果推断:相关性不等于因果性,但我们的预测模型经常被误解为因果关系。
2.3 评估与调参的认知陷阱
当模型性能不达标时,我们通常会进行调参或重新设计特征。这个过程中隐藏着几个重要的认知陷阱:
数据窥探偏误(Data Snooping Bias):反复调参实际上是对同一数据集的多重检验,会导致过度优化。
确认偏误:我们倾向于选择支持我们预期结果的特征和参数。
后见之明偏误:成功的模型让我们相信我们的方法是正确的,失败的尝试被遗忘。
三、特征工程的哲学思辨与数学本质
3.1 特征选择的本体论思考
特征工程不仅是技术过程,更是本体论建构过程。我们选择的特征实际上是在定义我们理解世界的方式。
本体论承诺:当我们选择某些特征时,我们隐含地承诺了关于世界结构的某种观点。
例如,在用户画像中选择"年龄"和"收入"作为特征,我们实际上是在假设:
- 年龄是一个有意义的分类维度
- 收入能够代表某种重要的用户属性
- 这两个变量之间存在某种可建模的关系
常用特征工程技术与工具:
技术类别 | 具体方法 | 推荐工具 | 哲学含义 |
---|---|---|---|
数值变换 | 标准化、归一化、对数变换 | scikit-learn, pandas | 假设数据应该满足某种分布 |
类别编码 | 独热编码、标签编码、目标编码 | pandas, category_encoders | 定义类别之间的关系结构 |
特征选择 | 过滤法、包装法、嵌入法 | sklearn.feature_selection | 确定什么是"重要"的标准 |
特征构造 | 多项式特征、交互特征 | sklearn.preprocessing | 假设复杂关系的存在形式 |
降维技术 | PCA、t-SNE、UMAP | sklearn, umap-learn | 相信存在低维的本质结构 |
3.2 维度诅咒的哲学反思
维度诅咒(Curse of Dimensionality)不仅是技术挑战,更是认识论问题。当特征维度增加时:
- 样本稀疏性:在高维空间中,数据点变得稀疏,"邻近"的概念失去意义
- 距离失效:所有点对之间的距离趋于相等
- 计算复杂性:指数级增长的计算需求
这揭示了一个深刻的哲学问题:我们对世界的理解是否应该简单还是复杂?
奥卡姆剃刀原理:在解释相同现象的理论中,我们应该选择最简单的那个。
爱因斯坦的格言:事物应该尽可能简单,但不能过于简单。
主要降维技术对比:
# PCA - 线性降维,保持方差
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# t-SNE - 非线性降维,保持局部结构
from sklearn.manifold import TSNE
tsne = TSNE(n_components=2, perplexity=30)
X_tsne = tsne.fit_transform(X)
# UMAP - 保持全局和局部结构
import umap
reducer = umap.UMAP(n_components=2)
X_umap = reducer.fit_transform(X)
四、模型构建的数学哲学与偏差-方差权衡
4.1 偏差-方差权衡的深层含义
偏差-方差权衡描述了模型复杂性、预测准确性以及对未用于训练模型的先前未见数据进行预测的能力之间的关系。这不仅是技术问题,更是认识论的核心问题。
偏差(Bias):模型的系统性错误,源于算法中的错误假设。高偏差可能导致算法错过特征和目标输出之间的相关关系(欠拟合)。
方差(Variance):模型对训练集中小的波动的敏感性。高方差可能导致算法对训练数据中的随机噪声建模(过拟合)。
偏差-方差权衡的哲学解读
认识论张力:偏差代表我们理论框架的局限性,方差代表我们观察能力的局限性。
简单性与复杂性的辩证:简单模型有高偏差低方差,复杂模型有低偏差高方差。最优模型需要在两者间找到平衡。
数学表达:
总误差 = 偏差² + 方差 + 不可约误差
E[(y - ŷ)²] = Bias[ŷ]² + Var[ŷ] + σ²
这个公式揭示了预测误差的三个来源,其中只有前两个是我们可以控制的。
4.2 过拟合与欠拟合的认知含义
过拟合:记忆vs理解
过拟合是一种不良的机器学习行为,当机器学习模型对训练数据给出准确预测但对新数据不准确时发生。
过拟合模型就像死记硬背的学生:
- 能够完美回答练习题(训练数据)
- 面对新题型时表现糟糕(测试数据)
- 缺乏真正的理解和泛化能力
欠拟合:简化vs洞察
欠拟合发生在统计模型或机器学习算法无法捕获数据的潜在趋势时。
欠拟合模型就像学习不足的学生:
- 练习题和考试都表现不佳
- 对问题的理解过于简单
- 无法掌握必要的复杂性
找到"恰到好处"的平衡
理想的模型应该:
- 捕获真实模式:能够识别数据中的真实规律
- 忽略随机噪声:不被偶然因素误导
- 泛化能力强:对新数据有良好的预测性能
主要防止过拟合的技术:
技术 | 原理 | 实现工具 | 适用场景 |
---|---|---|---|
交叉验证 | 更可靠的模型评估 | sklearn.model_selection | 所有模型 |
正则化 | L1/L2惩罚项 | sklearn (alpha参数) | 线性模型 |
早停 | 监控验证损失 | keras, pytorch | 深度学习 |
Dropout | 随机关闭神经元 | tensorflow, pytorch | 神经网络 |
集成方法 | 多模型投票 | sklearn.ensemble | 决策树类 |
五、业务指标设计的陷阱与哲学反思
5.1 指标设计中的认知偏误
在实际项目中,业务指标的设计和选择充满了哲学陷阱:
目标泄露(Target Leakage)
定义:模型能够"偷看"到未来信息或结果相关信息。
哲学含义:这违反了因果关系的时间顺序,是一种时间悖论。
常见形式:
- 使用事后信息(如使用"是否还款"来预测"信用风险")
- 包含结果的衍生特征(如用"购买后评价"预测"购买意愿")
- 数据泄露(测试集信息泄露到训练集)
指标冗余与多重共线性
当多个指标度量相同概念时,我们面临:
- 统计问题:多重共线性影响模型稳定性
- 哲学问题:我们是否在重复计算同一种"真理"?
辛普森悖论
同一数据在不同聚合层次下可能得出相反结论,这提醒我们:
- 观察层次的选择会影响结论
- 分组方式隐含了我们的世界观
- 统计真理可能不等同于直觉真理
5.2 指标权重的动态性哲学
在实际应用中,指标的重要性会随时间变化:
赫拉克利特的河流:我们不能两次踏进同一条河流,因为河水在流动。同样,我们的模型也不能永远使用相同的权重,因为世界在变化。
概念漂移(Concept Drift):
- 突发型漂移:突然的环境变化(如疫情、政策变化)
- 渐进型漂移:缓慢的趋势变化(如用户习惯演化)
- 周期性漂移:季节性或周期性变化
应对策略:
# 在线学习示例
from river import linear_model, preprocessing
# 创建在线学习管道
model = preprocessing.StandardScaler() | linear_model.LogisticRegression()
# 增量学习
for x, y in stream:
y_pred = model.predict_one(x)
model.learn_one(x, y)
六、评估方法的哲学思辨与实践智慧
6.1 评估指标的价值观念
不同的评估指标体现了不同的价值观和优先级:
准确率 vs 公平性
准确率关注整体正确性,但可能掩盖群体偏见:
- 模型在多数群体上表现好,在少数群体上表现差
- 高准确率可能建立在不公平的基础上
召回率 vs 精确率的哲学对立
这是一个经典的第一类错误vs第二类错误的权衡:
精确率优先:宁可错过,不可错报(如垃圾邮件检测)
召回率优先:宁可错报,不可错过(如医疗诊断)
这反映了不同的风险态度和道德框架。
评估方法的工具箱
评估类型 | 具体指标 | Python实现 | 适用场景 | 哲学含义 |
---|---|---|---|---|
分类评估 | 准确率、精确率、召回率、F1 | sklearn.metrics | 分类问题 | 错误的代价权衡 |
回归评估 | MAE、MSE、RMSE、R² | sklearn.metrics | 回归问题 | 误差的度量哲学 |
排序评估 | AUC、NDCG、MAP | sklearn.metrics | 推荐系统 | 排序的公平性 |
概率评估 | 对数损失、Brier得分 | sklearn.metrics | 概率预测 | 不确定性的量化 |
6.2 交叉验证的认识论意义
交叉验证不仅是技术方法,更是认识论的体现:
重复实验原理:科学的可重复性要求我们能够在不同条件下验证结论。
样本代表性假设:我们假设训练样本能够代表总体分布。
常用交叉验证方法:
from sklearn.model_selection import (
KFold, StratifiedKFold, TimeSeriesSplit,
GroupKFold, LeaveOneOut
)
# K折交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)
# 分层K折(保持类别比例)
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
# 时间序列交叉验证(保持时间顺序)
tscv = TimeSeriesSplit(n_splits=5)
# 分组交叉验证(防止数据泄露)
gkf = GroupKFold(n_splits=5)
七、时间序列与非监督学习的哲学内核
7.1 时间的哲学:预测的可能性与局限性
时间序列分析面临着时间哲学的核心问题:
决定论vs随机性:未来是被过去完全决定的,还是存在真正的随机性?
循环性vs线性性:时间是循环的(季节性、周期性)还是线性的(趋势性)?
时间序列分解的哲学含义:
观察值 = 趋势 + 季节性 + 周期性 + 随机误差
Y(t) = T(t) + S(t) + C(t) + ε(t)
这个分解假设现象可以被分解为几个独立的组成部分,这是一种还原主义的世界观。
主要时间序列工具:
方法类别 | 具体技术 | Python实现 | 核心假设 |
---|---|---|---|
传统方法 | ARIMA、SARIMA | statsmodels | 线性关系、平稳性 |
机器学习 | Prophet、LSTM | fbprophet、tensorflow | 非线性关系可学习 |
深度学习 | Transformer、TCN | pytorch、keras | 复杂时间依赖可建模 |
7.2 无监督学习的本体论探索
无监督学习是最接近哲学探索的机器学习方法:没有标签,没有预设答案,只有对结构的探索。
聚类分析的分类学哲学
聚类实际上是在进行分类学(Taxonomy)构建:
- 我们假设现象可以被分为离散的类别
- 我们假设相似的对象应该被归为一类
- 我们假设存在某种"自然"的分类结构
主要聚类算法的哲学假设:
算法 | 核心假设 | 发现的结构类型 | 实现工具 |
---|---|---|---|
K-Means | 球形、等大小簇 | 紧密的球形群组 | sklearn.cluster |
DBSCAN | 密度可达性 | 任意形状的密集区域 | sklearn.cluster |
层次聚类 | 嵌套结构存在 | 树状层次关系 | scipy.cluster |
高斯混合 | 多元正态分布 | 重叠的概率群组 | sklearn.mixture |
关联规则的因果推理
关联规则挖掘寻找形如"如果A则B"的规律,但我们必须警惕:
后此谬误(Post Hoc Fallacy):仅因为B跟随A发生,不意味着A导致了B。
虚假关联:两个现象的关联可能由第三个隐藏因素导致。
经典算法实现:
# Apriori算法
from mlxtend.frequent_patterns import apriori, association_rules
# 寻找频繁项集
frequent_itemsets = apriori(df, min_support=0.01, use_colnames=True)
# 生成关联规则
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.6)
八、高级主题:深度学习的黑箱哲学与可解释性
8.1 黑箱问题的认识论挑战
黑箱问题来自算法优化过程固有的复杂性,这种复杂性超越了人类认知的能力。深度学习的成功带来了新的哲学挑战:
可解释性悖论:最有效的模型往往是最不可解释的。
性能vs理解:我们是否应该为了理解而牺牲性能,还是为了性能而放弃理解?
深度学习的工具生态系统
框架类型 | 主要工具 | 特点 | 适用场景 |
---|---|---|---|
高级框架 | Keras、Fastai | 易用性强 | 快速原型开发 |
底层框架 | TensorFlow、PyTorch | 灵活性强 | 研究和生产 |
特定领域 | Transformers、OpenCV | 专业性强 | NLP、计算机视觉 |
可解释性 | LIME、SHAP、Captum | 解释性强 | 模型解释 |
可解释AI的哲学意义
可解释人工智能(XAI)不仅是技术需求,更是人类理解世界方式的延续:
# SHAP解释示例
import shap
# 创建解释器
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
# 可视化解释
shap.summary_plot(shap_values, X_test)
8.2 大模型时代的新挑战
大语言模型(LLM)和基础模型的出现带来了新的哲学问题:
涌现现象:当模型规模达到临界点时,会出现训练时未明确教授的能力。这如何可能?
对齐问题:如何确保AI系统的目标与人类价值观一致?
知识的本质:LLM学到的是知识还是统计模式?
九、实战应用与项目管理的系统思维
9.1 端到端数据科学项目的复杂性
真实的数据科学项目远比教科书描述的复杂。它涉及:
技术栈的选择哲学
不同工具体现了不同的设计哲学:
工具类别 | 代表工具 | 设计哲学 | 适用情况 |
---|---|---|---|
数据处理 | Pandas、Polars、Dask | 表格思维vs大数据思维 | 数据规模不同 |
机器学习 | Scikit-learn、XGBoost、LightGBM | 通用性vs专业性 | 问题复杂度不同 |
深度学习 | TensorFlow、PyTorch、JAX | 易用性vs灵活性 | 开发阶段不同 |
可视化 | Matplotlib、Plotly、Streamlit | 静态vs交互 | 目标受众不同 |
部署平台 | Docker、Kubernetes、MLflow | 标准化vs定制化 | 运维需求不同 |
完整项目流程示例
# 1. 数据获取与理解
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
import mlflow
# 2. 实验跟踪
mlflow.start_run()
# 3. 数据预处理
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 4. 模型训练
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train_scaled, y_train)
# 5. 评估与记录
y_pred = model.predict(X_test_scaled)
accuracy = accuracy_score(y_test, y_pred)
mlflow.log_metric("accuracy", accuracy)
mlflow.sklearn.log_model(model, "model")
mlflow.end_run()
9.2 项目管理的认知偏误
数据科学项目管理面临独特的认知挑战:
计划谬误
定义:系统性地低估完成任务所需的时间、成本和风险。
在数据科学中的表现:
- 低估数据清洗的工作量(通常占80%时间)
- 高估算法调优的效果
- 忽视部署阶段的复杂性
确认偏误在模型选择中的体现
- 过度关注验证集上的性能提升
- 忽视模型的业务可解释性
- 偏爱复杂的最新算法
沉没成本谬误
- 已投入大量时间的方法不愿放弃
- 明知效果不佳仍继续优化
- 忽视简单baseline的价值
十、批判性思维与多角度分析框架
10.1 5W3H在数据挖掘中的应用
优秀的数据挖掘者应该具备批判性思维,能够从多个角度审视问题:
What(什么)
- 我们真正要解决的问题是什么?
- 成功的定义是什么?
- 什么是我们的假设?
Why(为什么)
- 为什么这个问题重要?
- 为什么现有方法不够好?
- 为什么我们相信数据能解决这个问题?
Who(谁)
- 谁是最终用户?
- 谁会受到模型决策的影响?
- 谁负责模型的维护?
When(何时)
- 什么时候需要结果?
- 模型何时需要更新?
- 数据的时效性如何?
Where(何处)
- 模型将在哪里部署?
- 数据来自哪里?
- 约束条件在哪里?
How(如何)
- 如何评估成功?
- 如何处理失败?
- 如何确保公平性?
How much(多少)
- 需要多少数据?
- 能够容忍多少错误?
- 预算限制是多少?
How many(多少个)
- 需要多少个特征?
- 有多少种不同的场景?
- 需要支持多少用户?
10.2 四因分析法在数据挖掘中的应用
亚里士多德的四因说为我们提供了深度分析的框架:
质料因(Material Cause):数据本身
- 数据的来源、质量、完整性
- 数据的偏见、局限性
- 数据的表示方式
形式因(Formal Cause):模型结构
- 算法的选择逻辑
- 特征的组织方式
- 模型的架构设计
动力因(Efficient Cause):推动力量
- 业务驱动力
- 技术可行性
- 团队能力
目的因(Final Cause):最终目标
- 商业价值
- 社会影响
- 长远愿景
十一、螺旋上升的学习哲学
11.1 从做中学的实践智慧
数据挖掘的掌握需要实践智慧(Phronesis),这是亚里士多德提出的概念,指在具体情境中做出正确判断的能力。
新手 vs 专家的思维差异
维度 | 新手思维 | 专家思维 |
---|---|---|
问题理解 | 关注技术细节 | 关注业务本质 |
工具选择 | 追求最新最复杂 | 选择最适合的 |
评估方法 | 单一指标导向 | 多维度综合考虑 |
错误处理 | 避免失败 | 从失败中学习 |
知识更新 | 线性积累 | 螺旋式深化 |
培养批判性思维的实践方法
- 质疑假设:每个分析都要问"如果假设不成立会怎样?"
- 寻找反例:主动寻找与结论相矛盾的证据
- 考虑偏见:识别数据、算法、人员中的各种偏见
- 多角度验证:从不同角度验证同一个结论
- 保持谦逊:承认不确定性,接受错误的可能性
11.2 终身学习的哲学态度
数据挖掘领域变化迅速,需要培养终身学习的哲学态度:
知识的半衰期:在快速变化的技术领域,知识的有效期越来越短。
学习如何学习:掌握学习方法比掌握具体知识更重要。
保持好奇心:对新技术、新方法、新观点保持开放态度。
构建个人知识体系
- 基础理论:数学、统计学、计算机科学基础
- 技术技能:编程、工具使用、算法实现
- 领域知识:行业理解、业务洞察
- 软技能:沟通、协作、项目管理
- 哲学思维:批判性思考、价值判断、伦理考量
结语:数据挖掘的智慧之路
数据挖掘不仅仅是一种技术,更是一种认识世界的方式、一种思维的训练、一种智慧的修炼。在这个过程中,我们不断地在确定性与不确定性之间寻找平衡,在简单性与复杂性之间寻找最优解,在技术可能性与伦理责任之间寻找正确的道路。
真正的数据挖掘专家应该具备:
- 技术深度:掌握扎实的数学、统计、编程基础
- 业务理解:能够将技术转化为业务价值
- 哲学思辨:具备批判性思维和多角度分析能力
- 伦理觉悟:考虑技术应用的社会影响和道德责任
- 学习能力:在快速变化的领域中持续成长
数据挖掘的循环本质告诉我们,这是一个永无止境的探索过程。每一次迭代都会带来新的发现、新的问题、新的挑战。我们需要保持初学者的心态,在每一个项目中都能发现新的洞察,在每一次失败中都能获得新的智慧。
最终,数据挖掘的最高境界不是技术的炫技,而是智慧的运用;不是算法的复杂,而是洞察的深刻;不是预测的准确,而是决策的正确。这需要我们不断地修炼自己的技术能力、业务理解、哲学思辨和道德品格,在数据的海洋中找到通向智慧的航路。
专业术语表
ANFIS (自适应神经模糊推理系统):结合神经网络和模糊逻辑的混合智能系统,能够从数据中学习模糊规则
偏差-方差权衡 (Bias-Variance Tradeoff):机器学习中模型复杂度与泛化能力之间的根本平衡关系
概念漂移 (Concept Drift):目标变量与输入特征之间关系随时间发生的变化现象
CRISP-DM:跨行业数据挖掘标准流程,包含业务理解、数据理解、数据准备、建模、评估、部署六个阶段
数据窥探偏误 (Data Snooping Bias):因反复使用同一数据集进行模型选择和调优而产生的过度拟合现象
维度诅咒 (Curse of Dimensionality):在高维空间中,数据变得稀疏,距离概念失效,算法性能下降的现象
特征工程 (Feature Engineering):使用领域知识创建、选择和转换特征以提高机器学习模型性能的过程
KDD (知识发现在数据库):从数据库中发现有用知识的完整过程,包括选择、预处理、转换、数据挖掘和解释评估
不可知科学 (Agnostic Science):不依赖先验假设或理论,直接从数据中发现模式的科学方法
奥卡姆剃刀 (Occam’s Razor):在能够解释相同现象的理论中,应选择最简单的那个
过拟合 (Overfitting):模型过度学习训练数据的细节和噪声,导致在新数据上性能下降的现象
实践智慧 (Phronesis):在具体情境中运用知识做出正确判断的能力
正则化 (Regularization):通过向损失函数添加惩罚项来防止过拟合的技术
目标泄露 (Target Leakage):模型无意中获得了关于预测目标的未来信息,导致不现实的高性能
欠拟合 (Underfitting):模型过于简单,无法捕获数据中的重要模式,在训练和测试数据上都表现不佳
可解释人工智能 (XAI):致力于使AI系统的决策过程透明和可理解的研究领域