Артём Владимирович Груздев - Предварительная подготовка данных в Python: Том 1. Инструменты и валидация
Название: | Предварительная подготовка данных в Python: Том 1. Инструменты и валидация | |
Автор: | Артём Владимирович Груздев | |
Жанр: | Python | |
Изадано в серии: | неизвестно | |
Издательство: | ДМК Пресс | |
Год издания: | 2023 | |
ISBN: | 978-5-93700-156-6 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Предварительная подготовка данных в Python: Том 1. Инструменты и валидация"
В двухтомнике представлены материалы по применению классических методов машинного обучения в различных промышленных задачах. Первый том посвящен инструментам Python – основным библиотекам, классам и функциям, необходимым для предварительной подготовки данных, построения моделей машинного обучения, выполнения различных стратегий валидации. В конце первого тома разбираются задачи с собеседований по SQL, Python, математической статистике и теории вероятностей. Издание рассчитано на специалистов по анализу данных, а также может быть полезно широкому кругу специалистов, интересующихся машинным обучением.
Читаем онлайн "Предварительная подготовка данных в Python: Том 1. Инструменты и валидация". [Страница - 86]
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import (StandardScaler,
OneHotEncoder)
from sklearn.compose import ColumnTransformer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
# записываем CSV-файл в объект DataFrame
data = pd.read_csv('Data/StateFarm_missing.csv', sep=';')
data.head(5)
Исходный набор содержит расширенные данные американской автостраховой компании StateFarm (добавлены категориальные признаки). Он представляет собой записи о 8293 клиентах, классифицированных на два класса: 0 – отклика нет на предложение автостраховки (7462 клиента) и 1 – отклик есть на
предложение автостраховки (831 клиент). По каждому наблюдению (клиенту)
фиксируются следующие переменные (характеристики):
количественный признак Пожизненная ценность клиента [Customer
Lifetime Value];
категориальный признак Вид страхового покрытия [Coverage];
категориальный признак Образование [Education];
категориальный признак Тип занятости [EmploymentStatus];
252
Инструменты
категориальный признак Пол [Gender];
количественный признак Доход клиента [Income];
количественный признак Размер ежемесячной автостраховки [Monthly
Premium Auto];
количественный признак Количество месяцев со дня подачи последнего
страхового требования [Months Since Last Claim];
количественный признак Количество месяцев с момента заключения
страхового договора [Months Since Policy Inception];
количественный признак Количество открытых страховых обращений
[Number of Open Complaints];
количественный признак Количество полисов [Number of Policies];
бинарная зависимая переменная Отклик на предложение автостраховки
[Response].
Видим, что наши данные содержат как количественные, так и категориальные переменные. Кроме того, у нас есть пропуски.
Выполним случайное разбиение данных на обучающую и тестовую выборки: сформируем обучающий массив признаков, тестовый массив признаков,
обучающий массив меток, тестовый массив меток.
# разбиваем данные на обучающие и тестовые: получаем обучающий
# массив признаков, тестовый массив признаков, обучающий массив
# меток, тестовый массив меток
X_train, X_test, y_train, y_test = train_test_split(
data.drop('Response', axis=1),
data['Response'],
test_size=0.3,
stratify=data['Response'],
random_state=42)
Давайте создадим списки категориальных и количественных переменных.
# создаем списки категориальных
# и количественных столбцов
cat_columns = X_train.select_dtypes(
include='object').columns.tolist()
num_columns = X_train.select_dtypes(
exclude='object').columns.tolist()
Теперь создаем конвейер для количественных переменных и конвейер для
категориальных переменных. Для количественных переменных будем применять импутацию медианами и стандартизацию, а для категориальных переменных будем применять импутацию самой часто встречающейся категорией
и дамми-кодирование. Конвейеры, ответственные за операции предварительной подготовки (трансформации переменных), так и называют – трансформерами (transformers).
# создаем конвейер для количественных переменных
num_pipe = Pipeline([
('imputer', SimpleImputer(strategy='median')),
('scaler', StandardScaler())
])
7.7. Знакомство с классом ColumnTransformer 253
# создаем конвейер для категориальных переменных
cat_pipe = Pipeline([
('imputer', SimpleImputer(strategy='most_frequent')),
('ohe', OneHotEncoder(sparse=False, handle_unknown='ignore'))
])
Теперь создаем список трансформеров – трехэлементных кортежей. Первый
элемент кортежа – название конвейера с преобразованиями для определенного списка переменных (столбцов), второй элемент – собственно конвейер,
и третий элемент – соответствующий список переменных (столбцов).
# создаем список трехэлементных кортежей, в котором
# первый элемент кортежа – название конвейера с
# преобразованиями для определенного типа признаков
transformers = [('num', num_pipe, num_columns),
('cat', cat_pipe, cat_columns)]
Теперь создаем экземпляр класса ColumnTransformer, передав список трансформеров.
# передаем список трансформеров в ColumnTransformer
transformer = ColumnTransformer(transformers=transformers)
Давайте взглянем на созданный нами объект. Здесь нас интересует порядок столбцов, который задает экземпляр класса ColumnTransformer. Это нам
понадобится для правильного сопоставления весов логистической регрессии
названиям признаков.
# смотрим трансформер
transformer
Вывод представляет собой схему предварительной обработки данных, заданную экземпляром класса ColumnTransformer.
Щелкнем по стрелке слева от ColumnTransformer и получим следующий
вывод.
254
Инструменты
ColumnTransformer(transformers=[('num',
Pipeline(steps=[('imputer',
SimpleImputer(strategy='median')),
('scaler', StandardScaler())]),
['Customer Lifetime Value', 'Income',
'Monthly Premium Auto',
'Months Since Last Claim',
'Months Since Policy --">
Книги схожие с «Предварительная подготовка данных в Python: Том 1. Инструменты и валидация» по жанру, серии, автору или названию:
Уэс Маккинни - Python и анализ данных: Первичная обработка данных с применением pandas, NumPy и Jupiter Жанр: Python Год издания: 2023 |
Флоран Бюиссон - Анализ поведенческих данных на R и Python Жанр: Python Год издания: 2022 Серия: Бестселлеры o’reilly |
Артём Владимирович Груздев - Предварительная подготовка данных в Python. Том 2: План, примеры и метрики качества Жанр: Python Год издания: 2023 |
- Devpractice Team. Python. Визуализация данных. Matplotlib. Seaborn. Mayavi Жанр: Python Год издания: 2020 |