Почему Python функция масштабирования атрибутов выполняет для ранее удаленного атрибута? - PullRequest
0 голосов
/ 21 марта 2020

Я масштабирую числовые объекты (атрибуты) в наборе данных в алгоритме классификатора в проекте Data Science.
Я создал список числовых объектов и передал его функции вместе с набор данных и метка (класс) представляют все переменные функции
Каждый раз, когда я запускаю функцию; он удаляет функцию «метка» из списка, но выполняет следующие шаги по всему списку (с удаленным элементом), то есть выполняет масштабирование функции «метка» также

>>>list_num_attr

['sales',
 'regular_price',
 'current_price',
 'ratio',
 'promo1',
 'promo2',
 'cost',
 'rgb_r_main_col',
 'rgb_g_main_col',
 'rgb_b_main_col',
 'rgb_r_sec_col',
 'rgb_g_sec_col',
 'rgb_b_sec_col',
 'label',
 'profit',
 'discount_ratio']

>>>
# Function to encode categorical features
def num_scaller(data, features_list, label_feature):
    from sklearn.preprocessing import StandardScaler
    scaler=StandardScaler()


    # Removing the target feature from features list as it has 0 and 1 classes
    # and doesn't need to be scalled
    features_list.remove(label_feature)


    # Scalling the numerical features
    for ele in list(features_list): 
        data[[ele]] = scaler.fit_transform(data[[ele]]).reshape(-1,1)

    return data

# Calling the function to scall numerical features excep for target feature
num_scalled = num_scaller(dataa, list_num_attr, 'label')
num_scalled


enter image description here

Если вы смотрели на функцию label ; Вы найдете его масштабированным и не имеет своих первоначальных значений, которые раньше имели только значения (0,1). если вы хотите набор данных, вот ссылка для него на GitHub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...