Я относительно новичок в Python и машинном обучении.
У меня есть базовый набор данных c для страхового мошенничества и скрипт, который генерирует модель и выполняет прогнозы.
Я могу вывести проценты точности, но я хотел бы также вывести зависимости характеристик: например, какую роль сыграл каждый атрибут в прогнозе? Параметр policy_number будет равен 0,0%, тогда как значение Claim_amount, вероятно, будет составлять 56,2%, имеет ли это смысл?
Есть ли для этого функция scikit? Кроме того, является ли «зависимость от функции» даже правильным термином?
Вот пример фрагмента кода для предсказания:
from sklearn.linear_model import SGDClassifier
sgdc = SGDClassifier()
sgdc.fit(x_train, y_train)
y_pred = sgdc.predict(x_test)
prediction = pd.DataFrame(y_pred)
Есть ли способ извлечь функцию «важность» ? Еще раз большое спасибо за то, что уделили время.
РЕДАКТИРОВАТЬ: Хорошо, я думаю, что добился определенного прогресса, но я не уверен, что делать с результатами, так как значения не кажутся процентами. Я добавил следующий код:
from sklearn.ensemble import ExtraTreesClassifier
model = ExtraTreesClassifier()
model.fit(x_train, y_train)
coef = pd.DataFrame({''Columns'': x_train.columns, ''Importances'': np.transpose(model.feature_importances_)}).sort_values(by=[''Importances''], ascending=False)
print(coef.nlargest(10, ''Importances''))
Вот итоговый результат:
Columns Importances
125 incident_severity_Minor Damage 0.042847
40 insured_hobbies_chess 0.041505
126 incident_severity_Total Loss 0.028544
124 collision_type_Unknown 0.019634
41 insured_hobbies_cross-fit 0.014173
1 policy_state_OH 0.009765
16 insured_sex_MALE 0.009697
57 insured_relationship_own-child 0.009582
25 insured_occupation_exec-managerial 0.009513
5 policy_deductable_500 0.009146
Нужно ли выполнить какой-либо шаг для преобразования этих значений в проценты? Спасибо за ваше время!