Size: a a a

R (язык программирования)

2020 July 28

А

Александр in R (язык программирования)
Alexey Burnakov
Ещё одна мысль по ходу чтения про Шепли. Пишут, что он решает проблему коллинеарности в лин.моделях. Ну, ок, пока не попробую, не ясно, как скоррелированные фичи будут оценены, но, полагаю, низко. Но мысль, вообще, в другом. Коллинеарность вредна только для оценок ст.ошибок коэффициентов, а не самих коэффициентов (afaik). Для того, чтобы просто сделать предсказание, это вообще не важно, тем паче, если регрессия решается градиентным спуском. В этом свете Шепли полезен в том, что делает модель менее переобученной?
Не уверен что понял мысль про то что Шепли делает модель менее переобученной. Это же просто способ оценки вклада каждой фичи в функцию ошибки. Про коллинеарные фичи, в наверно любых моделях с ними проблем нет, можно накрутить регуляризацию. Проблема с ними когда оцениваешь их важность, по стандартным изменениям энтропии или джини деревянными моделями, коллинеарные переменные делят важность, грубо говоря у вас есть важная переменная, вы добавляете линейные комбинации этой переменной, и ее важность сразу падает во столько же раз, хотя очевидно этого не должно быть в хорошем алгоритме оценки важности. Шепли от этого защищён.
источник

IS

Ivan Struzhkov in R (язык программирования)
Gleb Suvorov
data.table[,row.min:=pmin(t1,t2,,t3)] (напишите пожалуйста о разнице в скорости)
Этот вариант с большим отрывом лидирует. на 10 миллионах - 1.1 секунды.
Все варианты вариант с rowwise - 50 cекнуд на 1 миллионе , вариант с pmin - 37 секунд на 1 миллионе, паралельные варианты с  apply -10-15 секнуд на 10 потоках

Мак бук про 15,  16 гб оперативы i7
источник

э

эдуард in R (язык программирования)
Ivan Struzhkov
Этот вариант с большим отрывом лидирует. на 10 миллионах - 1.1 секунды.
Все варианты вариант с rowwise - 50 cекнуд на 1 миллионе , вариант с pmin - 37 секунд на 1 миллионе, паралельные варианты с  apply -10-15 секнуд на 10 потоках

Мак бук про 15,  16 гб оперативы i7
го еще пандас до кучи)
источник

GS

Gleb Suvorov in R (язык программирования)
спасибо)
источник

IS

Ivan Struzhkov in R (язык программирования)
эдуард
го еще пандас до кучи)
Датасет уже в R - не буду его в питон закидывать)
источник

GS

Gleb Suvorov in R (язык программирования)
пандас до завтра будет считать)) предположение такое
источник

э

эдуард in R (язык программирования)
если apply по фрейму — да, itertuples должен быстро
источник

ВК

Владимир Калинин... in R (язык программирования)
numpy быстрее r
источник

ВК

Владимир Калинин... in R (язык программирования)
если в numpy считать, то будет быстрее
источник

AB

Alexey Burnakov in R (язык программирования)
Александр
Не уверен что понял мысль про то что Шепли делает модель менее переобученной. Это же просто способ оценки вклада каждой фичи в функцию ошибки. Про коллинеарные фичи, в наверно любых моделях с ними проблем нет, можно накрутить регуляризацию. Проблема с ними когда оцениваешь их важность, по стандартным изменениям энтропии или джини деревянными моделями, коллинеарные переменные делят важность, грубо говоря у вас есть важная переменная, вы добавляете линейные комбинации этой переменной, и ее важность сразу падает во столько же раз, хотя очевидно этого не должно быть в хорошем алгоритме оценки важности. Шепли от этого защищён.
Я спросил, эффективен ли Шепли в задаче выбора фичей с прицелом на более несмещенный предикт вне выборки. Если отставить вопросы статистики-коллинеарности в моделях lm/glm в стороне, если интерпретация модели не так уж важна...
источник

А

Александр in R (язык программирования)
Alexey Burnakov
Я спросил, эффективен ли Шепли в задаче выбора фичей с прицелом на более несмещенный предикт вне выборки. Если отставить вопросы статистики-коллинеарности в моделях lm/glm в стороне, если интерпретация модели не так уж важна...
Тут я не смогу ответить. Может кто-то готов расписать теорию по нему и выяснить это на бумаге
источник

Г

Гузаля in R (язык программирования)
Спасибо, я случайно потому что
источник

A

Andrey in R (язык программирования)
Владимир Калинин
если в numpy считать, то будет быстрее
померяем щас
источник

GS

Gleb Suvorov in R (язык программирования)
не будет)
источник

э

эдуард in R (язык программирования)
Ivan Struzhkov
Датасет уже в R - не буду его в питон закидывать)
чекнул у себя такой же датасет, 10 сек на миллионе
df[['t1','t2','t3']].min(axis=1)
источник

GS

Gleb Suvorov in R (язык программирования)
всего в 100 раз медленее
источник

GS

Gleb Suvorov in R (язык программирования)
источник

AB

Alexey Burnakov in R (язык программирования)
Александр
Тут я не смогу ответить. Может кто-то готов расписать теорию по нему и выяснить это на бумаге
Я попробую сравнить на своих данных, уже заинтересовался методом. Просто, интерпретация модели, отбор фичей, и использование интерпретации модели для отбора фичей все приводят немного к разным следствиям. Будем пробовать. Спасибо
источник

А

Александр in R (язык программирования)
Alexey Burnakov
Я попробую сравнить на своих данных, уже заинтересовался методом. Просто, интерпретация модели, отбор фичей, и использование интерпретации модели для отбора фичей все приводят немного к разным следствиям. Будем пробовать. Спасибо
Расскажите о результатах, практические кейсы всегда интереснее
источник

э

эдуард in R (язык программирования)
эдуард
чекнул у себя такой же датасет, 10 сек на миллионе
df[['t1','t2','t3']].min(axis=1)
а вот нумпай за 150мс
np_arr.min(axis=1)
источник