Я хочу видеть индивидуальный счет каждой подобранной модели, чтобы визуализировать силу перекрестной проверки (я делаю это, чтобы показать моим коллегам, почему перекрестная проверка важна).
У меня есть файл .csv с 500 строками, 200 независимыми переменными и 1 двоичной целью. Я определил skf
, чтобы сложить данные 5 раз, используя StratifiedKFold
.
Мой код выглядит так:
X = data.iloc[0:500, 2:202]
y = data["target"]
skf = StratifiedKFold(n_splits = 5, random_state = 0)
clf = svm.SVC(kernel = "linear")
Scores = [0] * 5
for i, j in skf.split(X, y):
X_train, y_train = X.iloc[i], y.iloc[i]
X_test, y_test = X.iloc[j], y.iloc[j]
clf.fit(X_train, y_train)
clf.score(X_test, y_test)
Как видите, я присвоил список из 5 нулей Scores
. Я хотел бы назначить clf.score(X_test, y_test)
каждого из 5 предсказаний в список. Однако индексы i
и j
не являются {1, 2, 3, 4, 5}. Скорее, это номера строк, используемые для складывания фреймов данных X
и y
.
Как я могу назначить результаты тестов каждой из k
встроенных моделей в Scores
в этом цикле? Нужен ли для этого отдельный индекс?
Я знаю, что использование cross_val_score
буквально делает все это и дает вам среднее геометрическое из k
баллов. Однако я хочу показать своим коллегам, что происходит за функциями перекрестной проверки, которые есть в библиотеке sklearn
.
Заранее спасибо!