我有一个大型数据集,其中包含近5亿条推文。我正在做一些有关公司如何参与行动主义的研究,到目前为止,我已经标记了一些推文,这些推文可以根据推文中某些主题标签的存在而归类为行动主义类别。
现在,假设公司在推特上发布了一个激进主义话题,而没有在推文中插入任何标签。我的代码不会对它进行分类,我的想法是只运行一个类的SVM分类器。
这导致以下问题:
感谢您的帮助!
您已经描述了针对设置为PUL的一类问题“正无标签学习”的设置。该名称来自以下事实:您有两种类型的数据:正数据(“活动主义”标签)和未标记的数据(也许是“活动主义”,也许没有)。使用SVM的想法很常见,随机森林也很常见。与所有ML问题一样,神经网络正变得越来越普遍。
pywsl是一个“弱监督”库,其中包括一些PUL实现(PUL是一种弱监督)。这是在某些综合数据上使用它的示例
import numpy as np
from sklearn.model_selection import GridSearchCV, StratifiedKFold
from sklearn.utils.estimator_checks import check_estimator
from pywsl.pul import pumil_mr
from pywsl.utils.syndata import gen_twonorm_pumil
from pywsl.utils.comcalc import bin_clf_err
def main():
prior = .5
x, y, x_t, y_t = gen_twonorm_pumil(n_p=30, n_u=200,
prior_u=prior, n_t=100)
param_grid = {'prior': [prior],
'lam': np.logspace(-3, 1, 5),
'basis': ['minimax']}
lambda_list = np.logspace(-3, 1, 5)
clf = GridSearchCV(estimator=pumil_mr.PUMIL_SL(),
param_grid=param_grid,
cv=5, n_jobs=-1)
clf.fit(x, y)
y_h = clf.predict(x_t)
err = 100*bin_clf_err(y_h, y_t, prior)
print("MR: {}%".format(err))
if __name__ == "__main__":
main()
也请参阅此可能重复的问题,Binary semi-supervised classification with positive only and unlabeled data set