def __init__(self, X, y, Xstatic=[], ystatic=[], ratio=0.8, test_ratio=None, score='macrof1', classifier=ClassifierWrapper, random_state=None):
assert ratio < 1, "ratio {0} is invalid, valid values are 0 < ratio < 1".format(ratio)
self.score = score
self.le = preprocessing.LabelEncoder().fit(y)
self.create_classifier = classifier
if test_ratio is None:
test_ratio = 1.0 - ratio
I = list(range(len(y)))
np.random.shuffle(I)
s = int(np.ceil(len(y) * ratio))
s_end = int(np.ceil(len(y) * test_ratio))
y = self.le.transform(y)
train, test = I[:s], I[s:s+s_end]
self.train_corpus = [X[i] for i in train]
self.train_corpus.extend(Xstatic)
if len(ystatic) > 0:
ystatic = self.le.transform(ystatic)
self.train_y = np.hstack((y[train], ystatic))
else:
self.train_y = y[train]
self.test_corpus = [X[i] for i in test]
self.test_y = y[test]
评论列表
文章目录