【发布时间】:2019-02-21 03:27:15
【问题描述】:
我在the sklearn docs上读到了这篇文章
在同一数据集上重复拟合估计器时,但对于 多个参数值(如求值最大化 性能如在网格搜索中),有可能重用 模型从之前的参数值中学习,节省时间。什么时候 warm_start 为真,使用现有的拟合模型属性 在随后的 fit 调用中初始化新模型。
注意,这只适用于部分机型和部分参数, 甚至一些参数值的顺序。例如,warm_start 可能 用于构建随机森林以向森林添加更多树木 (增加 n_estimators)但不要减少它们的数量。
partial_fit 也保留调用之间的模型,但不同的是:与 warm_start 参数改变并且数据是(或多或少) 不断调用以适应;使用 partial_fit,小批量数据 变化和模型参数保持不变。
在某些情况下,您希望使用 warm_start 来适应不同的情况, 但密切相关的数据。例如,一个人最初可能适合 数据的子集,然后对完整的参数搜索进行微调 数据集。对于分类,warm_start 序列中的所有数据 拟合调用必须包含每个类的样本。
我已经写了这段代码:
warm_start:
clf = LogisticRegression(warm_start = True)
clf.fit(X_train_increment_1, y_train_increment_1)
clf.fit(X_train_increment_2, y_train_increment_2)
准确度 = 75%
partial_fit:
clf = SGDClassifier()
clf.partial_fit(X_train_increment_1, y_train_increment_1)
clf.partial_fit(X_train_increment_2, y_train_increment_2)
准确度 = 74%
我想知道 sklearn 如何在内部使用warm_start 和partial_fit,什么时候决定使用哪个?
【问题讨论】:
-
你是如何计算准确率的?
-
我通过 clf.score(X_test, y_test) 计算它。我使用相同的测试集来计算两个分类器的准确性
标签: python machine-learning scikit-learn