Shogun – це найстаріша ML бібліотека загального призначення з відкритим вихідним кодом, яка пропонує широкий спектр ефективних і уніфікованих методів ML [Shogun] [ShogunGoogle] [Sonnenburg 2010], побудованих на архітектурі, яка написана на C++. Ця бібліотека ліцензується відповідно до умов ліцензії GNU GPLv3.
Бібліотека SVM містить 15 реалізацій в поєднанні з більш ніж 35 реалізаціями ядра, які можуть бути додатково скомбіновані/побудовані шляхом зважування під’ядер. Shogun охоплює широкий спектр методів регресії і класифікації, а також ряд лінійних методів, алгоритмів навчання прихованих марковських моделей (Hidden Markov Models, HMM), статистичного тестування, кластеризації, підрахунку відстаней, FFNN, оцінки моделей і багато іншого. Він активно розроблявся з 1999 року, і підтримується і на сьогоднішній день (поточна версія 6.1.4, 07.2019). Автори оригіналу – Гуннар Ретц з Товариства імені Макса Планка для сприяння розвитку наук і Сорен Сонненбург з Берлінського технічного університету. В даний час Shogun розробляється різноманітною командою добровольців і з 2017 року є фінансово-спонсорованим проектом NumFOCUS.
Основна ідея Shogun полягає в тому, що його базові алгоритми прозорі і доступні, і кожен має мати можливість використовувати їх безкоштовно. Він успішно використовувався в розпізнаванні мови і почерку, медичній діагностиці, біоінформатиці, комп’ютерному зорі, розпізнаванні об’єктів, аналізі фондового ринку, мережевої безпеки, виявленні вторгнень і багатьох інших напрямках. Shogun може використовуватися у багатьох мовах і середовищах, таких як Python, Octave, R, Java / Scala, Lua, C # і Ruby. Він надає прив’язки до інших складних бібліотек, включаючи LibSVM/LibLinear, SVMLight, LibOCAS, libqp, Vowpal Wabbit, Tapkee, SLEP, GPML і має в майбутньому в планах взаємодію з TensorFlow і Stan.
Сильні сторони:
- Широкий набір інструментів ML / DM з безліччю стандартних і передових алгоритмів ML.
- Open-source, кросплатформена, орієнтована на API бібліотека з відкритим вихідним кодом, найстаріша і все ще підтримувана бібліотека з базовою реалізацією на C ++.
- Прив’язки до багатьох інших бібліотек ML, інтерфейс програмування на багатьох мовах.
Слабкі сторони:
- Велика частина коду створювались науковцями для їх досліджень протягом тривалого часу, і тому його код нелегко підтримувати або розширювати.
- Нестача документації і прикладів.
- Тільки для академічного використання