IIS_2023_1/almukhammetov_bulat_lab_3/lab3(old).py

49 lines
1.5 KiB
Python
Raw Normal View History

2023-11-01 23:05:45 +04:00
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.tree import DecisionTreeClassifier
# Загрузка данных
data = pd.read_csv('titanic.csv', index_col='PassengerId')
# Функция для преобразования пола в числовое значение
def Sex_to_bool(sex):
if sex == "male":
return 0
return 1
# Преобразование пола в числовое значение
data['Sex'] = data['Sex'].apply(Sex_to_bool)
# Отбор строк с непустыми значениями
# Отбор строк с непустыми значениями
data = data.loc[~data['Name'].isna()
& ~data['Age'].isna()
& ~data['Sex'].isna()
& ~data['Survived'].isna()]
# Отбор нужных столбцов
features = data[['Name', 'Sex', 'Age']]
# Применение Label Encoding к столбцу 'Name'
label_encoder = LabelEncoder()
features['Name'] = label_encoder.fit_transform(features['Name'])
# Определение целевой переменной
y = data['Survived']
# Создание и обучение дерева решений
clf = DecisionTreeClassifier(random_state=241)
clf.fit(features, y)
# Получение важностей признаков
importance = clf.feature_importances_
# Печать важности каждого признака
print("Важность 'Name':", importance[0])
print("Важность 'Sex':", importance[1])
print("Важность 'Age':", importance[2])