import pandas as pd from sklearn.tree import DecisionTreeRegressor from sklearn.model_selection import train_test_split # Загрузка данных data = pd.read_csv("Current_Pub_Meta.csv") # Отбор нужных столбцов selected_columns = ['Herald Win Rate', 'Primary Attribute', 'Herald Picks', 'Roles'] data = data[selected_columns] # Фильтрация по ролям Carry и Support data = data[data['Roles'].apply(lambda x: 'Carry' in x or 'Support' in x)] # Создание столбцов для каждой роли и заполнение их значениями 1 или 0 data['IsCarry'] = data['Roles'].apply(lambda x: 1 if 'Carry' in x else 0) data['IsSupport'] = data['Roles'].apply(lambda x: 1 if 'Support' in x else 0) # Удаление столбца Roles data.drop('Roles', axis=1, inplace=True) # Замена категориальных переменных на числовые data['Primary Attribute'] = data['Primary Attribute'].map({'str': 0, 'all': 1, 'int': 2, 'agi': 3}) # Разделение данных на обучающую и тестовую выборки X = data.drop('Herald Win Rate', axis=1) y = data['Herald Win Rate'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Обучение модели model = DecisionTreeRegressor() model.fit(X_train, y_train) # Прогноз на тестовой выборке y_pred = model.predict(X_test) # Вывод обработанных данных print("Обработанные данные:") print(data) # Оценка значимости признаков feature_importances = model.feature_importances_ print("Feature Importances:", feature_importances) # Оценка score модели score = model.score(X_test, y_test) print("Score:", score)