Кодувальник Порядкових Ознак
Наступне питання, яке потрібно розглянути, — це категоріальні дані. Існує два основних типи категоріальних змінних.
Порядкові дані мають природний порядок, тоді як номінативні — ні. Завдяки цій впорядкованості категорії можна кодувати числами відповідно до їхнього ранжування.
Наприклад, стовпець 'rate' зі значеннями 'Terrible', 'Bad', 'OK', 'Good' та 'Great' можна закодувати так:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
Для кодування порядкових даних використовується OrdinalEncoder. Він перетворює категорії на цілі числа, починаючи з 0.
OrdinalEncoder застосовується так само, як і інші трансформери. Основна складність полягає у правильному визначенні аргументу categories.
Наприклад, розглянемо набір даних (не penguins), який містить стовпець 'education'. Першим кроком є перевірка його унікальних значень.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') print(df['education'].unique())
Необхідно створити впорядкований список категоріальних значень, починаючи з 'HS-grad' до 'Doctorate'.
1234567891011121314import pandas as pd from sklearn.preprocessing import OrdinalEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # 'income' is a target in this dataset X = df.drop('income', axis=1) # Create a list of categories so HS-grad is encoded as 0 and Doctorate as 6 edu_categories = ['HS-grad', 'Some-college', 'Assoc', 'Bachelors', 'Masters', 'Prof-school', 'Doctorate'] # Initialize an OrdinalEncoder instance with the correct categories ord_enc = OrdinalEncoder(categories=[edu_categories]) # Transform the 'education' column and print it X['education'] = ord_enc.fit_transform(X[['education']]) print(X['education'])
Під час перетворення декількох ознак за допомогою OrdinalEncoder категорії для кожного стовпця мають бути явно вказані. Це здійснюється через аргумент categories:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. Яке твердження найкраще описує використання OrdinalEncoder для обробки категоріальних даних у наборі даних?
2. Припустимо, у вас є категоріальний стовпець з назвою 'Color'. Чи буде доцільно використовувати OrdinalEncoder для кодування його значень?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the difference between ordinal and nominal data in more detail?
How do I determine the correct order for ordinal categories?
What happens if I don't specify the categories argument correctly in OrdinalEncoder?
Чудово!
Completion показник покращився до 3.13
Кодувальник Порядкових Ознак
Свайпніть щоб показати меню
Наступне питання, яке потрібно розглянути, — це категоріальні дані. Існує два основних типи категоріальних змінних.
Порядкові дані мають природний порядок, тоді як номінативні — ні. Завдяки цій впорядкованості категорії можна кодувати числами відповідно до їхнього ранжування.
Наприклад, стовпець 'rate' зі значеннями 'Terrible', 'Bad', 'OK', 'Good' та 'Great' можна закодувати так:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
Для кодування порядкових даних використовується OrdinalEncoder. Він перетворює категорії на цілі числа, починаючи з 0.
OrdinalEncoder застосовується так само, як і інші трансформери. Основна складність полягає у правильному визначенні аргументу categories.
Наприклад, розглянемо набір даних (не penguins), який містить стовпець 'education'. Першим кроком є перевірка його унікальних значень.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') print(df['education'].unique())
Необхідно створити впорядкований список категоріальних значень, починаючи з 'HS-grad' до 'Doctorate'.
1234567891011121314import pandas as pd from sklearn.preprocessing import OrdinalEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # 'income' is a target in this dataset X = df.drop('income', axis=1) # Create a list of categories so HS-grad is encoded as 0 and Doctorate as 6 edu_categories = ['HS-grad', 'Some-college', 'Assoc', 'Bachelors', 'Masters', 'Prof-school', 'Doctorate'] # Initialize an OrdinalEncoder instance with the correct categories ord_enc = OrdinalEncoder(categories=[edu_categories]) # Transform the 'education' column and print it X['education'] = ord_enc.fit_transform(X[['education']]) print(X['education'])
Під час перетворення декількох ознак за допомогою OrdinalEncoder категорії для кожного стовпця мають бути явно вказані. Це здійснюється через аргумент categories:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. Яке твердження найкраще описує використання OrdinalEncoder для обробки категоріальних даних у наборі даних?
2. Припустимо, у вас є категоріальний стовпець з назвою 'Color'. Чи буде доцільно використовувати OrdinalEncoder для кодування його значень?
Дякуємо за ваш відгук!