<p><a href="https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.html" rel="nofollow noreferrer">documentation</a>可以说是您在此类问题中最好的朋友;从这个简单的示例中可以明显看出,您既不应该使用<code>for</code>循环,也不应该使用对<code>fit</code>的调用。调整示例以使用<code>KFold</code>方法:</p>
<pre><code>from sklearn.model_selection import KFold, cross_validate
from sklearn.datasets import load_boston
from sklearn.tree import DecisionTreeRegressor
X, y = load_boston(return_X_y=True)
n_splits = 5
kf = KFold(n_splits=n_splits, shuffle=True)
model = DecisionTreeRegressor()
scoring=('r2', 'neg_mean_squared_error')
cv_results = cross_validate(model, X, y, cv=kf, scoring=scoring, return_train_score=False)
cv_results
</code></pre>
<p>结果:</p>
^{pr2}$
<blockquote>
<p>how can I create confusion matrix? Do I need to create it for each fold</p>
</blockquote>
<p>没有人能告诉你你是否需要为每一个折叠创建一个混淆矩阵-这是你的选择。如果您选择这样做,最好跳过<code>cross_validate</code>并“手动”执行程序-请参阅<a href="https://stackoverflow.com/questions/53531167/how-to-display-confusion-matrix-and-report-recall-precision-fmeasure-for-eac/55050146#55050146">How to display confusion matrix and report (recall, precision, fmeasure) for each cross validation fold</a>中的答案。在</p>
<blockquote>
<p>if yes, how can the final/average confusion matrix be calculated? </p>
</blockquote>
<p>不存在“最终/平均”混淆矩阵;如果您想计算除链接答案中描述的<code>k</code>个(每个k折一个)之外的任何内容,则需要有一个单独的验证集。。。在</p>