Как распечатать индекс разделения? - PullRequest
0 голосов
/ 19 марта 2020

Итак, у меня есть некоторые данные из 8 столбцов и множества строк, и я хочу выполнить разделение по K-Fold с 5 разделениями. Я сделал это, но то, что я хочу сделать сейчас, это для каждого разделения, распечатайте номер разделения, на котором он находится. См. Код для лучшего объяснения.

kf = KFold(n_splits=5) #Define the split - into 5 folds 

#Define empty arrays for each technique
kf_train = []
kf_test = []

#Iterate through each feature in 
for kf_train, kf_test in kf.split(df):
    print('Split # ????')
    for col_name, col_data in df.iteritems():
        print('Feature: ', col_name)
        print('Mean: ', np.mean(col_data))
        print('Standard Deviation: ', np.std(col_data))
        print('\n')

Так что там, где написано print('Split # ????'), у меня проблема. Что я должен написать, чтобы получить следующий вывод:

Split #1
Feature: XXX
Mean: 3.3
Std: 3.3

Split #2
etc..

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Добавление enumerate должно решить вашу проблему:

for i, (kf_train, kf_test) in enumerate(kf.split(df)):
    print('Split #{}'.format(i))
    for col_name, col_data in df.iteritems():
        print('Feature: ', col_name)
        print('Mean: ', np.mean(col_data))
        print('Standard Deviation: ', np.std(col_data))
        print('\n')

Для справки: Документы .

1 голос
/ 19 марта 2020

Вы можете использовать enumerate, который дает индекс плюс значение

# Iterate through each feature in 
for idx, kf_vals in enumerate(kf.split(df)):
    print('Split #%s' % idx)
    kf_train, kf_test = kf_vals
    for col_name, col_data in df.iteritems():
        print('Feature: ', col_name)
        print('Mean: ', np.mean(col_data))
        print('Standard Deviation: ', np.std(col_data))
        print('\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...