ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ML-For-Beginners 分类练习实战指南:用课程数据集匹配 Scikit-learn 算法完成分类方法探索

ML-For-Beginners 分类练习实战指南:用课程数据集匹配 Scikit-learn 算法完成分类方法探索 ML-For-Beginners 分类练习实战指南用课程数据集匹配 Scikit-learn 算法完成分类方法探索【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners本文围绕 ML-For-Beginners 分类模块第一课的作业《Explore classification methods》展开。该作业要求你在 Scikit-learn 监督学习文档中做一场分类方法寻宝从课程自带的数据集中挑选一个、为它提出一个可以回答的问题、再匹配一种分类技术最终产出覆盖 35 种算法、解释详尽的对比表格。读完本篇你将掌握如何盘点仓库中的五个真实数据集、判断它们适合二分类还是多分类、为每个数据集设计可验证的分类问题并按作业评分标准Rubric产出一份完整的算法-数据集匹配表。作业原始要求Scavenger Hunt 式的分类方法探索作业定义在 assignment.md 中核心指令是一段寻宝任务In Scikit-learn documentation youll find a large list of ways to classify data. Do a little scavenger hunt in these docs: your goals is to look for classification methods and match a dataset in this curriculum, a question you can ask of it, and a technique of classification. Create a spreadsheet or table in a .doc file and explain how the dataset would work with the classification algorithm.拆解开来交付物包含四个必须齐全的要素一个分类方法来自 Scikit-learn 官方文档Supervised learning监督学习章节中列出的分类技术清单一个课程数据集必须是本仓库课程中真实使用过的数据集而非随意下载的新数据一个可以问数据集的问题即该数据集上的具体分类目标例如给定一组特征它属于哪一类一份说明文档用电子表格或 .doc 文件中的表格解释该数据集是如何与该分类算法配合工作的。这不是要求你训练出最准确的模型而是考察**数据集-问题-算法三者之间的匹配能力**能否根据数据形态类别数、特征类型、样本量选择合适的分类技术。分类问题分为二分类binary与多分类multiclass两大族这是匹配算法前先要回答的第一个问题。评分标准Exemplary 线要求覆盖 5 种算法作业附带了一张明确的 Rubric 表格建议直接按其达标线规划工作量CriteriaExemplaryAdequateNeeds Improvement分类方法探索提交一份概览文档覆盖 5 种算法及其对应分类技术解释详尽且有深度提交一份概览文档覆盖 3 种算法及其对应分类技术解释详尽且有深度覆盖少于 3 种算法且解释既不详尽也不深入由此得到两条可操作建议数量底线至少写满 3 种算法才能达到 Adequate建议直接按 Exemplary 标准覆盖 5 种以上质量要求每种算法不能只报名字必须well-explained and detailed——说明它为什么适合这个数据集、输入输出是什么、预期如何评估效果。第一步盘点仓库中的候选数据集作业限定match a dataset in this curriculum所以先把仓库里课程实际使用的数据集全部列出。以下信息均来自仓库中的真实 CSV 文件与对应课程文档。1. 亚洲与印度菜肴数据集分类主数据集多分类文件 cuisines.csv共 2448 行数据、385 列。结构特征cuisine列是标签只有 5 个取值korean(799)、indian(598)、chinese(442)、japanese(320)、thai(289)其余 383 列全部是 0/1 编码的食材特征almond、garlic、ginger、lemongrass…每行代表一道菜用了哪些食材。这正是一个典型的多分类、类别不均衡、高维稀疏二值特征问题给定一组食材判断这道菜属于哪个菜系。可提的问题例如给定一篮子食材它最可能是一道泰式菜还是韩式菜 或降维为二分类这份食材清单会不会做出一道印度菜是/否cuisines.csv中五个菜系的样本量分布明显不均korean 799 对 thai 289这正是分类第一课要求先用 SMOTE 均衡的原因。该数据集在第一课 1-Introduction/README.md 中完成了清洗与 SMOTE 均衡产出 3995 行的 cleaned_cuisines.csv五个菜系各 799 行后续两节分类课2-Classifiers-1、3-Classifiers-2都基于它做模型对比——它是本作业最顺手的主料。2. 美国南瓜市场价格数据适合二分类/多分类的改造US-pumpkins.csv 共 1756 行字段包括Date、Low Price、High Price、Variety、Origin、Item Size、Color等。它原本用于回归预测价格但可以自然改造成分类问题例如按Origin产地州做多分类或按High Price 是否超过某阈值构造二分类标签高价/低价。这演示了同一数据集可以问不同类别的问题。3. UFO 目击报告数据适合二分类ufos.csv 共 80332 行字段包括shape、duration (seconds)、comments、latitude、longitude等。可用的分类问题按shapecylinder、light、sphere、triangle…做多分类识别目击物形状或构造二分类事件时长是否超过 1 小时。样本量大、类别明确适合练习文本特征comments分词/计数与数值特征混合的分类场景。4. 尼日利亚歌曲数据分类与聚类的交界nigerian-songs.csv 共 530 行含artist_top_genre、danceability、energy、acousticness、tempo等音频特征。它原本用于聚类课但artist_top_genre是现成的类别标签完全可拿来做给定音频特征向量预测歌曲流派的多分类练习。5. 电网能耗时间序列适合按日模式分类energy.csv 共 26304 行记录月度能耗。可以构造弱分类问题按工作日/周末或季节对样本打标签后用历史特征做模式分类。这个例子能帮助你说明并非所有数据集都天然适合分类有些要先做标签工程——这本身就是 Rubric 要求解释算法如何与数据集工作的好素材。第二步为数据集设计问题——先分清二分类与多分类作业要求写出a question you can ask of it。写问题前先套用第一课的核心区分见 README.md 的引入部分二分类标签只有两个值。例如这封邮件是不是垃圾邮件南瓜价格是不是高价档多分类标签有 3 个及以上值。例如这道菜属于哪个菜系这个 UFO 目击报告的形状类别是什么。一个实用的检验方法看标签列的取值数。cuisine有 5 个取值 → 多分类如果人为把 5 个菜系合并成含大量香料的菜系 / 其他两组就变成了二分类。同一个数据集两种问法匹配到的算法与评估指标都会不同写进文档时这种对比会直接体现well-explained。第三步从 Scikit-learn 分类技术清单中挑选算法Scavitger hunt 的宝藏位于 Scikit-learn 官方文档的 supervised learning 章节。结合本仓库后续课程的真实用法可以从各课 solution notebook 中确认建议优先考察以下算法它们正好满足 Exemplary 的 5 种要求算法课程中的实际出处适配的数据形态LogisticRegression逻辑回归2-Classifiers-1 课程 import 与 solution notebook线性可分性较好、特征数量中等的二/多分类multinomial 目标cuisines 的 0/1 食材特征正是典型输入SVC支持向量机同上课程与LogisticRegression对照训练中高维特征空间、样本量中等边界复杂时可用核技巧KNeighborsClassifierK 近邻3-Classifiers-2 solution notebook无需训练阶段、直观可解释特征最好先做尺度统一RandomForestClassifier随机森林同上课程 solution notebook高维稀疏特征、存在噪声列自带特征重要性输出决策树 / Naive Bayes 等自选补充Scikit-learn 监督学习文档清单决策树适合可解释性优先的场景朴素贝叶斯适合独立假设较强的计数类特征写文档时每种算法建议固定回答三句话它属于哪一类分类技术线性模型/核方法/集成/实例学习…、它接收什么样的特征与标签、在所选数据集上你预期它会好在哪、差在哪。这第三句是well-explained的关键。第四步交付物模板——一份可直接套用的匹配表把上面三步的产出合并作业的 .doc/电子表格文档可以用如下表格骨架填充示例行基于仓库真实数据供参考格式不代表唯一正确答案Dataset课程数据集Question分类问题Technique分类技术How it works算法与数据如何配合cuisines.csv给定 383 个 0/1 食材特征这道菜属于 5 个菜系中的哪一个多分类LogisticRegression输入是均衡后 cleaned_cuisines.csv 的食材矩阵标签为cuisine线性边界在多分类下按 multinomial 方式输出各类概率用train_test_split留出测试集后以 accuracy / classification_report 评估同上给定食材清单是否为一印度菜二分类SVC二分类下 SVM 找最大间隔超平面0/1 稀疏特征维度高核选择影响显著可与逻辑回归对照准确率US-pumpkins.csv该笔南瓜交易属于哪个产地OriginRandomForestClassifier日期、价格区间、品种、尺寸等混合特征树模型可处理缺失值与不同量纲且能输出产地预测的特征重要性ufos.csv目击报告的shape属于哪一类KNeighborsClassifier将时长、坐标等数值化特征统一尺度后以 K 个最近邻投票判定形状类别样本量大8 万余条建议抽样训练nigerian-songs.csv给定音频特征向量预测artist_top_genre流派自选如决策树或朴素贝叶斯说明所选技术如何消费 danceability/energy/tempo 等特征并指出与聚类课用法无标签的差异填表时注意两点一是Question列要写出具体的预测目标预测哪一列而不是泛泛的分类这个数据二是How it works列要落到特征与标签的衔接方式上例如 cuisines 场景中cuisine列为标签、其余 0/1 列为特征评估时用accuracy_score、confusion_matrix、classification_report等指标这些 import 可见于 2-Classifiers-1/README.md 的代码段。最小可运行验证在 cuisines 上走通一次分类流程为了让表格中的how it works不流于纸面可以在课程配套 notebook 中跑通最小流水线。以下代码组件库 import、标签切分方式与 2-Classifiers-1 课程的 solution 一致import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, classification_report cuisines_df pd.read_csv(4-Classification/data/cleaned_cuisines.csv) labels cuisines_df[cuisine] # 标签5 个菜系 features cuisines_df.drop(cuisine, axis1) # 特征0/1 食材矩阵 X_train, X_test, y_train, y_test train_test_split( features, labels, test_size0.2, random_state42) model LogisticRegression(max_iter1000) model.fit(X_train, y_train) preds model.predict(X_test) print(accuracy_score(y_test, preds)) print(classification_report(y_test, preds))跑通后把得到的准确率与报告中各菜系的 precision/recall 填进你的表格how it works列即从我认为它适合升级为它实测如何。后续课程2-Classifiers-1、3-Classifiers-2 的 solution notebook还演示了SVC、KNeighborsClassifier、RandomForestClassifier的同类流程可直接照抄替换model ...一行完成对比实验。交付前自检清单算法数量表格是否覆盖 5 种分类技术Exemplary 线至少 3 种Adequate 线四要素齐全每一行是否同时含课程数据集 具体问题 分类技术 工作方式解释数据集合法性所选数据集是否全部来自本仓库的data目录cuisines、US-pumpkins、ufos、nigerian-songs、energy 等而非外部下载问题类型标注每个问题是否明确标出了二分类或多分类深度而非罗列每种算法是否解释了为什么这个数据集适合/不适合它而不是只写算法名可选加分是否跑通了最小流水线用实测指标accuracy、confusion matrix佐证了至少一行结论完成以上检查这份作业就从算法名词清单变成了数据集驱动的技术选型文档——这正是分类模块第一课希望你在进入 More classifiers 与 Yet other classifiers 之前建立起来的思维方式。【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表