IIS_2023_1/faskhutdinov_idris_lab_3/main.py

40 lines
1.8 KiB
Python
Raw Normal View History

2024-01-14 20:51:08 +04:00
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()