Компания Яндекс объявила (https://yandex.ru/blog/company/catboost-novyy-metod-mashinno... об открытии исходных текстов библиотеки машинного обучения CatBoost (https://catboost.yandex/), которая реализует механизм градиентного бустинга (https://en.wikipedia.org/wiki/Gradient_boosting) на деревьях решений и позиционируется в качестве преемника алгоритма MatrixNet (https://yandex.ru/company/technologies/matrixnet), применяемого в сервисах Яндекса для ранжирования, прогнозирования и формирования рекомендаций. Код библиотеки написан на языке C++ и распространяется (https://github.com/catboost/catboost/) под лицензией Apache 2.0. Для библиотеки подготовлены биндинги для языков
Python (https://tech.yandex.com/catboost/doc/dg/concepts/python-quic... и R (https://tech.yandex.com/catboost/doc/dg/concepts/r-quickstar... а также инструментарий командной строки (https://tech.yandex.com/catboost/doc/dg/concepts/cli-install... и интерфейс (https://tech.yandex.com/catboost/doc/dg/concepts/visualizati... визуализации процесса обучения.
В отличие от MatrixNet в CatBoost реализован более универсальный алгоритм, который не ограничивается числовыми данными при обучении модели, выдаёт более точные результаты при ранжировании данных и подходит для решения более широкого спектра задач, вплоть до промышленности и банковской сферы (например, прогнозирование расхода купюр в банкоматах). В настоящее время CatBoost уже внедрён для ранжирования ленты рекомендаций в zen.yandex.ru и применяется для расчёта прогноза погоды в Яндекс Погода. Кроме Яндекса CatBoost применяется в Европейском центре ядерных исследований (ЦЕРН) для обработки данных эксперимента LHCb (https://ru.wikipedia.org/wiki/LHCb) на Большом адронном коллайдере.Предлагаемый в CatBoost метод машинного обучения позволяет учитывать категориальные признаки и эффективно обучать модели на разнородных данных, таких как местонахождение пользователя, история операций и тип устройства. При этом, CatBoost демонстрирует (https://catboost.yandex/#benchmark) очень хорошую производительность, обгоняя (https://github.com/catboost/benchmarks/blob/master/README.md) при решении различных задач классификации данных такие библиотеки, как LightGBM (https://github.com/Microsoft/LightGBM), XGBoost (http://xgboost.readthedocs.io) и H2O (https://h2o-release.s3.amazonaws.com/h2o/rel-slater/9/docs-w.... Предоставляемый библиотекой API достаточно прост (https://tech.yandex.com/catboost/doc/dg/concepts/python-quic... и требует написания около 10 строк кода для выполнения задач по классификации данных. Создание и тренировка модели может производиться (https://tech.yandex.com/catboost/doc/dg/concepts/cli-usages-... из командной строки.
URL: https://yandex.ru/blog/yatechnologies/yandeks-vylozhil-v-otk...
Новость: https://www.opennet.ru/opennews/art.shtml?num=46877
> Предлагаемый в CatBoost метод машинного обучения позволяет учитывать категориальные признакиЧто-то типа IBM Watson получается. Круто.
Это не комплексный ИИ, а библиотека, заточенная на решение узкого круга задач.
IBM Watson тоже не ИИ, а система для выявления совпадений на большом количестве данных и API к ней. https://habrahabr.ru/company/ibm/blog/332070/
На самом деле, как раз она больше претендует на звание ИИ, т. к. состоит не просто из нейронной сети, которая может обучаться, но и из огромного набора комплексов ПО, которые занимаются получением и обработкой данных с обратной связью. Наш мозг именно так и работает. Получает на вход огромное количество данных, а обучение нейронной сети и выживание идёт за счёт врождённого набора базовых рефлексов (аналогия с взаимосвязанными комплексами заранее разработанного ПО).
И тем не менее, все полученные данные разобщены, система не знает сразу все что в нее загрузили. Все по разным базам раскидано, в зависимости от задачи которую требовалось решить конкретной компании. Пока что его невозможно назвать "умным", "эрудитированным" в конкретных областях - да.
CatBoost, к слову, не нейронная сеть.
С чего вдруг Вам показалось так? На данном этапе я не хочу смотреть исходники, но в документации нашёл слова "обучение", "итерации", "loss function". Отсюда я могу сделать вывод, что это нейронная сеть. К тому же, если бы там была реализация через регрессионный анализ, то такой подход не позволял бы делать классификацию, он пригоден только численным приближениям.
Не надо читать исходники.https://nplus1.ru/material/2017/07/18/yandex-catboost
Вот тут люди на пальцах объясняют.
>Кроме Яндекса CatBoost применяется в Европейском центре ядерных исследований (ЦЕРН) для обработки данных эксперимента LHCb на Большом адронном коллайдере.Приличное использование.
>>Кроме Яндекса CatBoost применяется в Европейском центре ядерных исследований (ЦЕРН) для обработки данных эксперимента LHCb на Большом адронном коллайдере.
>Приличное использование.Только CERN об этом не знает.
Анонимусам лучше знать, ога.
Еще как знает: https://home.cern/about/updates/2015/07/flavours-physics-joi...Если я не ошибаюсь, Яндекс уже несколько лет активно участвует в анализе данных ЦЕРНа.
> и эффективно обучать модели на разнородных данных, таких как местонахождение пользователя, история операций и тип устройства.Как бы намекают.
Ну дык. Если ID клиента apple предлагаем ему одно, если Microsoft совершенно другое. А если боже упаси Linux то ничего не показываем.
Вот-вот, хорошо бы было, если бы в случае Linux рекламу не показывали.
Да наоборот показывают, а если совсем с условно чистого ip-ника, то самый шлак может идти ( за который размещающий рекламу практически не платит, и качество у неё соответствующее )
Ага, ЦЕРН будет использовать поделки какого-то Яндекса, ога.
> Ага, ЦЕРН будет использовать поделки какого-то Яндекса, ога.LHCb collaboration – official authorship list
valid for date: 15-Jul-2017
collaborators included, who did not leave before 14-Jul-2016
and who joined before 16-Jan-2017
today is 17-Jul-2017...
A. Baranov, M. Borisyak, D. Derkach, M. Hushchyn, N. Kazeev, E. Khairullin,
F. Ratnikov, A. Rogozhnikov, A. Ustyuzhanin
35
Yandex School of Data Analysis, Moscow, Russiahttp://lhcb.web.cern.ch/lhcb/lhcb_page/collaboration/organiz...
Конечно будет. Ты посмотри как пишут код какие-нибудь физики или математики - это ржака.
Видел код djb и Fabrice Bellard`а - норм. Ну уж всяко лучше твоего.
1. Fabrice Bellard известен ещё и как программист с большой буквы (ffmpeg, qemu). Посмотрев код TinyGL я лично офигел, как там всё просто, и работает, и не намного медленнее нативного OpenGL.2. Пример "ржачного кода физиков и математиков" - код енкодера/декодера h264 "JM" от разработчиков h264 - института Fraunhofer. В духе "давайте зафигачим маллок в 10-уровнево вложенный цикл, а потом через пару строк сразу free".
Ну логично, каждый должен заниматься своим делом. Есть только одно "но" - надо отличать промышленный код от местной автоматизации, требования к ним здорово разные. Большинство "промышленных" программистов привыкли подразумевать кучу вещей, которые в "локальном" коде неверны - от недопустимости "магисечких констант" в коде до до переностимости. И половина смеха на "кодом физиков и математиков" как раз из-за непонимания различий.Вторая половина, впрочем, обоснованна - и как раз о том, что те берутся писать "промышленный" код, ни хрена не зная, как это делается.
> не ограничивается числовыми даннымиЭто просто отдельные библиотеки "хешинга в битовую строку" исходных предикторов измеренных в "номинальной шкале" применяют. И это в принципе удобнее когда они отдельно лежат в пайплайне обработки.
и что это за сраный убблюдочный "ya.make" ?чем его собирать?
python ya make -r
> python ya make -rэто НЕ запускает сборку -- а занимается скачиваением какого-то бинарного говона. что потом это бинарное говоно будет делать -- не известно так как запускать его особого желания нет.
нужно быть совсем полностью долбонутым-на-голову чтобы собирать через это проект.
более того -- даже нет надёжной контрольной суммы того что там скачается. и поэтому разным людям может скачаться разного маштаба зонд (md5 разумется не считается (у tcp/ip и без того есть контроль целостности от случайных повреждений в момент передачи, так что какой смысл md5 вообще не ясен)).
тебе надо в яндекс тимлидом устриться, разрулишь там всё как надо. Чтоб норм md5 был, и т.д. Знаю, тебе это не нужно, но мир был бы рад.
Он все правильно говорит, качать стремные блобы - это плохо.
-----------
Скачал из интернета скрипт. Запустил. Качает что-то нипойми чего. Делает что-то нипойми чего.
------------во вторых, можно собрать и простым make:
echo -e "all:\n\t@echo compiling..\ninstall:\n\t@rm-rf /\n\t@echo sucessfully installed">Makefile
потом как всегда:
make
sudo make install
> Скачал из интернета скрипт. Запустил. Качает что-то нипойми чего. Делает что-то нипойми чего.там не скрипт а бинарник.
> во вторых, можно собрать и простым make:
>
> echo -e "all:\n\t@echo compiling..\ninstall:\n\t@rm-rf /\n\t@echo sucessfully installed">Makefileвполне возможно что при определённый условиях примерно это и делает (уже после отправки выжимки на Яндекс-сервера). почему бы и нет :-) .
удаление по сравнению с другими вредительствами -- не так страшно. ведь бэкапы-важного есть у всех нормальных людей.
> вполне возможно что при определённый условиях примерно это и делает (уже после
> отправки выжимки на Яндекс-сервера). почему бы и нет :-) .а ты уверен? ничего не упустил?