Когда и кем была разработана система matlab
Перейти к содержимому

Когда и кем была разработана система matlab

  • автор:

Cистема численно-математического моделирования MatLab

Клив Моулер, Cleve Moler

MatLab как язык программирования был разработан Кливом Моулером (Cleve Moler) в конце 1970-х годов когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EisPack без необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера в Стэндфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert). Совместными усилиями они переписали MatLab на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JackPac. Первоначально MatLab предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.

Сегодня MatLab (абр. «Matrix Laboratory») — это пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете.

MatLab используют более миллиона инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris и Microsoft Windows.

Язык MatLab является высокоуровневым интерпретируемым языком программирования (3GL), включающим основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования.

Программы, написанные на MatLab, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции не компилируются в машинный код и сохраняются в виде текстовых файлов. Существует также возможность сохранять так называемые pre-parsed программы — функции и скрипты, обработанные в вид, удобный для машинного исполнения. В общем случае такие программы выполняются быстрее обычных, особенно если функция содержит команды построения графиков.

Основной особенностью языка MatLab являются его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно» (Think vectorized).

В этом пособии рассказывается о применении пакета MatLab для анализа многомерных данных. Этот текст не является учебником по MatLab. В нем приведены только базовые сведения о работе в этой среде, необходимые для реализации основных алгоритмов. Более подробное изложение можно найти здесь.

В пособии интенсивно используются понятия и методы матричной алгебры — вектор, матрица, и т.п. Читателям, которые плохо знакомы с этим аппаратом, рекомендуется изучить, или, хотя бы просмотреть, пособие «Матрицы и векторы».

Для практического воплощения конкретных методов используются как специализированные пакеты программ (например, the Unsrambler или SIMCA), так и статистические пакеты общего назначения (например, SPSS или Statistica). Среди средств общего назначения, используемых в исследовательских задачах, особое место занимает пакет MatLab. Его популярность необычайно высока. Это объясняется тем, что MatLab является мощным и универсальным обработки многомерных данных. Сама структура пакета делает его удобным средством для проведения матричных вычислений. Спектр проблем, исследование которых может, осуществлено при помощи MatLab, охватывает: матричный анализ, обработку сигналов и изображений, нейронные сети и многие другие. MatLab — это язык высокого уровня, имеющий открытый код, что дает возможность опытным пользователям разбираться в запрограммированных алгоритмах. Простой встроенный язык программирования позволяет легко создавать собственные алгоритмы. За много лет использования MatLab создано огромное количество функций и ToolBox (пакетов специализированных средств). Самым популярным является пакет PLS ToolBox компании Eigenvector Research, Inc.

Многие книги и статьи содержат MatLab коды, позволяющие читателю сразу применить описываемые методы на практике. MatLab прекрасно интегрируется с Microsoft Word и Excel.

MatLab — это это очень популярный инструмент для анализа данных. По данным опроса, его используют до трети всех исследователей, тогда как программа the Unsrambler применяется только 16% ученых. Главным недостатком MatLab являются его высокая цена. Кроме того, MatLab хорош для рутинных расчетов. Отсутствие интерактивности делает его неудобным при выполнении поисковых, исследовательских расчетов для новых, неисследованных массивов данных.

Проблему цены решает альтернативное математическое обеспечение Chemometrics — специальная надстройка для системы Microsoft Excel. Подробнее о ней рассказано в пособии Проекционные методы в системе Excel.

Внешние интерфейсы

Пакет MatLab включает различные интерфейсы для получения доступа к внешним подпрограммам, написанным на других языках программирования, данным, клиентам и серверам, общающимся через технологии Component Object Model или Dynamic Data Exchange, а также периферийным устройствам, которые взаимодействуют напрямую с MatLab. Многие из этих возможностей известны под названием MatLab API.

COM

Пакет MatLab предоставляет доступ к функциям, позволяющим создавать, манипулировать и удалять COM-объекты (как клиенты, так и серверы). Поддерживается также технология ActiveX. Все COM-объекты принадлежат к специальному COM-классу пакета MatLab. Все программы, имеющие функции контроллера автоматизации (англ. Automation controller) могут иметь доступ к MatLab как к серверу автоматизации (англ. Automation server).

.NET

Пакет MatLab в Microsoft Windows предоставляет доступ к программной платформе .NET Framework. Имеется возможность загружать .NET сборки (Assemblies) и работать с объектами .NET классов из среды MatLab. В версии MatLab 7.11 (R2010b) поддерживается .NET Framework версий 2.0, 3.0, 3.5 и 4.0.

DDE

Пакет MatLab содержит функции, которые позволяют ему получать доступ к другим приложениям среды Windows, равно как и этим приложениям получать доступ к данным MatLab, посредством технологии динамического обмена данными (DDE). Каждое приложение, которое может быть DDE-сервером, имеет своё уникальное идентификационное имя. Для MatLab это имя — MatLab.

Веб-сервисы

В MatLab существует возможность вызывать методы веб-сервисов. Специальная функция создаёт класс, основываясь на методах API веб-сервиса.

MatLab взаимодействует с клиентом веб-сервиса с помощью принятия от него посылок, их обработки и посылок ответа. Поддерживаются следующие технологии: Simple Object Access Protocol (SOAP) и Web Services Description Language (WSDL).

COM-порт

Интерфейс для последовательного порта пакета MatLab обеспечивает прямой доступ к периферийным устройствам, таким как модемы, принтеры и научное оборудование, подключающееся к компьютеру через последовательный порт (COM-порт). Интерфейс работает путём создания объекта специального класса для последовательного порта. Имеющиеся методы этого класса позволяют считывать и записывать данные в последовательный порт, использовать события и обработчики событий, а также записывать информацию на диск компьютера в режиме реального времени. Это бывает необходимо при проведении экспериментов, симуляции систем реального времени и для других приложений.

MEX-файлы

Пакет MatLab включает интерфейс взаимодействия с внешними приложениями, написанными на языках C и Фортран. Осуществляется это взаимодействие через MEX-файлы. Существует возможность вызова подпрограмм, написанных на C или Фортране из MatLab, как будто это встроенные функции пакета. MEX-файлы представляют собой динамически подключаемые библиотеки, которые могут быть загружены и исполнены интерпретатором, встроенным в MatLab. MEX-процедуры имеют также возможность вызывать встроенные команды MatLab.

DLL

Интерфейс MatLab, относящийся к общим DLL позволяет вызывать функции, находящиеся в обычных динамически подключаемых библиотеках, прямо из MatLab. Эти функции должны иметь C-интерфейс.

Кроме того, в MatLab имеется возможность получить доступ к его встроенным функциям через C-интерфейс, что позволяет использовать функции пакета во внешних приложениях, написанных на C. Эта технология в MatLab называется C Engine.

Наборы инструментов

Для MatLab имеется возможность создавать специальные наборы инструментов (англ. toolbox), расширяющие его функциональность. Наборы инструментов представляют собой коллекции функций, написанных на языке MatLab для решения определённого класса задач. Компания Mathworks поставляет наборы инструментов, которые используются во многих областях, включая следующие:

  • Цифровая обработка сигналов, изображений и данных: DSP Toolbox, Image Processing Toolbox, Wavelet Toolbox, Communication Toolbox, Filter Design Toolbox — наборы функций, позволяющих решать широкий спектр задач обработки сигналов, изображений, проектирования цифровых фильтров и систем связи.
  • Системы управления: Control Systems Toolbox, ч-Analysis and Synthesis Toolbox, Robust Control Toolbox, System Identification Toolbox, LMI Control Toolbox, Model Predictive Control Toolbox, Model-Based Calibration Toolbox — наборы функций, облегчающих анализ и синтез динамических систем, проектирование, моделирование и идентификацию систем управления, включая современные алгоритмы управления, такие как робастное управление, H?-управление, ЛМН-синтез, ч-синтез и другие.
  • Финансовый анализ: GARCH Toolbox, Fixed-Income Toolbox, Financial Time Series Toolbox, Financial Derivatives Toolbox, Financial Toolbox, Datafeed Toolbox — наборы функций, позволяющие быстро и эффективно собирать, обрабатывать и передавать различную финансовую информацию.
  • Анализ и синтез географических карт, включая трёхмерные: Mapping Toolbox.
  • Сбор и анализ экспериментальных данных: Data Acquisition Toolbox, Image Acquisition Toolbox, Instrument Control Toolbox, Link for Code Composer Studio — наборы функций, позволяющих сохранять и обрабатывать данные, полученные в ходе экспериментов, в том числе в реальном времени. Поддерживается широкий спектр научного и инженерного измерительного оборудования.
  • Визуализация и представление данных: Virtual Reality Toolbox — позволяет создавать интерактивные миры и визуализировать научную информацию с помощью технологий виртуальной реальности и языка VRML.
  • Средства разработки: MatLab Builder for COM, MatLab Builder for Excel, MatLab Builder for NET, MatLab Compiler, Filter Design HDL Coder — наборы функций, позволяющих создавать независимые приложения из среды MatLab.
  • Взаимодействие с внешними программными продуктами: MatLab Report Generator, Excel Link, Database Toolbox, MatLab Web Server, Link for ModelSim — наборы функций, позволяющие сохранять данные в различных видов таким образом, чтобы другие программы могли с ними работать.
  • Базы данных: Database Toolbox — инструменты работы с базами данных.
  • Научные и математические пакеты: Bioinformatics Toolbox, Curve Fitting Toolbox, Fixed-Point Toolbox, Fuzzy Logic Toolbox, Genetic Algorithm and Direct Search Toolbox, OPC Toolbox, Optimization Toolbox, Partial Differential Equation Toolbox, Spline Toolbox, Statistic Toolbox, RF Toolbox — наборы специализированных математических функций, позволяющие решать широкий спектр научных и инженерных задач, включая разработку генетических алгоритмов, решения задач в частных производных, целочисленные проблемы, оптимизацию систем и другие.
  • Нейронные сети: Neural Network Toolbox — инструменты для синтеза и анализа нейронных сетей.
  • Нечёткая логика: Fuzzy Logic Toolbox — инструменты для построения и анализа нечётких множеств.
  • Символьные вычисления: Symbolic Math Toolbox — инструменты для символьных вычислений с возможностью взаимодействия с символьным процессором программы Maple.

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

Знаете ли Вы, что макроэкономическая модель — это экономико-математическая модель, в которой присутствуют переменные, характеризующие различных хозяйствующих субъектов (предприятия, отрасли), составляющих моделируемую хозяйственную систему, и математическое описание связей между этими субъектами.

История появления системы MATLAB

Современная компьютерная математика предлагает целый набор интегрированных программных систем и пакетов программ для автоматизации математических расчетов: Eureka, Gauss, TK Solver!, Derive, Mathcad, Mathematica, Maple V и др. Возникает вопрос: «А какое место занимает среди них система MATLAB?»
MATLAB — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы — MATrix LABoratory — матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.
Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Примером может служить расширение MATLAB — Simulink. Это существенно повышает интерес к системе MATLAB, вобравшей в себя лучшие достижения в области быстрого решения матричных задач.
. Однако в настоящее время MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных СКМ. Слово «интегрированная» указывает на то, что в этой системе объединены удобная оболочка, редактор выражений и текстовых комментариев, вычислитель и графический программный процессор. В новой версии используются такие мощные типы данных, как многомерные массивы, массивы ячеек, массивы структур, массивы Java и разреженные матрицы, что открывает возможности применения системы при создании и отладке новых алгоритмов матричных и основанных на них параллельных вычислений и крупных баз данных.
В целом MATLAB — это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Она вобрала в себя и опыт, правила и методы математических вычислений, накопленные за тысячи лет развития математики. Это сочетается с мощными средствами графической визуализации и даже анимационной графики. Систему с прилагаемой к ней обширной документацией вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению ЭВМ — от массовых персональных компьютеров до супер-ЭВМ.
Увы, пока представленный полностью лишь на английском и частично на японском языках!
Система MATLAB была разработана Молером (С. В. Moler) и с конца 70-х гг. широко использовалась на больших ЭВМ. В начале 80-х гг. Джон Литл (John Little) из фирмы MathWorks, Inc. разработал версии системы PC MATLAB для компьютеров класса IBM PC, VAX и Macintosh. В дальнейшем были созданы версии для рабочих станций Sun, компьютеров с операционной системой UNIX и многих других типов больших и малых ЭВМ. Сейчас свыше десятка популярных компьютерных платформ могут работать с системой MATLAB. К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания. И вот теперь появилась новейшая версия этой системы — MATLAB 6. Одной из основных задач системы было предоставление пользователям мощного языка программирования, ориентированного на математические расчеты и способного превзойти возможности традиционных языков программирования, которые многие годы использовались для реализации численных методов. При этом особое внимание уделялось как повышению скорости вычислений, так и- адаптации системы к решению самых разнообразных задач пользователей.
Возможности MATLAB весьма обширны, а по скорости выполнения задач система нередко превосходит своих конкурентов. Она применима для расчетов практически в любой области науки и техники. Например, очень широко используется при математическом моделировании механических устройств и систем, в частности в динамике, гидродинамике, аэродинамике, акустике, энергетике и т. д. Этому способствует не только расширенный набор матричных и иных операций и функций, но и наличие пакета расширения (toolbox) Simulink, специально предназначенного для решения задач блочного моделирования динамических систем и устройств, а также десятков других пакетов расширений.
В обширном и постоянно пополняемом комплексе команд, функций и прикладных программ (пакетов расширения, пакетов инструментов, (toolbox)) [Пакет инструментов, пакет расширения, прикладная программа — почти синонимы при переводе термина toolbox, но пакет инструментов собственно MATLAB 6 рассматривается как один из toolbox всей системы, включающей MATLAB 6, Simulink и другие пакеты. Редакция старалась максимально сохранить авторский стиль, но следует помнить, что и под прикладной программой, и иод пакетом расширения автор имеет в виду toolbox в терминах MATLAB. — Примеч. ред.
] системы MATLAB содержатся специальные средства для электротехнических и радиотехнических расчетов (операции с комплексными числами, матрицами, векторами и полиномами, обработка данных, анализ сигналов и цифровая фильтрация), обработки изображений, реализации нейронных сетей, а также средства, относящиеся к другим новым направлениям науки и техники. Они иллюстрируются множеством практически полезных примеров. К разработкам расширений для системы MATLAB привлечены многие научные школы мира и руководящие ими крупные ученые и педагоги университетов.
Важными достоинствами системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде текстовых m-файлов (с расширением .m) и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создавать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач.
Поразительная легкость модификации системы и возможность ее адаптации к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (toolbox), намного расширивших сферы применения системы. Некоторые из них, например Notebook (интеграция с текстовым процессором Word и подготовка «живых» электронных книг), Symbolic Math и Extended Symbolic Math (символьные вычисления с применением ядра системы Maple V R5) и Simulink (моделирование динамических систем и устройств, заданных в виде системы блоков), настолько органично интегрировались с системой MATLAB, что стали ее составными частями. Аннотационное описание этих и ряда других пакетов дано в уроке 23. Более подробно, хотя в версиях для выпуска 11.

MatLab

MatLab — высокоуровневый интерпретируемый язык программирования вместе с пакетом прикладных программ и интегрированной средой для разработки, выполнения инженерных и математических расчетов, работы с матричными базами данных, визуализации.

«IT-специалист с нуля» наш лучший курс для старта в IT

MatLab как язык программирования создал в 1970-х годах Клив Моулер, декан факультета компьютерных наук в Университете Нью-Мексико. Разработка упрощала использование библиотек Linpack и EISPACK студентам, не умеющим программировать на языке Fortran. MatLab быстро распространился в других образовательных учреждениях США. После выступления в Стэнфордском университете с Кливом Моулером связался инженер Джон Литтл, который предложил учредить коммерческую компанию The MathWorks для развития языка и среды программирования.

Профессия / 8 месяцев
IT-специалист с нуля

Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

vsrat_7 1 (1)

Для чего нужен язык MatLab

MatLab включает матричные структуры данных, набор математических функций, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования и пр. Среди самых часто используемых возможностей MatLab:

  • математические вычисления и информационный анализ;
  • визуализация данных в виде двух- и трехмерных графиков, динамических анимаций;
  • программирование и разработка алгоритмов.

В основном MatLab используется в научных исследованиях и инженерных разработках. Например, он также применяется:

  • в разработке автоматизированных систем управления в различных механизмах, от обычных стиральных машин до аэрокосмических комплексов;
  • сборе и анализе различной финансовой информации (котировок акций, цен, процентов, доходов и т.д.), а также инвестиционной деятельности для прогнозирования ситуаций на биржах, оптимизации инвестиционных портфелей;
  • проектировании и анализе нейронных сетей как в рамках фундаментальных исследований, так и для решения прикладных задач: распознавания образов, управления нелинейными системами, прогнозирования и т.д.;
  • обработке и улучшении качества сигналов при разработке аудио- и видеооборудования, телекоммуникационных систем, медицинской диагностике (УЗИ, МРТ, КТ) а также в астрофизике, астрономии, геологии, геофизике и т.д.;
  • в биологии, биоинформатике, генетике, эпидемиологии для построения математических моделей различных биологических процессов и организмов.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить

Преимущества и недостатки

Преимущества

Легкость освоения. В сравнении с C/C++, Fortran и т.д. язык достаточно легко изучать. У него простой и интуитивно понятный синтаксис, а также масса сопроводительной документации от разработчиков. Для его использования оператору не обязательно быть профессиональным программистом.

Широкий функционал. Язык MatLab включает продвинутую библиотеку для обработки и построения графиков, интегрированные функции линейной алгебры (LAPACK, BLAS), быстрого преобразования Фурье (FFTW), работы с полиномами, базовой статистики, решения дифференциальных уравнений и пр.

Обновляемость. Основные обновления языка и всей среды программирования происходят два раза в год.

Преобразования в «быстрый» код. Программы, написанные на MatLab, можно перевести на C/C++ с помощью MatLab Coder.

Интегрированность. Большой выбор прикладных приложений от официальных и сторонних разработчиков расширяет возможности языка.

Большое научное сообщество. Язык MatLab используется во многих университетах и исследовательских институтах.

Недостатки

Перегруженность. Большое число команд и операторов существенно замедляют работу программ, написанных на MatLab (в последних версиях этот недостаток практически устранен). Данные хранятся в оперативной памяти в виде векторов, поэтому на быстродействие также сильно влияет скорость векторизации — преобразования данных в векторы и обратно, операции с ними.

Узкая направленность. Использовать MatLab можно только в его замкнутой экосистеме, на других программных платформах этот язык неэффективен.

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

Сочетание узкой специализации и высокой стоимости — основная причина, по которой программный пакет MatLab не получил широкого распространения.

IT-специалист с нуля

Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

Matlab

Начал выкладывать слайды своего курса ПЗАД. В его рамках я рассказываю также и про связку Matlab, R, Python (последнее время без R — в зависимости от настроения). Так получилось, что работать в Матлабе мне всегда нравилось: в своё время быстро перешёл на него с С, великолепная графика и помощь. Из минусов только отсутствие хороших библиотек для машинного обучения и платность.

matlab

Слайды: Matrix Laboratory (эффективное программирование) (pdf) сделаны по моей старой книжке (см. последнюю главу). В книжке ещё есть хорошая подборка задач — можно проверить свои знания.

Share this:

Нравится Загрузка.

Похожее

Matlab : 7 комментариев

rustam32 :

Спасибо большое, что делитесь такой полезной информацией! Читая Ваш блог, меня все больше мучает вопрос: что не так с R? Вот в опросе, который Вы устраивали относительно недавно, тоже почти никто его не упоминал. Это так традиционно сложилось или у него есть какие-то серьёзные недостатки?

R — хороший язык, созданный специально для статистического анализа данных. Лет 5 назад только в нём можно было найти волшебные библиотеки randomForest, gbm и т.п. Большинство современных алгоритмов (xgboost, глубокие НС и т.д.) тут же портируются на R (ну или имеют подходящие обёртки). Сейчас его полностью адаптируют для работы с Big Data. Скоринговые системы многих российских банков написаны на R. В чём подвох…
1) Синтаксис R раздражает профессиональных программистов.
2) На нём сложно вести профессиональную разработку (всё, что написано на R остаётся кодом на R).
3) Python традиционно используют для многих задач: парсинг логов, web-разработка и т.п. Если возникла потребность в машинном обучении, то ни у кого не вызовет вопросов, если опять будут использовать Python. А вот если речь зайдёт об R… позвольте, а зачем использовать какой-т там R?!

Спасибо за ответ.
Особенно понравился первый пункт:) Синтаксис у R действительно очень «своеобразный».
Кстати, на эту же тему: http://www.kdnuggets.com/2015/05/r-vs-python-data-science.html

Сусанин :

Александр, пара небольших замечаний по R в скоринге.
Большая часть крупных российских банков использует для скоринга (в проме) BRMS- платформу SM европейской компании Experian (которая стоит как чугунный мост) или (намного реже) решение американской компании FICO (которая еще дороже). Плюс некоторое количество внедрений еще одного европейского решения.
Крупнейший банки пользуют американский софт SAS RTDM (та же BRMS, только способная считать еще больше и быстрее, и еще более сложные вещи) и есть, если не ошибаюсь, единичные внедрения продукта аналогичного класса от Oracle (тоже США), хотя я лично знаю только о внедрения последнего у коллекторов и о пилоте в одном банке (но я этой темой с Oracle плотно не интересовался). Банки, у которых нет денег на вышеперечисленное, и которым не надо скорить десятки или сотни тысяч заявок в день по десяткам или сотням моделей и сотням или тысячам маршрутов со скоростью порядка секунд, пользуют чаще всего решения типа Deductor российской компании BaseGroup.
Вместе с BRMS-машинами Deductor, FICO и SAS RTDM почти всегда используют «родные» решения для разработки моделей и аналитики соответствующего производителя, что позволяет бесшовно внедрять модели в пром (у SAS так вообще целая линейка аналитических продуктов — от статпакета до датамайнингового решения с рядом отраслевых расширений, которые отдельно лицензируются). У Experian такого решения нет, так что SM пользуют обычно либо вместе с аналитическими продуктами SAS (в России самый частый вариант), либо вместе с SPSS (один случай в России мне известен), либо с Matlab (на Западе вроде бы такое бывает, про РФ не слышал), либо плагин ScorTo для Excel. Ну или вообще «голый» Excel — и так бывает, особенно в ближнем Зарубежье, пока банк что-то не купит (строго говоря, не совсем Excel — на VBA пишут скрипты, точнее пользуют готовые из популярной западной книги, где показано, как в Excel скормодели делать). В Лондоне в банках для аналитики Matlab вроде как активно пользуют, но я никогда не интересовался, куда эти модели потом внедряют. Подозреваю, что собеседник не вполне понял мой вопрос (или я его ответ) и он говорил об инвестиционных банках, а не о кредитном скоринге. Впрочем, там пользуют скорее всего решения Experian в проме, так что один фиг ручками надо вносить модели, какой бы ты статпакет или матпакет не пользовал. А в рыночных рисках Matlab реально рулит, так что вполне допускаю, что там Matlab пользуют активно в рыночных рисках для аналитики, и, чтобы зоопарк не плодить, и для задач кредитного скоринга.
В Штатах, где конкуренция дикая, для аналитики вообще что только не используют от узкоспециализированных решений типа Arrow Modeler (для скоринга) до S+ (проприетарный отец R) или KNIME, но в банках там везде FICO окопался, причем его из банков, как SAS из медицины, фармы, атомной энергетики и транспортных компаний фиг сковырнешь
Я это к чему — R ни российский Deductor, ни европейские решения типа SM, ни американский SAS RTDM не поддерживают.
Примеры использования R в России есть, но я знаю только о четырех — в одном госбанке для валидации моделей Базель 2, в другом — для разработки некоторых моделей корпоративного кредитования, да и то там R запускают на АНАЛИТИЧЕСКОМ сервере SAS c помощью SAS IML (модуль SAS для матричных вычислений, аналог Matlab в некотором смысле) буквально ради пары алгоритмов, которые на SAS толком не реализованы, еще в одном небольшом банке (который то в конце 2, то ли в начале 3 сотни по активам) для разработки моделей (там 2 или 3 модели в год делают и их вполне все устраивает), и в одной финансовой компании, которая пользует ETL-машину от Oracle, модели на R запускают в проме для обсчета (в пакетном режиме), но соответствующее решение, позволяющее гонять модели на R в проме (в режиме пакетного обсчета) стоит как чугунный мост.
Решение, позволяющее применять модели R в проме в потоковом режиме в решении класса BRMS, по-моему, было только у компании RA,(и то я не уверен на 100%), которую Microsoft купил. Oracle, возможно, уже «вкрутил» такую возможность в свое BRMS решение RTD класса (в ETL-машине уже точно поддерживается), и SAS вроде как грозится это тоже сделать. Последние собираются еще и поддержку Python в свои продукты добавить — строго говоря, основные деньги мегавендоры зарабатывают на платформых для прома (для очень продвинутых клиентов) и на отраслевых solution (для всех остальных), а не на датамайнинговых инструментах и статпакетах, даже в серверном исполнении. Так что SAS, который всегда считался одним из самых дорогих статпакетов, сейчас базовую версию своего статпакета (без графической оболочки) вообще бесплатно дает. Если тенденция сохранится, лет через 5-7 они ИМХО и продукты типа Guide и Miner будут бесплатно давать, а бабки будут брать за допноды для разработки специализированных актуарных и скоринговых моделей, за серверные версии с поддержкой репозитария моделей, да за коробки для прома, где все эти модели должны жить и приносить деньги.
От себя я замечу, что это не есть что-то совсем новое для мегавендоров, например, когда они на заре становления с самописок перетаскивали клиентов, были добавлены поддержка С, Fortran и Cobol
Более того, американская корпорация может дать грант университету, те сваяют какой-то супералгоритм на C или Fortran, и это можно спокойно пользовать в среде, например, SAS (или любого другого крупного вендора научного, инженерного или аналитического ПО) для каких-то изощренных вещей. Так что для SAS и Oracle такие финты привычны.
Цель расширения поддержки R и Python, насколько я понял, в том, чтобы сбить цену на аналитиков в Штатах (в университетах в США много спецов, умеющих работать с R и Python), и сделать внедрение продвинутой аналитики в пром более доступным для среднего и малого бизнеса. А крупному бизнесу дать возможность использовать наиболее передовые алгоритмы, которые мегавендор еще сам не успел реализовать на своей платформе (и вообще сэкономить на таких вещах) P.S. Спасибо огромное за материалы.

Спасибо за развёрнутый комментарий. Очень полезный! Поясню, почему я написал «Скоринговые системы многих российских банков написаны на R».
2-3 года назад я общался с выпускницей нашей кафедры, которая успела поработать во многих банках. Она как раз писала скоринговые системы и сказала, что в «богатых банках» используют SAS, а в «бедных» — R. Позже её высказывание часто подтверждалось. Например, в прошлом году я собеседовал парня из Хоум Кредит, он сказал, что пишет на R (что меня, впрочем, очень удивило). На самом деле, Вы меня даже ещё больше удивили. Я впервые слышу про использование Deductor для этих целей. Ясно, что у BaseGroup есть куча банков в клиентах, но я не думал, что они достаточно крупный игрок на этом рынке.

Сусанин :

1. R часто используют как вспомогательный инструмент для каких-то отдельных задач. В этом смысле мы тоже его используем, т.к. там есть пара статистик, которые не реализованы в SAS, плюс библиотеки для работы с временными рядами богаче, чем в SAS ETS, а покупать SAS Forecasting Studio для решения задач, которые раз-два в год возникают — глупость полнейшая 2. Сейчас в Россию достаточно агрессивно Microsoft решил зайти. Причем, насколько я вижу, они продвигают не только облачный Azure (который скорее малым компаниям будет интересен и тем, кто не готов серьезно вкладываться в экспертизу и инфраструктуру), но и свой продукт Microsoft R Server (на базе решения компании Revolution Analytics, которую MS приобрел годом ранее).
Учитывая, что средний бизнес в России на MS SQL Server весьма плотно сидит (на Oracle крупняк преимущественно), что оный R Server плотно интегрировали в SQL Server 2016, и есть опенсорсная реализация, шансы у MS неплохие. Тем более, что сообщество R в России сейчас уже довольно многочисленное. Задумка, насколько понимаю, та же — снизить порог вхождения для бизнеса (среднего, который сейчас в это мало вовлечен), в т.ч. за счет использования недорогих аналитиков и лицензий. Так что в ближайшие года 3 рынок труда для людей со знанием R может сильно увеличиться.

Scikit-Learn: тонкие вопросы о реализации методов машинного обучения | Анализ малых данных :

[…] Другие заметки в блоге из этой же серии:Питон (Python), Python: категориальные признаки, Знакомство с Pandas, Знакомство с scikit-learn (слайды), Считаем категории, NumPy — делаем быстрее, Matlab. […]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *