IIS_2023_1/faskhutdinov_idris_lab_3/main.py

40 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
def main():
# Чтение данных из csv файла
data = pd.read_csv("Clean_Data_pakwheels.csv")
# Выбор необходимых для создания модели столбцов
selected_columns = ['Company Name', 'Model Year', 'Mileage', 'Transmission Type', 'Price', 'Registration Status']
data = data[selected_columns]
# Разделение данных на признаки (X) и целевую переменную (y), целевая переменная в данном случае Registration Status
y = data['Registration Status']
data = data.drop(columns=['Registration Status'])
# В связи с тем, что некоторые столбцы представляют из себя текстовые значения, мы представляем их в виде числовых значений
X = pd.get_dummies(data)
# Тестовый набор в данном случае - 1%, обучающий - 99%
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.01)
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
# Предсказание на тестовом наборе
y_pred = model.predict(X_test)
# Оценка точности модели
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
# Важность признаков
importance = pd.DataFrame({'Признак': X.columns, 'Важность': model.feature_importances_})
importance = importance.sort_values(by='Важность', ascending=False)
print(importance)
main()