Это классический пример Python с append
и for loop
, но я не могу понять, что нужно изменить, чтобы работать.
У меня есть эти строки:
clf = SVC(C=10,gamma=1,kernel='rbf')
clf.fit(vectors, df.type)
vectors_test = vectorizer.transform(df_test.news)
pred = clf.predict(vectors_test)
metrics.f1_score(df_test.type, pred, average='macro')
последняя строка дает оценку f1 0,95.
Цель
Я хочупопробуйте разные комбинации для первой строки (clf
) и сделайте так, чтобы она возвращала результаты f1 score
(последняя строка) для каждой комбинации.
Вот что я пробовал:
import itertools
clf=[]
mode=[]
ar=np.array(df_test.type)
for element in list(itertools.product(range(3),range(3))):
c = element[0] #for each iteration will take a new value from the range
g = element[1] #same here, and will replace the values c and g below
try:
clf.append(SVC(C=c,gamma=g,kernel='rbf').fit(vectors,df.type))
vectors_test = vectorizer.transform(df_test.news)
pred = clf.predict(vectors_test)
metrics.f1_score(df_test.type, pred, average='macro')
except:
pass
Это вроде как близко, я думаю. Вы можете помочь?