sklearn中准确率的含义

我正在进行一个项目,预测体育赛事的结果。为此,我预测单个赛事的赢家和输家,然后根据预测下注。如果考虑所有赛事,我的策略在59%的赛事中能获得正收益。

我想只在预期能赢的赛事上下注。为此,我使用sklearn将赛事分类为预期能盈利和亏损的赛事,然后只在被分类为盈利赛事上进行下注。我的模型准确率为0.60,并且通过以下代码生成和测试:

knn = KNeighborsClassifier(n_neighbors = 6)knn.fit(df_classifier, data_indicator)y = data_indicator.valuesX = df_classifier.valuesX_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_matrixprint(confusion_matrix(y_test, y_pred))

查看更多详情,请访问:https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix希望这对你有帮助。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注