关于AI+实验室
AI+实验室处理两类数据:一是结构化数据(表格数据),二是图结构数据。这两类数据在现实中非常常见,处理方法和影像、时序都不同。
结构化数据就是Excel表格那种形式的数据,图结构数据包括社交网络、分子结构、知识图谱、交通网络等。
点击图片可放大查看完整课程结构
第一部分:结构化数据处理
这节课讲什么
教你怎么处理表格形式的数据。对于结构化数据,特征工程往往比模型选择更重要。好的特征工程能让简单模型也有很好的效果。
重要提示
对于表格数据,传统机器学习方法(XGBoost、LightGBM)往往比深度学习效果更好。不要一上来就想着用神经网络,先把特征工程做好,用树模型跑一跑。
数值特征处理
- 缺失值处理:均值填充、中位数填充、众数填充、模型预测填充
- 异常值处理:截断、删除、分箱
- 归一化/标准化:MinMaxScaler、StandardScaler、RobustScaler
- 分箱:把连续值转换成离散区间
- 数学变换:对数变换、开方变换、Box-Cox变换
类别特征处理
- Label Encoding:把类别转成数字编码
- One-Hot Encoding:把类别转成独热向量
- Target Encoding:用目标变量的统计值编码
- 频率编码:用类别出现的频率编码
- 高基数类别特征的处理方法
时间特征处理
- 提取年、月、日、星期几、小时等
- 是否周末、是否节假日
- 距离某个时间点的天数
- 周期性编码(sin/cos变换)
特征构造
- 交叉特征:两个特征的组合
- 多项式特征:特征的平方、立方等
- 聚合特征:按某个维度的统计值(均值、计数等)
- 差值特征、比值特征
特征选择
- 过滤法:方差选择、相关系数、卡方检验、互信息
- 包装法:递归特征消除RFE
- 嵌入法:L1正则化、树模型的特征重要性
怎么学这节课
找一个Kaggle的表格数据竞赛,从数据探索到特征工程完整做一遍。看看Top方案都做了哪些特征工程,学习他们的思路。
这节课讲什么
教你表格数据的首选模型:梯度提升树系列。XGBoost和LightGBM是处理表格数据最强的工具,必须熟练掌握。
XGBoost
- 梯度提升的原理:通过拟合残差不断改进
- XGBoost的改进:正则化、列采样、并行计算
- 重要参数:n_estimators、max_depth、learning_rate、min_child_weight、subsample、colsample_bytree
- 调参技巧:先调树的数量和学习率,再调正则化参数
LightGBM
- 和XGBoost的区别:基于直方图的算法,速度更快
- 叶子优先的生长策略
- 对类别特征的原生支持
- 重要参数:num_leaves、max_depth、learning_rate、feature_fraction、bagging_fraction
CatBoost
- 对类别特征处理更好
- Ordered Target Statistics
- 适合类别特征多的数据
模型融合
- Voting:多个模型投票
- Averaging:多个模型取平均
- Stacking:用一个模型学习其他模型的预测结果
- Blending:类似Stacking,但用holdout集
怎么学这节课
在一个数据集上把XGBoost和LightGBM都跑一遍,体验调参的过程。用Optuna做超参数搜索。参加一个Kaggle竞赛,看看自己能排到什么名次。
表格数据竞赛常见套路
- 做好数据清洗和特征工程
- 用交叉验证评估模型效果
- 多训练几个不同参数的模型
- 用Stacking或Blending融合模型
第二部分:图神经网络
这节课讲什么
教你图神经网络的基本原理。GNN是处理图结构数据的核心方法,近年来在学术界非常热门。
图的基本概念
- 节点(Node)和边(Edge)
- 邻接矩阵(Adjacency Matrix):表示节点之间的连接关系
- 度矩阵(Degree Matrix):每个节点有多少条边
- 特征矩阵(Feature Matrix):每个节点的特征向量
- 有向图和无向图
- 同构图和异构图
消息传递机制
核心概念
GNN的核心思想是:每个节点通过聚合邻居节点的信息来更新自己的表示。这个过程叫做消息传递(Message Passing)。不同的GNN模型,区别主要在于怎么聚合邻居信息。
- 消息(Message):邻居节点传递过来的信息
- 聚合(Aggregate):把邻居的消息合并起来(求和、平均、最大值等)
- 更新(Update):用聚合后的信息更新节点表示
GCN(图卷积网络)
- 最基础的GNN模型,必须掌握
- 用归一化的邻接矩阵做卷积
- 每一层聚合一阶邻居,两层就是二阶邻居
- 公式:H' = σ(D^(-1/2) A D^(-1/2) H W)
- 实现简单,效果不错
GAT(图注意力网络)
- 用注意力机制聚合邻居
- 不同邻居的重要性不同,让模型自己学习权重
- 多头注意力:多组注意力并行
- 比GCN更灵活,效果通常更好
GraphSAGE
- 采样聚合:不用所有邻居,采样固定数量的邻居
- 可以处理大规模图
- 支持多种聚合方式:mean、pool、LSTM
PyG框架
- PyTorch Geometric:图神经网络的主流框架
- Data类:怎么表示一个图
- MessagePassing类:怎么自定义GNN层
- 常用数据集:Cora、CiteSeer、PubMed等
怎么学这节课
先理解消息传递的原理,不需要推导公式,但要理解GNN是怎么聚合邻居信息的。然后用PyG在Cora数据集上跑通GCN和GAT,理解代码的写法。自己动手实现一个简单的GCN。
这节课讲什么
教你怎么把GNN用到实际任务中,不同的任务有不同的处理方式。
节点分类
预测图中每个节点的类别。
- 半监督学习:只有部分节点有标签
- 直接用GNN输出的节点表示做分类
- 应用:论文分类、用户分类、蛋白质功能预测
链接预测
预测两个节点之间是否存在边。
- 用两个节点的表示计算分数(内积、MLP等)
- 需要构造负样本(不存在的边)
- 应用:推荐系统、知识图谱补全、社交网络好友推荐
图分类
预测整个图的类别。
- 需要把节点表示聚合成图表示(Readout)
- 常用聚合方式:全局平均池化、全局最大池化、求和
- 应用:分子属性预测、蛋白质分类
应用场景详解
- 社交网络分析:用户分类、社区发现、虚假账号检测、影响力预测
- 分子属性预测:药物发现、毒性预测、溶解度预测。原子是节点,化学键是边
- 知识图谱:实体关系预测、知识推理、问答系统
- 推荐系统:用户-物品二部图上的推荐
- 交通预测:路网图上的流量预测,结合时序和图
怎么学这节课
根据你的研究方向选一个应用场景,完整做一个项目。比如做分子属性预测,就用OGB数据集;做推荐系统,就用MovieLens数据集。
进阶内容
- 异构图神经网络:处理有多种类型节点和边的图,如HAN、HGT
- 时空图神经网络:处理动态变化的图,结合时序和图结构,如STGCN
- 图Transformer:把Transformer引入图神经网络
- 自监督图学习:用对比学习等方法进行图的预训练
- 可解释性:理解GNN学到了什么
常见改进方向
- 深层GNN:解决过平滑问题(残差连接、DropEdge、PairNorm)
- 大规模图训练:采样方法(GraphSAGE、ClusterGCN、GraphSAINT)
- 引入注意力机制:更好地聚合邻居信息
- 边特征建模:利用边上的信息
AI+实验室学完之后
到这里,AI+实验室的核心内容就学完了。接下来你可以:
1. 如果做结构化数据,继续深入学习特征工程和模型融合技巧
2. 如果做图数据,根据应用场景深入学习对应的GNN变体
3. 如果需要更高级的技术,可以去学习前沿技术部分