LearningCurveDisplay#

class sklearn.model_selection.LearningCurveDisplay(*, train_sizes, train_scores, test_scores, score_name=None)[source]#

学习曲线可视化。

建议使用 from_estimator 来创建 LearningCurveDisplay 实例。所有参数都作为属性存储。

有关可视化 API 的一般信息,请参阅用户指南,有关学习曲线可视化的详细文档请参阅相关章节。

在 1.2 版中添加。

参数:
train_sizes形状为 (n_unique_ticks,) 的 ndarray

用于生成学习曲线的训练样本数量。

train_scores形状为 (n_ticks, n_cv_folds) 的 ndarray

训练集上的分数。

test_scores形状为 (n_ticks, n_cv_folds) 的 ndarray

测试集上的分数。

score_name字符串,默认值为 None

用于 learning_curve 中的分数名称。它将覆盖从 scoring 参数推断的名称。如果 scoreNone,则在 negate_scoreFalse 时使用 "Score",否则使用 "Negative score"。如果 scoring 是一个字符串或可调用对象,我们将推断其名称。我们用空格替换 _ 并将首字母大写。如果 negate_scoreFalse,我们删除 neg_ 并将其替换为 "Negative",否则直接删除。

属性:
ax_matplotlib Axes

带有学习曲线的 Axes。

figure_matplotlib Figure

包含学习曲线的 Figure。

errorbar_matplotlib Artist 列表或 None

std_display_style"errorbar" 时,这是一个 matplotlib.container.ErrorbarContainer 对象列表。如果使用其他样式,errorbar_None

lines_matplotlib Artist 列表或 None

std_display_style"fill_between" 时,这是一个 matplotlib.lines.Line2D 对象列表,对应于平均训练和测试分数。如果使用其他样式,line_None

fill_between_matplotlib Artist 列表或 None

std_display_style"fill_between" 时,这是一个 matplotlib.collections.PolyCollection 对象列表。如果使用其他样式,fill_between_None

另请参见

sklearn.model_selection.learning_curve

计算学习曲线。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import load_iris
>>> from sklearn.model_selection import LearningCurveDisplay, learning_curve
>>> from sklearn.tree import DecisionTreeClassifier
>>> X, y = load_iris(return_X_y=True)
>>> tree = DecisionTreeClassifier(random_state=0)
>>> train_sizes, train_scores, test_scores = learning_curve(
...     tree, X, y)
>>> display = LearningCurveDisplay(train_sizes=train_sizes,
...     train_scores=train_scores, test_scores=test_scores, score_name="Score")
>>> display.plot()
<...>
>>> plt.show()
../../_images/sklearn-model_selection-LearningCurveDisplay-1.png
classmethod from_estimator(estimator, X, y, *, groups=None, train_sizes=array([0.1, 0.33, 0.55, 0.78, 1.]), cv=None, scoring=None, exploit_incremental_learning=False, n_jobs=None, pre_dispatch='all', verbose=0, shuffle=False, random_state=None, error_score=nan, fit_params=None, ax=None, negate_score=False, score_name=None, score_type='both', std_display_style='fill_between', line_kw=None, fill_between_kw=None, errorbar_kw=None)[source]#

从估计器创建学习曲线显示。

有关可视化 API 的一般信息,请参阅用户指南,有关学习曲线可视化的详细文档请参阅相关章节。

参数:
estimator实现“fit”和“predict”方法的对象类型

为每次验证而克隆的该类型的对象。

X形状为 (n_samples, n_features) 的类数组对象

训练数据,其中 n_samples 是样本数量,n_features 是特征数量。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象或 None

用于分类或回归的相对于 X 的目标;无监督学习为 None。

groups形状为 (n_samples,) 的类数组对象,默认值为 None

在将数据集拆分为训练/测试集时使用的样本的分组标签。仅与“Group” cv 实例(例如 GroupKFold)结合使用。

train_sizes形状为 (n_ticks,) 的类数组对象,默认值为 np.linspace(0.1, 1.0, 5)

将用于生成学习曲线的训练样本的相对或绝对数量。如果 dtype 是浮点数,则将其视为训练集最大大小(由所选验证方法决定)的一部分,即必须在 (0, 1] 范围内。否则,它将被解释为训练集的绝对大小。请注意,对于分类,样本数量通常需要足够大,以包含每个类别至少一个样本。

cv整数、交叉验证生成器或可迭代对象,默认值为 None

决定交叉验证的分割策略。`cv` 的可能输入包括:

  • None,使用默认的 5 折交叉验证,

  • 整数,指定 (Stratified)KFold 中的折叠数量,

  • 交叉验证分割器,

  • 一个可迭代对象,生成 (训练,测试) 分割,作为索引数组。

对于整数/None 输入,如果估计器是分类器且 y 是二元或多类,则使用 StratifiedKFold。在所有其他情况下,使用 KFold。这些分割器使用 shuffle=False 实例化,因此在多次调用中分割将保持一致。

有关此处可使用的各种交叉验证策略,请参阅用户指南

scoring字符串或可调用对象,默认值为 None

计算学习曲线时使用的评分方法。选项:

exploit_incremental_learning布尔值,默认值为 False

如果估计器支持增量学习,这将用于加速不同训练集大小的拟合过程。

n_jobs整数,默认值为 None

并行运行的作业数量。估计器的训练和分数计算在不同的训练集和测试集上并行进行。None 表示 1,除非在 joblib.parallel_backend 上下文中。-1 表示使用所有处理器。更多详情请参见术语表

pre_dispatch整数或字符串,默认值为“all”

并行执行的预调度作业数量(默认为所有)。该选项可以减少分配的内存。字符串可以是“2*n_jobs”这样的表达式。

verbose整数,默认值为 0

控制详细程度:值越高,消息越多。

shuffle布尔值,默认值为 False

是否在根据 train_sizes 获取训练数据前缀之前打乱训练数据。

random_state整数、RandomState 实例或 None,默认值为 None

shuffle 为 True 时使用。传入一个整数以在多次函数调用中获得可重现的输出。参见术语表

error_score“raise”或数值,默认值为 np.nan

如果估计器拟合中发生错误,分配给分数的值。如果设置为“raise”,则抛出错误。如果给定数值,则会引发 `FitFailedWarning`。

fit_params字典,默认值为 None

传递给估计器 fit 方法的参数。

axmatplotlib Axes,默认值为 None

用于绘图的 Axes 对象。如果为 None,则创建新的图和 Axes。

negate_score布尔值,默认值为 False

是否对通过 learning_curve 获得的分数取反。这在使用 scikit-learn 中由 neg_* 表示的误差时特别有用。

score_name字符串,默认值为 None

用于装饰绘图y轴的分数名称。它将覆盖从 scoring 参数推断的名称。如果 scoreNone,则在 negate_scoreFalse 时使用 "Score",否则使用 "Negative score"。如果 scoring 是一个字符串或可调用对象,我们将推断其名称。我们用空格替换 _ 并将首字母大写。如果 negate_scoreFalse,我们删除 neg_ 并将其替换为 "Negative",否则直接删除。

score_type{"test", "train", "both"},默认值为“both”

要绘制的分数类型。可以是 "test""train""both" 之一。

std_display_style{"errorbar", "fill_between"} 或 None,默认值为“fill_between”

用于显示平均分数周围分数标准差的样式。如果为 None,则不显示标准差的表示。

line_kw字典,默认值为 None

传递给用于绘制平均分数的 plt.plot 的额外关键字参数。

fill_between_kw字典,默认值为 None

传递给用于绘制分数标准差的 plt.fill_between 的额外关键字参数。

errorbar_kw字典,默认值为 None

传递给用于绘制平均分数和标准差分数的 plt.errorbar 的额外关键字参数。

返回:
displayLearningCurveDisplay

存储计算值的对象。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import load_iris
>>> from sklearn.model_selection import LearningCurveDisplay
>>> from sklearn.tree import DecisionTreeClassifier
>>> X, y = load_iris(return_X_y=True)
>>> tree = DecisionTreeClassifier(random_state=0)
>>> LearningCurveDisplay.from_estimator(tree, X, y)
<...>
>>> plt.show()
../../_images/sklearn-model_selection-LearningCurveDisplay-2.png
plot(ax=None, *, negate_score=False, score_name=None, score_type='both', std_display_style='fill_between', line_kw=None, fill_between_kw=None, errorbar_kw=None)[source]#

绘制可视化图。

参数:
axmatplotlib Axes,默认值为 None

用于绘图的 Axes 对象。如果为 None,则创建新的图和 Axes。

negate_score布尔值,默认值为 False

是否对通过 learning_curve 获得的分数取反。这在使用 scikit-learn 中由 neg_* 表示的误差时特别有用。

score_name字符串,默认值为 None

用于装饰绘图y轴的分数名称。它将覆盖从 scoring 参数推断的名称。如果 scoreNone,则在 negate_scoreFalse 时使用 "Score",否则使用 "Negative score"。如果 scoring 是一个字符串或可调用对象,我们将推断其名称。我们用空格替换 _ 并将首字母大写。如果 negate_scoreFalse,我们删除 neg_ 并将其替换为 "Negative",否则直接删除。

score_type{"test", "train", "both"},默认值为“both”

要绘制的分数类型。可以是 "test""train""both" 之一。

std_display_style{"errorbar", "fill_between"} 或 None,默认值为“fill_between”

用于显示平均分数周围分数标准差的样式。如果为 None,则不显示标准差表示。

line_kw字典,默认值为 None

传递给用于绘制平均分数的 plt.plot 的额外关键字参数。

fill_between_kw字典,默认值为 None

传递给用于绘制分数标准差的 plt.fill_between 的额外关键字参数。

errorbar_kw字典,默认值为 None

传递给用于绘制平均分数和标准差分数的 plt.errorbar 的额外关键字参数。

返回:
displayLearningCurveDisplay

存储计算值的对象。