gpt4 book ai didi

algorithm - 在 scikit-learn 中使用什么估算器?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:33 26 4
gpt4 key购买 nike

这是我第一次接触机器学习,所以我想弄清楚这一切是如何工作的。我有一个数据集,其中汇总了每个球员的所有统计数据,以便与我的高中棒球队一起比赛。我还有一份名单,上面列出了我高中时进入美国职棒大联盟的所有球员。我想做的是将数据分成训练集和测试集,然后将其提供给 scikit-learn 包中的某种算法并预测制作 MLB 的概率。

因此,我查看了许多资源,发现了建议我从线性 SVC 开始的备忘单。 SciKitLearn Cheat Sheet

因此,据我了解,我需要将我的数据分解为训练样本,其中每一行都是一名球员,每一列都是关于球员的一段数据(安打率、上垒率、yada、yada),X_train ;以及每个球员单行的相应真值矩阵,它只是 1(在 MLB 中打过球)或 0(没有在 MLB 中打过球),Y_train。从那里开始,我只需执行 Fit(X,Y),然后我可以使用 predict(X_test) 来查看它是否获得正确的 Y_test 值。

这看起来是算法、方法和应用程序的合乎逻辑的选择吗?

编辑以提供更多信息:数据由出场场数、安打数、本垒打数、三振出局数等20个特征组成,大部分是球员职业生涯的基本统计;一些是击球率,例如安打率。

我总共有大约 10k 行要处理,所以我可以根据它拆分数据;但我不知道如何以最佳方式拆分数据,因为 <1% 已经成为 MLB。

最佳答案

好的,这里有几个可能需要做的步骤:

  1. 准备您的数据集。在实践中,您可能想要缩放功能,但我们将不考虑它以使第一个工作模型尽可能简单。因此只需要将数据集拆分为测试/训练集。您可以手动打乱记录并将前 X% 的示例作为训练集,但 scikit-learn 库中已经有一个函数:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html .您可能想要确保两者:正例和负例都存在于训练和测试集中。为此,您可以在测试/训练拆分之前将它们分开,以确保 70% 的负样本和 70% 的正样本进入训练集。

  2. 让我们选择一个简单的分类器。我将在这里使用逻辑回归:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html ,但其他分类器也有类似的 API。

  3. 创建分类器并对其进行训练很容易:

    clf = LogisticRegression()
    clf.fit(X_train, y_train)
  4. 现在是时候做出我们的第一个预测了:

    y_pred = clf.predict(X_test)
  5. 模型的一个非常重要的部分是它的评估。这里使用accuracy并不是一个好主意:正例的数量很少,所以无条件返回0的模型可以获得很高的分数。我们可以改用 f1 分数:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html .

  6. 如果您想预测概率而不是标签,您可以只使用分类器的 predict_proba 方法。

就是这样。我们有一个工作模型!当然,您可以尝试改进很多东西,例如缩放特征、尝试不同的分类器、调整它们的超参数,但这应该足以开始。

关于algorithm - 在 scikit-learn 中使用什么估算器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40271269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com