在这种情况下,我应该使用哪个分类器或 ML SDK?

Which classifier or ML SDK should I use in this case?

训练数据(包括训练集和验证集)大约有 80 万个样本,每个样本有 200 个密集浮点数。有 6 个标记为 classe 并且它们是不平衡的。

在常用的 ML 库中(例如,libsvmscikit-learnSpark MLlibrandom forestXGBoost 或其他),应该我用?关于硬件配置,机器有 24 CPU 个内核和 250 Gb 内存。

我建议使用 scikit-learn 的 SGDClassifier,因为它是在线的,因此您可以将训练数据分块(小批量)加载到内存中并逐渐训练分类器,这样您就不需要加载全部数据存入内存。

高度并行且易于使用。 您可以将 warm_start 参数设置为 True 并多次调用 fit 并将每个 X、y 块加载到内存中,或者您可以使用 partial_fit 的更好选项方法。

clf = SGDClassifier(loss='hinge', alpha=1e-4, penalty='l2', l1_ratio=0.9, learning_rate='optimal', n_iter=10, shuffle=False, n_jobs=10, fit_intercept=True)
# len(classes) = n_classes
all_classes = np.array(set_of_all_classes)
while True:
    #load a minibatch from disk into memory
    X, y = load_next_chunk()
    clf.partial_fit(X, y, all_classes) 
X_test, y_test = load_test_data()    
y_pred = clf.predict(X_test)