Я изучаю концепции глубокого обучения с помощью Python и дошел до своего проекта.Цель этого открытого проекта - выявить рак печени, чтобы пациент избегал биопсии и мог быть излечен раньше, чем обычно.
У меня есть набор данных из 427 пациентов, для которых из 0 были определены генетические маркеры (2687 столбцов), уровень метилирования1 (0 = не метилировано, 1 = полностью метилировано).
Я использовал xgboost и получил граф узлов с переименованными функциями с помощью xgboost (так что моя первая проблема в том, что я не знаю, что такое маркеры на самом делепредставленные этими метками графика xgboost (очевидно, с помощью 3 тестов (6 «да» или «нет» дерева решений, рис. а), xgboost может определить, есть ли у пациента рак печени или нет)
Итак, учитываяЯ не достаточно экспериментировал и не являюсь носителем английского языка. Я хотел бы получить некоторые из ваших советов, чтобы завершить его с пожеланиями, повышающими мое мастерство:
2: Есть ли простой способ сделать эти "ярлыки" xgboostвыбрал стать настоящим маркером, чтобы я мог проверить всю свою модель только с этими 3? разве что я не совсем понял, что это за график?
3: я получил тего график важности функции (рис.б) и еще раз, я хотел бы найти способ сделать модель только с «важными» маркерами (функциями), поэтому вместо 2680+ столбцов (маркеров) для каждого пациента у меня осталось меньше функций, необходимых для такой же точности.(моя модель на самом деле точна на 99,5)
fig.a Дерево решений узлов по xgboost
fig.b (важность функции), потому что вам нужно увеличение масштаба: https://cdn.discordapp.com/attachments/314114979332882432/579000210760531980/features_importances.png
У меня есть весь блокнот, но я не знаю, как показать вам интересные части кода (потому что вы должны импортировать набор данных и т. Д.), Даже код, который работал один день назад, чтобы получить форму функцииВажность (которая может вернуть простое значение 2687) больше не работает для меня, например, у объекта «Booster» нет «feature_importances_», когда я выполняю ячейки ... Я не знаю, почему ...
для индикации Когда я делаю
cv_results = xgb.cv(dtrain=data_dmatrix, params=params, nfold=100, num_boost_round=100, early_stopping_rounds=10, metrics="error", as_pandas=True, seed=123)
cv_results
У меня есть 0,0346 для средней ошибки поезда, 0,00937 для стандартной ошибки поезда и 0,135 для стандартной ошибки теста
На данный момент у меня действительно нет ошибкиЯ просто не знаю, как взять эту метку xgboost для перевода и получить соответствующую функцию, возвращаемые узлы xgboost, такие как fl1754 или f93 и т. Д., И мои функции в наборе данных похожи на «cg000001052» (это маркеры CpG (рис. C))
рис c.формат набора данных как имена маркеров CpG (столбцы) отображаются в наборе данных
Затем я сделаю другую модель только с этими (рассматриваемыми) важными функциями, чтобы увидеть, насколько она по-прежнему безумно точна с тысячамименьше маркеров
Если вам действительно нужны какие-то детали, я смогу предоставить их вам, в тот момент, когда я просто теряюсь в поисках, я не могу найти ответ, который мне нужен, кто быОсновная идея, которую я имею, проста
Как новичок, я бы сказал, что заметил, что f93 в графе узлов является вторым по важности в выборе функции (я показываю по порядку Desc! эксплойт для меня)Самая трудная часть проекта, если честно)
Теперь я чувствую близость к концу, цель состояла в том, чтобы уменьшить необходимое количество маркеров, и я чувствую себя действительно близко с такими результатами :( тогда я потерялся
Любая помощь приветствуется!