Untitled
unknown
plain_text
2 years ago
2.6 kB
9
Indexable
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, recall_score, precision_score, confusion_matrix
# Преобразование целевой переменной в бинарный формат
ferma_main['vkus_milk'] = ferma_main['vkus_milk'].apply(lambda x: 1 if x == 'вкусно' else 0)
# Выделение в отдельные переменные целевого признака и входных признаков
X = ferma_main.drop(columns=['vkus_milk'])
y = ferma_main['vkus_milk']
# Разделение данных на тренировочные и тестовые, зафиксируем random_state
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=RANDOM_STATE)
# Список категориальных признаков
cat_col_names = ['poroda', 'type_pastbicha', 'poroda_dad_bull', 'age', 'name_dad']
# Список количественных признаков
num_col_names = ['eke', 'syroi_protein_g', 'spo', 'ghirnost_per', 'belok_per']
# Подготовка признаков (масштабирование и кодирование)
encoder = OneHotEncoder(drop='first', sparse=False)
scaler = StandardScaler()
# Создание transformer для категориальных и количественных признаков
preprocessor = ColumnTransformer(
transformers=[
('cat', encoder, cat_col_names),
('num', scaler, num_col_names)
])
# Создание пайплайна с преобразованием и обучением модели
model_lr = LogisticRegression(random_state=RANDOM_STATE, max_iter=1000)
pipeline = Pipeline([
('preprocessor', preprocessor),
('model', model_lr)
])
# Обучение модели
pipeline.fit(X_train, y_train)
# Получение предсказаний
predictions = pipeline.predict(X_test)
# Оценка качества модели
accuracy = accuracy_score(y_test, predictions)
recall = recall_score(y_test, predictions)
precision = precision_score(y_test, predictions)
conf_matrix = confusion_matrix(y_test, predictions)
# Вывод результатов
print("Accuracy:", accuracy)
print("Recall:", recall)
print("Precision:", precision)
print("Confusion Matrix:")
print(conf_matrix)Editor is loading...
Leave a Comment