跳到主要内容
哒哒星球DADA PLANET

Skill · 已公开版本

scikit-learn · 为表格数据建立可复查的机器学习流程

使用scikit-learn组织预处理、训练、评估、调参与模型流水线。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

编辑虚构CSV字段sessions,errors,needs_help:1,4,1;2,3,1;1,2,1;3,4,1;8,0,0;7,1,0;9,0,0;6,1,0。前两列在预测时已知,目标为后续是否求助。各行独立,仅作流程示例。

输出

编辑示例 · 未运行

from io import StringIO
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix

csv = "sessions,errors,needs_help\n1,4,1\n2,3,1\n1,2,1\n3,4,1\n8,0,0\n7,1,0\n9,0,0\n6,1,0\n"
df = pd.read_csv(StringIO(csv))
X = df[["sessions", "errors"]]
y = df["needs_help"]
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.5, stratify=y, random_state=42)
model = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))
model.fit(X_train, y_train)
pred = model.predict(X_test)
print(confusion_matrix(y_test, pred, labels=[0, 1]))

检查点:目标列没有进入X;缩放器只在fit(X_train)时学习参数;这里不填写任何准确率。

方法说明

使用scikit-learn组织预处理、训练、评估、调参与模型流水线。

具体任务

建立表格分类或回归基线:明确目标与可用特征,先划分数据,再把预处理放进训练流水线。

检查评估是否混入测试信息:核对拟合位置、拆分方式和指标口径,修正评估过于乐观的来源。

必需材料

CSV或JSON训练数据及目标列说明

预测发生时已经可用的特征清单与禁止使用字段

训练测试拆分规则、评估指标和运行环境

可选材料

数据字典、缺失值规则与分组/时间字段

已有模型和评估代码

使用门槛

具备Python与基础统计知识,理解训练集和测试集区别;入口要求Python 3.11+与scikit-learn 1.7+兼容环境。

这个 Skill 额外提供的方法

把缺失处理、缩放与估计器放进Pipeline,确保每个交叉验证折只从训练部分学习预处理参数。

编辑示例(未运行)

为八条数值记录写分类流水线

任务:演示划分后拟合缩放器与分类器,不报告未运行的准确率。

输入:
编辑虚构CSV字段sessions,errors,needs_help:1,4,1;2,3,1;1,2,1;3,4,1;8,0,0;7,1,0;9,0,0;6,1,0。前两列在预测时已知,目标为后续是否求助。各行独立,仅作流程示例。

结果片段:
```python
from io import StringIO
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix

csv = "sessions,errors,needs_help\n1,4,1\n2,3,1\n1,2,1\n3,4,1\n8,0,0\n7,1,0\n9,0,0\n6,1,0\n"
df = pd.read_csv(StringIO(csv))
X = df[["sessions", "errors"]]
y = df["needs_help"]
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.5, stratify=y, random_state=42)
model = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))
model.fit(X_train, y_train)
pred = model.predict(X_test)
print(confusion_matrix(y_test, pred, labels=[0, 1]))
```

检查点:目标列没有进入X;缩放器只在fit(X_train)时学习参数;这里不填写任何准确率。

代码由编辑撰写,未执行;八条合成记录只用于理解数据边界,不构成有效模型评估。真实数据应按时间、用户或业务分组重新设计拆分。

首次任务

请使用已安装的 scikit-learn Skill。
请用我的CSV或JSON数据建立可解释的scikit-learn基线代码,先核查目标泄漏和拆分规则,不加载任何来源不明的pickle模型。
请使用我的材料:
- CSV或JSON训练数据及目标列说明:{{CSV或JSON训练数据及目标列说明}}
- 预测发生时已经可用的特征清单与禁止使用字段:{{预测发生时已经可用的特征清单与禁止使用字段}}
- 训练测试拆分规则、评估指标和运行环境:{{训练测试拆分规则、评估指标和运行环境}}
先指出缺失信息,不编造。验收要求:
1. 目标列、未来信息和标识泄漏没有进入特征。
2. 预处理在Pipeline内拟合,拆分尊重时间或分组关系。
3. 评估只使用未参与训练的数据,并保存指标定义、样本数和版本;不展示未运行分数。

验收方法

目标列、未来信息和标识泄漏没有进入特征。

预处理在Pipeline内拟合,拆分尊重时间或分组关系。

评估只使用未参与训练的数据,并保存指标定义、样本数和版本;不展示未运行分数。

依赖与准备

完整scikit-learn目录;Python 3.11+、scikit-learn≥1.7及兼容NumPy/SciPy,示例另用pandas。入口提到以1.8.0测试,但不等于平台实测;绘图脚本才需matplotlib/seaborn。仓库MIT与入口BSD-3-Clause应分别保留,模型文件须来自可信来源。

使用边界

小样本代码仅能展示流程,不能据此宣称生产精度或模型公平可靠。

参考评估文档含实际pickle.load;只加载可信来源模型,首次使用CSV/JSON,不反序列化陌生模型。

入口含arXiv HTTP回退,优先HTTPS且不提交私人数据;时间或同用户重复数据需合适拆分,不能默认随机划分。

本页例子由编辑撰写,未运行;不是平台兼容认证或效果测试。

排错

训练效果很好而测试很差:检查泄漏、过拟合和拆分偏差,先用更简单模型与适合的验证方式定位原因。

安装sklearn包报错:按入口安装scikit-learn,代码中才import sklearn;核对Python、NumPy和SciPy版本兼容。

固定来源

https://github.com/K-Dense-AI/scientific-agent-skills/blob/65d6e786832e2c52832713117bbbf5096b56f77f/skills/scikit-learn/SKILL.md

许可

MIT(仓库);入口声明:BSD-3-Clause license。许可原文:https://github.com/K-Dense-AI/scientific-agent-skills/blob/65d6e786832e2c52832713117bbbf5096b56f77f/LICENSE.md

仓库热度

K-Dense-AI/scientific-agent-skills 仓库 47,152 Stars(2026-09-30 核验);这是父仓库指标,不是单个 Skill 的评分。