Size: a a a

AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2

2020 August 29

MC

Maxim Cheparin in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
David Dale
Бустинг - это сумма деревьев, так что он тоже интерпретируемый. Можно смотреть на feature importance и в среднем по датасету, и в контексте отдельного сэмпла.
композиция, сумма - это бэггинг
источник

MC

Maxim Cheparin in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Dima
Сумма деревьев-это леса.
Но не думаю,что даже леса можно считать интерпретируемыми. Например человеку не дали кредит и надо объяснить решение. Не думаю,что кто-то готов полотно А1 деревьев смотреть. Но это уже такое.
ну, вообще можно объяснить, например, что 80 из 100 деревьев проголосовали за отказ, и посмотреть на каждой итерации на наиболее популярное решение в узле
источник

DD

David Dale in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Dima
Сумма деревьев-это леса.
Но не думаю,что даже леса можно считать интерпретируемыми. Например человеку не дали кредит и надо объяснить решение. Не думаю,что кто-то готов полотно А1 деревьев смотреть. Но это уже такое.
И леса (бэггинг), и бустинг - это сумма деревьев, но леса строятся независимо и параллельно, а бустинг - последовательно. Там алгоритм обучения разный, а применение в итоге практически одинаковое.

Смотреть всё полотно глазами не надо.
Можно в коде пройти по всем деревьям и всем сплитам в каждом дереве, и высчитать, насколько скор уменьшился/увеличился суммарно за счёт каждого признака. И это уже человеку показывать.
источник

D

Dima in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Maxim Cheparin
ну, вообще можно объяснить, например, что 80 из 100 деревьев проголосовали за отказ, и посмотреть на каждой итерации на наиболее популярное решение в узле
можно, но сначала надо пробежаться по 80 деревьям с вершины до последнего листа
источник

MC

Maxim Cheparin in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
но вообще же у rf есть метод feature importance, просто показываешь резы и мб лапшу поднавешиваешь, что отсмотрел 80 деревьев
источник

DD

David Dale in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
David Dale
И леса (бэггинг), и бустинг - это сумма деревьев, но леса строятся независимо и параллельно, а бустинг - последовательно. Там алгоритм обучения разный, а применение в итоге практически одинаковое.

Смотреть всё полотно глазами не надо.
Можно в коде пройти по всем деревьям и всем сплитам в каждом дереве, и высчитать, насколько скор уменьшился/увеличился суммарно за счёт каждого признака. И это уже человеку показывать.
В катбусте, например, такая объяснялка из коробки поддержана, кажется.
источник

D

Dima in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
David Dale
И леса (бэггинг), и бустинг - это сумма деревьев, но леса строятся независимо и параллельно, а бустинг - последовательно. Там алгоритм обучения разный, а применение в итоге практически одинаковое.

Смотреть всё полотно глазами не надо.
Можно в коде пройти по всем деревьям и всем сплитам в каждом дереве, и высчитать, насколько скор уменьшился/увеличился суммарно за счёт каждого признака. И это уже человеку показывать.
это хорошо, но так называемую скоркарту, там где к каждой фиче подтянут балл и можно посчитать самому этот балл и не прогонять через алгоритм
источник

D

Dima in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
что-то типо:
мужской пол- 30 баллов
женский пол - (-30) баллов
и тд
источник

D

Dima in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
но это уже крайности,как мне кажется
источник

DD

David Dale in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Dima
это хорошо, но так называемую скоркарту, там где к каждой фиче подтянут балл и можно посчитать самому этот балл и не прогонять через алгоритм
Скоркарта как полная модель для всех - это чисто аддитивная штука, с деревьями, она не сочетается, это правда. Сорян.

Но на основе деревьев можно сделать скоркарту индивидуальную, для отдельного взятого индивида. Кому-то будет за пол даваться -30, а кому-то только -10, в зависимости от других признаков.
источник

DD

David Dale in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Хотя на самом деле и настоящую скоркарту можно на основе бустинга запилить, если делать деревья не глубже 1-2 сплитов. Тогда все взаимодействия не больше чем между парой фич, и их можно выписать в явном виде, и это будет читаемо.
источник

DD

David Dale in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Я такое делал, когда в Альфа-Банке работал, и это даже прошло через все валидации)
источник

КЧ

Кирилл Чертоганов... in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Ребят, а используя байесовские методы я могу интерпретировать модель ?
источник

MC

Maxim Cheparin in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Кирилл Чертоганов
Ребят, а используя байесовские методы я могу интерпретировать модель ?
>Сама техника и многие результаты байесианцев плохо интерпретируемы для простых смертных. Можно поверить, что объекты как-то распределены (например, клиенты интернет-магазина), но вот поверить, что параметры распределений как-то распределены нормальному человеку сложнее…

Из блога Дьяконова
источник

MC

Maxim Cheparin in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
У Ветрова "вероятность интерпретируется как мера незнания, а не как объективная случайность"
источник

MC

Maxim Cheparin in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
не знаю, наскок для не математика это понятно, видимо, не особо
источник

CK

Caezar Ku in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
is_18 = titanic_df["Age"] >= 18
more_than_18 = titanic_df[is_18].sort_values("Age")

тут я вывожу тех, кому уже за 18.
Мне нужно вытащить тех, кому за 18 и они выжили. Пытался вот так:

is_survived = titanic_df["Survived"] == 1
survived_and_18 = more_than_18[is_survived].sort_values("Survived")

Но он не показывает всех, почему-то выживших кому за 18. Он показал лишь 1 чела кому 18, а потом сразу перскакивает на 30+ почему-то
Хотя если принтануть more_than_18 то там как минимум 4 чела, которые выжили и им по 18
источник

MC

Maxim Cheparin in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
df[df['Survived'] == 1]['Age'] >= 18
источник

КЧ

Кирилл Чертоганов... in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Maxim Cheparin
>Сама техника и многие результаты байесианцев плохо интерпретируемы для простых смертных. Можно поверить, что объекты как-то распределены (например, клиенты интернет-магазина), но вот поверить, что параметры распределений как-то распределены нормальному человеку сложнее…

Из блога Дьяконова
)))
источник

CK

Caezar Ku in AI / Big Data / Machine Learning 👮‍♂️ Protected by R2D2
Maxim Cheparin
df[df['Survived'] == 1]['Age'] >= 18
там выводит тру, фолс, а как вывести данные?)
источник