在scikit中使用PassiveAggressiveClassifier的正确方法 - 在线设置学习

时间:2016-05-05 10:14:09

标签: machine-learning scikit-learn

我希望在线设置中训练PassiveAggressiveClassifier in scikit-learn。

我想知道实例化这个分类器的正确方法是

PA_I_online = PassiveAggressiveClassifier(warm_start=True)

根据文档

warm_start : bool, optional
When set to True, reuse the solution of the previous call to fit as initialization, otherwise, just erase the previous solution. 

这是我在在线/增量设置中需要的 - 继续在下一个数据点上训练模型

但在example中,它被推定为

'Passive-Aggressive': PassiveAggressiveClassifier()

同样在this code

注意,根据docs默认值 warm_start = False

我错过了什么吗?

我在线培训的完整代码snipet是:

# Given X_train, y_train, X_test and y_test, labels

PA_I_online = PassiveAggressiveClassifier(loss='hinge', warm_start=True)

no_of_samples = len(X_train)
no_of_classes= np.unique(labels)

for i in range(no_of_samples):
    #get the ith datapoint
    X_i = X_train[i]
    y_i = y_train[i]

    #reshape it
    X_i = X_i.reshape(1,300)
    y_i = y_i.reshape(1,)

    #consume data point 
    PA_I_online.partial_fit(X_i, y_i, no_of_classes)

Crux:使用PassiveAggressiveClassifier()进行在线培训并不是必须来设置参数 warm_start = True

1 个答案:

答案 0 :(得分:1)

使用partial_fit()时,无论如何都不会重新初始化模型。 文档说明了fit()方法,它默认重置模型参数并从头开始训练。 warm_start=True更适用于fit()方法。

您可能会发现this discussion对详细信息非常有用。