49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
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])
|
||
|