我希望在线设置中训练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
答案 0 :(得分:1)
使用partial_fit()
时,无论如何都不会重新初始化模型。
文档说明了fit()
方法,它默认重置模型参数并从头开始训练。 warm_start=True
更适用于fit()
方法。
您可能会发现this discussion对详细信息非常有用。