一、Python 库导入与简介
1. Numpy
- 提供多维数组对象和操作。
2. Pandas
- 高性能、易用的数据结构,用于数据分析。
3. CatBoost
- 机器学习库,擅长分类和回归任务。
4. Scikit-learn
- model_selen:模型选择方法,如交叉验证。
- metrics:模型性能评估指标。
5. RDKit
- 化学信息学和机器学习软件,处理化学结构。
6. Tqdm
- 长循环中添加进度条的库。
7. 其他库
- `sys`, `os`, `gc`, `re`, `argparse`, `warnings`:提供系统交互、正则表达式处理等功能。
二、数据预处理
1. 数据读取
- 使用 Pandas 读取 Excel 文件。
2. 数据清洗
- 删除含有大量缺失值的列。
- 合并训练集和测试集,便于统一处理。
三、特征工程
1. SMILES 转换
- 使用 RDKit 将 SMILES 字符串转换为分子对象,并重新转换为规范化的 SMILES 字符串列表。
2. TF-IDF 特征提取
- 使用 TfidfVectorizer 从 SMILES 字符串创建特征矩阵。
3. 自然数编码
- 对分类特征进行整数编码。
4. 特征和标签准备
- 筛选特征列,分离训练集和测试集,提取标签列。
四、模型训练与预测
1. 交叉验证
- 使用 KFold 实现 5 折交叉验证。
2. CatBoost 分类器
- 设置参数,训练模型,评估性能。
3. 预测与提交
- 使用测试集特征进行预测,生成提交文件。
五、TF-IDF 学习
1. 概念
- 评估词条在文档集中的重要性。
2. 应用
- 文本挖掘、信息检索、特征提取。
3. 使用步骤
- 文本预处理、分词、计算 TF 和 IDF、计算 TF-IDF。
4. Python 实现
- 使用 scikit-learn 的 TfidfVectorizer。
六、交叉验证学习
1. 目的
- 评估模型泛化能力,减少过拟合。
2. 类型
- K-折、留一法、分层、时间序列。
3. 步骤
- 分割数据、训练测试、性能评估。
七、CatBoost 学习
1. 特点
- 自动处理类别特征,处理缺失值,梯度提升算法。
2. 使用步骤
- 数据准备、创建模型、设置参数、训练评估、应用模型。
3. 示例代码
- 展示 CatBoost 分类器的使用。
八、注意事项
- 确保安装 CatBoost 库。
- 根据问题调整参数优化性能。
- 注意训练速度和内存消耗。
基线模型概述
- 基线模型是数据分析和机器学习的起点,通常使用简单的算法或方法建立。
- 基线模型为我们提供了一个性能基准,以评估更复杂模型的效果。
数据处理
- 探索性数据分析:深入理解数据分布,识别异常值和潜在的数据问题。
- 特征清洗:进一步优化缺失值处理和异常值剔除策略。
- 数据标准化:考虑是否需要对数值特征进行标准化或归一化。
个人感悟与学习记录
- 数据理解的重要性:深入理解数据是改进模型的第一步。
- 持续学习:机器学习领域不断发展,持续学习新的算法和技术至关重要。
- 实验记录:记录每次实验的设置和结果,方便追踪改进效果。
**总结**:笔记涵盖了 Python 数据分析与机器学习的关键库和流程,包括数据预处理、特征工程、模型训练与评估,以及 TF-IDF 和交叉验证的基本概念和应用。特别强调了 CatBoost 分类器的使用和优势,适合处理具有类别特征的数据集。