Advertisement
EliiO

Pipeline with TargetEncoder, StandardScaler and Ridge using RandomizedSearchCV

Mar 22nd, 2023
1,289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.28 KB | Science | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. from sklearn.pipeline import make_pipeline
  4. from sklearn.compose import make_column_transformer
  5. from sklearn.preprocessing import StandardScaler
  6. from category_encoders.target_encoder import TargetEncoder
  7. from sklearn.linear_model import Ridge
  8. from sklearn.model_selection import RandomizedSearchCV
  9.  
  10. # Загрузка данных
  11. data = pd.read_csv('data.csv')
  12.  
  13. # Разделение на признаки и целевую переменную
  14. X = data.drop('target', axis=1)
  15. y = data['target']
  16.  
  17. # Определение категориальных и числовых признаков
  18. cat_features = X.select_dtypes(include=['object']).columns.tolist()
  19. num_features = X.select_dtypes(include=['float64', 'int64']).columns.tolist()
  20.  
  21. # Создание трансформера для категориальных признаков с использованием TargetEncoder
  22. cat_transformer = TargetEncoder()
  23.  
  24. # Создание трансформера для числовых признаков с использованием StandardScaler
  25. num_transformer = StandardScaler()
  26.  
  27. # Создание ColumnTransformer для объединения трансформеров категориальных и числовых признаков
  28. preprocessor = make_column_transformer(
  29.     (cat_transformer, cat_features),
  30.     (num_transformer, num_features)
  31. )
  32.  
  33. # Создание пайплайна с применением Ridge регрессии и ColumnTransformer для предобработки данных
  34. pipe = make_pipeline(preprocessor, Ridge())
  35.  
  36. # Определение гиперпараметров для RandomizedSearchCV
  37. param_distributions = {
  38.     'ridge__alpha': np.logspace(-4, 4, 20),
  39. }
  40.  
  41. # Создание объекта RandomizedSearchCV для подбора гиперпараметров модели с использованием кросс-валидации
  42. search = RandomizedSearchCV(pipe, param_distributions=param_distributions, cv=5)
  43.  
  44. # Обучение модели и подбор гиперпараметров с использованием кросс-валидации
  45. search.fit(X, y)
  46.  
  47. # В данном примере мы загружаем данные из файла ‘data.csv’, разделяем на признаки и целевую переменную. Затем определяем категориальные и числовые признаки. Для категориальных признаков мы используем TargetEncoder для кодирования. Для числовых признаков мы используем StandardScaler для масштабирования. Затем мы объединяем трансформеры в ColumnTransformer и создаем пайплайн с применением Ridge регрессии. Мы также определяем гиперпараметры для RandomizedSearchCV и создаем объект RandomizedSearchCV для подбора гиперпараметров модели с использованием кросс-валидации. Наконец, мы обучаем модель и подбираем гиперпараметры с использованием кросс-валидации.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement