Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- import numpy as np
- from sklearn.pipeline import make_pipeline
- from sklearn.compose import make_column_transformer
- from sklearn.preprocessing import StandardScaler
- from category_encoders.target_encoder import TargetEncoder
- from sklearn.linear_model import Ridge
- from sklearn.model_selection import RandomizedSearchCV
- # Загрузка данных
- data = pd.read_csv('data.csv')
- # Разделение на признаки и целевую переменную
- X = data.drop('target', axis=1)
- y = data['target']
- # Определение категориальных и числовых признаков
- cat_features = X.select_dtypes(include=['object']).columns.tolist()
- num_features = X.select_dtypes(include=['float64', 'int64']).columns.tolist()
- # Создание трансформера для категориальных признаков с использованием TargetEncoder
- cat_transformer = TargetEncoder()
- # Создание трансформера для числовых признаков с использованием StandardScaler
- num_transformer = StandardScaler()
- # Создание ColumnTransformer для объединения трансформеров категориальных и числовых признаков
- preprocessor = make_column_transformer(
- (cat_transformer, cat_features),
- (num_transformer, num_features)
- )
- # Создание пайплайна с применением Ridge регрессии и ColumnTransformer для предобработки данных
- pipe = make_pipeline(preprocessor, Ridge())
- # Определение гиперпараметров для RandomizedSearchCV
- param_distributions = {
- 'ridge__alpha': np.logspace(-4, 4, 20),
- }
- # Создание объекта RandomizedSearchCV для подбора гиперпараметров модели с использованием кросс-валидации
- search = RandomizedSearchCV(pipe, param_distributions=param_distributions, cv=5)
- # Обучение модели и подбор гиперпараметров с использованием кросс-валидации
- search.fit(X, y)
- # В данном примере мы загружаем данные из файла ‘data.csv’, разделяем на признаки и целевую переменную. Затем определяем категориальные и числовые признаки. Для категориальных признаков мы используем TargetEncoder для кодирования. Для числовых признаков мы используем StandardScaler для масштабирования. Затем мы объединяем трансформеры в ColumnTransformer и создаем пайплайн с применением Ridge регрессии. Мы также определяем гиперпараметры для RandomizedSearchCV и создаем объект RandomizedSearchCV для подбора гиперпараметров модели с использованием кросс-валидации. Наконец, мы обучаем модель и подбираем гиперпараметры с использованием кросс-валидации.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement