Python 准确性对sklearn的意义

Python 准确性对sklearn的意义,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我正在做一个预测体育赛事结果的项目。为此,我预测单个事件的赢家和输家。然后我根据这一点下注。如果我考虑所有的事件,我的策略在59%的事件中得到肯定的回报。 我只想在我希望获胜的赛事上下注。为此,我使用sklearn将事件分为我期望盈利的事件和我将亏损的事件。然后,我将只在属于盈利活动的活动上下注。我的模型的精度为0.60,使用以下代码进行生产和测试: knn = KNeighborsClassifier(n_neighbors = 6) knn.fit(df_classifier, data_i

我正在做一个预测体育赛事结果的项目。为此,我预测单个事件的赢家和输家。然后我根据这一点下注。如果我考虑所有的事件,我的策略在59%的事件中得到肯定的回报。 我只想在我希望获胜的赛事上下注。为此,我使用sklearn将事件分为我期望盈利的事件和我将亏损的事件。然后,我将只在属于盈利活动的活动上下注。我的模型的精度为0.60,使用以下代码进行生产和测试:

knn = KNeighborsClassifier(n_neighbors = 6)
knn.fit(df_classifier, data_indicator)
y = data_indicator.values
X = df_classifier.values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 21, stratify = y)
knn = KNeighborsClassifier(n_neighbors = 300)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
knn.score(X_test,y_test) 
根据我的理解,准确度是它正确预测的事件数量。因此,如果正确和不正确的预测平均分布在每个结果(盈利和非盈利事件)上,那么20%的盈利事件将被错误分类,而亏损事件也是如此

这是否意味着,如果我只在预测的盈利事件上下注,我的下注回报率会从59%提高到(59+20)%=79%?


此外,如果我的推理是正确的,是否有可能在我的胜负结果中看到正确和错误的分布。

我不理解你的逻辑,但这听起来不正确。它更像是一道数学题,而不是编程题。但只要加上这两行,你就可以看到正确和错误结果的分布:

from sklearn.metrics import confusion_matrix
print(confusion_matrix(y_test, y_pred))
有关更多详细信息,请参阅:
希望对你有所帮助。

你基本上是在做二进制分类,预测输赢。假设赢是积极的,失去了消极的阶级,你可以有四个不同的结果,你的预测:

  • 真正积极(TP):你的模型预测了胜利,事实上这是一场胜利
  • 假阳性(FP):你的模型预测了胜利,但失败了
  • 真负(TN):你的模型预测失败,事实上这是一个松散的过程
  • 假阴性(FN):你的模型预测失败,但这是一场胜利

准确度现在是(TP+TN)/(TP+FP+TN+FN),基本上所有正确的预测除以所有预测。使用这些信息,您可以查看每个类的度量(赢和输)和混淆矩阵(&),以便更深入地了解您的模型性能。如果你只赌赢或输,你就可以从中计算出你的正确概率。

这似乎不是一个编程问题或问题,它更适合统计SE或数据科学。对于每个结果的
y_检验
,如果估计它将返回利润,我会考虑结果是否盈利。预测的盈利结果有7287项,其中6297项实际产生了盈利结果。因此,我假设我已将盈利赌注从59%增加到86%。我认为这很好。