
Sewerin
21.08.2018
16:55:53
И ещё более внезапный вопрос! Если у меня MAPE на трейне и тесте отличается на две сотых процента только, но при этом никакими докручиваниями ошибка не снижается или снижается только на тесте, то мне уже лучше начинать стакать xgboost'ы или ещё покрутить параметры?

Vova
21.08.2018
20:21:27
Мало инфо
Какая модель?
Какая размерность?

Google

Vova
21.08.2018
20:22:05
Какой тип задачи?
Да и собственно почему сразу Xgboost, для начала можно RF, их огромный плюс - трудно переобучить, поэтому применять можно без особых сложностей с тьюнингом гиперпараметров.

49060
21.08.2018
20:28:26
Если бездумно перебирать параметры, то можно сразу втыкать либо с генетическим поиском на 1000000 комбинаций и ложиться спать

Sewerin
22.08.2018
03:59:03

Artyom
22.08.2018
05:56:58

Sewerin
22.08.2018
06:21:45

Artyom
22.08.2018
06:24:41
ну тогда есть куда расти,постройте в пакете h2o

Sewerin
22.08.2018
06:25:28

Artyom
22.08.2018
06:25:58
да он волшебный
основные заклинания col_sample_rate_per_tree, sample_rate, col_sample_rate_per_level, nbins, nbins_cats, histogram_type
если есть категориалки с большим количеством уровней кодирование частотами или средними значениями зависимой переменной должно помочь

Sewerin
22.08.2018
06:33:53
Побежал устанавливать.

Google

Vova
22.08.2018
08:35:08
Мой опыт показывает что если случайный лес ощутимо не помог, то у хгбуста немного шансов. Если с. лес помог, попробовать хгбуст - стОит, скорее всего он ещё что то даст.

49060
22.08.2018
08:35:42
lightgbm быстрее

Vova
22.08.2018
08:35:58
И лучше
Для категориалок
Говорят стоит попробовать в этом случае и catboost от отечественного производителя

Sewerin
22.08.2018
08:49:13
У меня как раз проблема в том, что треть данных категориальная. И в том, что я умею только в R.

49060
22.08.2018
09:01:15
не знаю как в R, но в Python есть прекрасная либа https://github.com/scikit-learn-contrib/categorical-encoding

Sewerin
22.08.2018
09:02:11

Emil
22.08.2018
09:04:03
customers <- data.frame(
id=c(10, 20, 30, 40, 50),
gender=c('male', 'female', 'female', 'male', 'female'),
mood=c('happy', 'sad', 'happy', 'sad','happy'),
outcome=c(1, 1, 0, 0, 0))
customers
id gender mood outcome
1 10 male happy 1
2 20 female sad 1
3 30 female happy 0
4 40 male sad 0
5 50 female happy 0
# dummify the data
dmy <- dummyVars(" ~ .", data = customers)
trsf <- data.frame(predict(dmy, newdata = customers))
trsf
id gender.female gender.male mood.happy mood.sad outcome
1 10 0 1 1 0 1
2 20 1 0 0 1 1
3 30 1 0 1 0 0
4 40 0 1 0 1 0
5 50 1 0 1 0 0
есть такая функция в Caret dummyVars

49060
22.08.2018
09:05:27
типа 2, 3 перегруппировки будут хранить информацию о взаимодействии признаков
но это сильно раздует данные и их лучше хранить в sparse формате, ибо будет очень много нулей

Sewerin
22.08.2018
09:06:38
Хм, можно ссылку?

Emil
22.08.2018
09:07:14

Sewerin
22.08.2018
09:08:40
Поддерживаю
А можете кинуть ссылку на реализацию в R? Вообще не слышал о таком ни разу, гугл выдаёт финансовые организации. ?

49060
22.08.2018
09:10:01
https://alexanderdyakonov.wordpress.com/2016/08/03/python-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D0%BA%D0%B8/
Как создавать новые категориальные признаки
Самый частый приём — конъюнкция. Скажем, конъюнкция двух признаков — это признак, значениями которого являются пары (значение первого признака, значение второго признака). В пакете pandas это делается до неприличия просто: значения приводятся к строковому типу и суммируются (см. рис).(с)
всё очень просто, берёте и группируете по 2-3 признака, а потом ohe hot :)

Emil
22.08.2018
09:14:17
Из нескольких вариантов можно сделать Супервариант. Например, если А-(0,1,2,3) и Б - (0,1,2) и В - (0,1,2,3,4,5) можно создать супер вариант как (0,0,0); (0,0,1) всевозможные комбинации. Но данные возрастут

Sewerin
22.08.2018
09:14:23
Хм. Технически, ведь можно перебрать все возможные пары признаков. Потом тройки. Потом четвёрки. И так далее.

Google

Sewerin
22.08.2018
09:14:25
Вот.
?

Emil
22.08.2018
09:14:35
???
Это хорошо работает в Марковских моделях

Sewerin
22.08.2018
09:15:10
Ну-ка, попробую. А то 7% ошибки не вариант вообще.

49060
22.08.2018
09:15:11
так тут самому просто сделать, пробегаетесь по кат. признакам и создаёте новый, что-то вроде:
df$new_cat <- df$cat1 + "_" + df$cat2
и так по всем, кроме этого можно хранить и по 3 и больше
но большие связи говорят могут негативно влиять, ведь их может и не быть
это один из приемов)

Sewerin
22.08.2018
09:16:36
Спасибо всем! Сейчас пойду ещё пробовать. ?

Emil
22.08.2018
09:19:26
Но матрикс будет огромным. Надо спарс юзать

Artyom
22.08.2018
09:22:47
в h2o есть специальная функция, очень удобно

Sewerin
22.08.2018
09:23:12

Sewerin
22.08.2018
09:23:17
Спасибо. =)

49060
22.08.2018
09:23:19
погуглил, что есть для кат признаков в R:
https://github.com/bfgray3/cattonum
https://github.com/Laurae2/CategoricalAnalysis
https://github.com/challasandeep420/Encoding_Categorical_Variables

Sewerin
22.08.2018
09:23:21
Сначала про лес только глянул.
Восхитительно!

Admin
ERROR: S client not available

Artyom
22.08.2018
12:14:25
Сначала про лес только глянул.
у меня в разработке есть вот такая вещица, там в самом конце тоже про настройку леса есть, возможно, поможет. этот материал правится, обновляется в режиме реального времени, отслеживайте https://drive.google.com/open?id=1qD2hYDYIGMQ39lWPL_HD2gAKIvvlJkCf

Sewerin
22.08.2018
12:33:34
Смотря вот эти вот все штучки немного жалко, что я только по курсам бесплатным всему учусь и вообще самоучка на 95%. Надо бы будет поступить на какой-нибудь хороший платный курс, где мне всё пояснят.

Google

49060
22.08.2018
12:45:13
Платные курсы ничем не лучше и ни на одном курсе вас так не на научат как на собственно решённых задачах

Sewerin
22.08.2018
12:57:44

Emil
22.08.2018
13:11:48

Dan
22.08.2018
13:56:49

Daniel
22.08.2018
15:03:44
Всем привет! Кто-нибудь пробовал машинку в трейдинге? Можете что-нибудь посоветовать по этой теме?

Sewerin
22.08.2018
20:11:38

Vova
22.08.2018
21:08:22

Скрудж
22.08.2018
22:35:53
Ребят, привет. sckit-learn roc_auc_score выдает, скажем так, значение, которое разделяет вероятность 0 и 1? Например, roc_auc_score дал результат 0.80, значит то, что меньше 0.80 это 0, а больше - 1?

Evgeniy
22.08.2018
22:36:10
загугли рокаук

Скрудж
22.08.2018
22:36:27
нет
А не могли бы вы пояснить что дает данная метрика?
Я уже искал, у меня с этим проблема))

Evgeniy
22.08.2018
22:36:54

Скрудж
22.08.2018
22:37:06
Я не могу понять, что значит качество бинарной классификации

Evgeniy
22.08.2018
22:38:08

Скрудж
22.08.2018
22:38:41
верно?

Evgeniy
22.08.2018
22:39:27

Скрудж
22.08.2018
22:40:00

Google

Danil
22.08.2018
22:40:11
Ребят, игра с open ai уже была или нет ?

Evgeniy
22.08.2018
22:40:19

Скрудж
22.08.2018
22:41:01