Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III.

Первая, вторая часть

Абсолютно всем добрый день, сегодня мы будем играться с модельками и че-нибудь еще. Запасайтесь чайком либо клавиатурой, и мы начинаем!


В прошлом посту мы остановились на самом интересном месте. Мы обучили модельку:

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Тут есть сурьезный трабл. Если мы будем проверять на одних и тех же данных, то будет не очень хорошая проверка (ну а что если в обуч. выборке у нас одни нолики, а в тестовой - единички?). Так давайте сделаем кросс-валидацию, о которой все так твердят.

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Тэк блэт что тут произошло нафиг?

Мы создали модельку в 3 строке, а в 4 самое интересное. Мы просто передаем функции нашу модельку (необученную) и данные. Я еще поставил cv=10, что означает произвести 10 проверок.

Уже более честный результат! Едем дальше. Как видите, я изменил параметр n_estimators на 150. Этот параметр отвечает за количество деревьев.


Так, ну давайте линейную регрессию? "Неа, не давайте", - скажете вы и будете правы: кто ж классификацию делает линейкой? Погнали с логистикой!

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Так, на этот раз нам дали только 0.8

Теперь почему бы не зарешать методом ближайших соседей?

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Нда... Ну и черт с ним!

Мы поступим по-другому. Давайте объединим мнения всех трех моделей, ведь если каждая работает с такой эффективностью - то вместе будут работать с большей!

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Здесь без кросс-валидола зато с ансамблем, написанным на коленке :))). Итак, что мы сделали: просто взяли обученные модельки (rfc, lr, knn - я переименовал model во всех трех случаях) и при каждом решении смотрели: если двеы или более проголосовали за 1, то ответ 1, если 1 или 0: ответ 0.


Ну что ж, попробуем залить на каггл. Для этого еще чуть-чуть попишем код.

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Не очень красивый код, но я ds и мне как-то пофигу :).

Кстати на второй строке мы заменяем NaN в столбе Fare. А все почему? Потому что не заметили их при обработке! Кто ж знал...


Ладно, проехали. Самое интересное вот прям щас. Гоним на kaggle!

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост
Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Ну и make submission. Смотрим, что вышло :).

Как начать создавать искусственный интеллект если вы юрист/рыболов/трубочист или у вас лапки. Часть III. Машинное обучение, Tutorial by WBG, Длиннопост

Поздравляю, если вы дошли до сюда, то вы уже получили 76% точности на финальной выборке и свое почетное 7000+- место :))). Теперь играйтесь с модельками, с их параметрами (о коих буду по-тихоньку рассказывать) и так далее. Обработайте по-другому данные. В общем, творчества тут много.


Спасибо всем за прочтение, заинтересовавшихся приглашаю в сообщягу. Ну и ссылочка на кот.


На этот раз по мнению бм в посту Гитлер...

Искусственный интеллект

2.4K постов9.7K подписчика

Добавить пост

Правила сообщества

Здесь вы можете свободно создавать посты по теме Искусственного интеллекта. Добро пожаловать :)


Разрешено:


- Делиться вопросами, мыслями, гипотезами, юмором на эту тему.

- Делиться статьями, понятными большинству аудитории Пикабу.

- Делиться опытом создания моделей машинного обучения.

- Рассказывать, как работает та или иная фиговина в анализе данных.

- Век жить, век учиться.


Запрещено:


I) Невостребованный контент

  I.1) Создавать контент, сложный для понимания. Такие посты уйдут в минуса лишь потому, что большинству неинтересно пробрасывать градиенты в каждом тензоре реккурентной сетки с AdaGrad оптимизатором.

  I.2) Создавать контент на "олбанском языке" / нарочно игнорируя правила РЯ даже в шутку. Это ведет к нечитаемости контента.


II) Нетематический контент

  II.1) Создавать контент, несвязанный с Data Science, математикой, программированием.

  II.2) Создавать контент, входящий в противоречие существующей базе теорем математики. Например, "Земля плоская" или "Любое действительное число представимо в виде дроби двух целых".

  II.3) Создавать контент, входящий в противоречие с правилами Пикабу.


III) Непотребный контент

  III.1) Эротика, порнография (даже с NSFW).

  III.2) Жесть.


За нарушение I - предупреждение

За нарушение II - предупреждение и перемещение поста в общую ленту

За нарушение III - бан

Автор поста оценил этот комментарий

А почему на сетке Титаник делать не рекомендуется? Какие задачи решает сетка? В банковском секторе при анализе клиента что используют?

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
А почему на сетке Титаник делать не рекомендуется?

Ну, скажем так. Я не видел, чтобы так делали. На самом деле, это табличные данные и корреляция здесь может быть очень хитрой. Но глубинное обучение здесь не очень понятно зачем. Сетка обычно используется на:

однотипных данных, последовательностях, картинках и так далее. Хотя конечно можно попробовать титаник на сетках, я не пробовал. Имхо, не зайдет.

В банковском секторе при анализе клиента что используют?

Хз, этим вообще не занимался. Скорее всего, там тоже табличные данные, а значит вряд ли сетка. Но все может быть :)

показать ответы
Автор поста оценил этот комментарий

@WhiteBlackGoose а что-нибудь на тему Keras сказать можешь? А так же пример использования TensorFlow или иную библиотеку отличную от Scikit на примере Титаника сделать можешь? Или ссылку дать, а то хочется попробовать другие библиотеки, но что-то не очень выходит.

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Эм, ну титаник не делается на сетках (хотя конечно хз, всякое бывает :) ). Я думаю, самый простой способ опробовать новую либу - просто зайти в kernels, скачать код, запустить и разбираться.


То, что находится с вертушки из простых (cNN):

https://www.kaggle.com/yassineghouzam/introduction-to-cnn-ke...

https://www.kaggle.com/bugraokcu/cnn-with-keras


Из более сложных (rNN):

https://www.kaggle.com/ngyptr/lstm-sentiment-analysis-keras

https://www.kaggle.com/nafisur/keras-lstm


А вообще можете буквально тыкнуться сюда https://www.kaggle.com/kernels и найти по слову keras :). Так очень много чего узнать можно.

показать ответы
Автор поста оценил этот комментарий

Я к тому, что может у вас есть мысли по скобке "{" ?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Понятия не имею
Автор поста оценил этот комментарий

Загрузил ваш код по sol-chekpoint.ipynb.
Проверил работоспособность в юпитере.
Попытался залить на кагл.
Те же ошибки/жалобы кагла.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Намекну более прозрачно. Возможно, они что-то поменяли. Да и данные обычно лежат по пути ../input.csv

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

У нас в целом в коде разница небольшая. У меня на пару моделей больше. До ячеек моделей весь код - ваш.
Кагл сам по себе жалуется на недостаток столбцов PassengerId/Survived и скобку {.
Перемещение ячейки кода topred не дало результатов. 3 ошибки так и остались.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Пройдите мои авто-рекомендации, иначе непонятно
показать ответы
Автор поста оценил этот комментарий

https://yadi.sk/d/3NYrXBv3wiMKQA
Все по книге - "Введение в ИИ". Ч.Б. Гуся.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

topred = (testset.drop("Survived", axis=1))

topred["Fare"] = topred["Fare"].fillna(topred["Fare"].mean())

res = model.predict(np.array(topred))

f = open("res.csv", "wt")

f.write("PassengerId,Survived\n")

id = 892

for r in res:

f.write(str(id) + "," + str(int(r)) + "\n")

id += 1

f.close()

Вот этот блок швырните в самый конец. Хз, как он оказался черт знает где. У меня все заработало с этого момента. И если это не поможет:

Вы запускаете код на каггле?

  Да:

    У вас есть локальные файлы?

      Да:

        На них работает?

          Да:

            Ищите разницу в данных

          Нет:

            Скачайте данные по ссылке в посте

      Нет:

        Ну так скачайте их теста ради

  Нет:

    Попробуйте запустить только мой код, который должен работать. Затем ищите разницу

показать ответы
Автор поста оценил этот комментарий

@WhiteBlackGoose, это с каггла при загрузке кода:

ERROR: Column '{' was not expected (Line 1, Column 1)

ERROR: Required column 'PassengerId' could not be found

ERROR: Required column 'Survived' could not be found
Что думаете?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Думаю, что расшарьте пожалуйста код, чтоб я мог посмотреть о чем это.

показать ответы
Автор поста оценил этот комментарий

Спасибо. Получилось!


А расскажи, пжлст, про kaggle.Может отдельным постом.

Их часто упоминают в темах про ml\ds.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Рассказывал, поищите в моих постах

Автор поста оценил этот комментарий

Вопрос.

В экземпляре MyEnsemble ты передаешь rfc,lr,knn.

Но они нигде не обозначены ранее.

Естессно, питон ругается "name 'rfc' is not defined".

Откуда их взять?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Вопрос законный. Ранее я использовал три разные модели, но для каждой название переменной были model. Попробуйте для каждой модели эту переменную заменить на эти три соответственно. Тогда эти переменные будут обозначать три различные модели, что нам и требуется

показать ответы
Автор поста оценил этот комментарий

А можно как-то посмотреть решение которое победило? https://www.kaggle.com/c/home-credit-default-risk/leaderboar... или это закрытая информация?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Если платное соревнование, то скорее всего невозможно. А вообще, даже решения топ30% иногда интересно посмотреть. Думаю, вам пока хватит тех, что в kernels)). Ну мне хватает
Автор поста оценил этот комментарий

именно это.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Ну тогда это сетка не предскажет, так как это математически невыполнимо)
показать ответы
Автор поста оценил этот комментарий

Последовательностях. Например предсказание игры в кости. Можно использовать сетку? Спасибо, что отвечаешь. Крутая ссылка https://www.kaggle.com/kernels

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Хм? Какую игру? Я надеюсь, вы спрашиваете не про предсказание следуюещго кол-ва очков по предыдущим))
показать ответы
Автор поста оценил этот комментарий

под какую задачу оно затачивается?

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Под задачу бинарной классификации: предсказать, выживет ли человек на титанике или нет
показать ответы