import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score, classification_report # Загрузка данных data = pd.read_csv("train_bikes.csv", sep=',').dropna() # Подготовка данных # Здесь определяются пороги для категорий спроса low_demand_threshold = 100 # Порог для "Низкого спроса" medium_demand_threshold = 300 # Порог для "Среднего спроса" # Создание новой категориальной переменной на основе порогов data['demand_category'] = pd.cut(data['count'], bins=[0, low_demand_threshold, medium_demand_threshold, float('inf')], labels=["Low Demand", "Medium Demand", "High Demand"]) # Выделение признаков и целевой переменной X = data.drop(['count', 'demand_category', 'datetime'], axis=1) # Удаление ненужных столбцов y = data['demand_category'] # Разделение данных на обучающий и тестовый наборы X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Создание и обучение модели дерева решений clf = DecisionTreeClassifier(random_state=42) clf.fit(X_train, y_train) # Предсказание категорий спроса на тестовом наборе y_pred = clf.predict(X_test) # Оценка качества модели accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy:.2f}") # Вывод отчета о классификации report = classification_report(y_test, y_pred) print(report)