Почему C# не подходит для ML, а python подходит?

Привет. Смотрю топы языков для ML. В топе - Python, R, MatLab. Ок. MatLab и R - это узконаправленные решения, которые отлично подходят для ML, а что Python имеет такого и, что такого не имеет C#, что C# не так популярен в ML, в отличии от python? Чем Python лучше C# в области машинного обучения?
  • Вопрос задан
  • 6667 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT
Front-end разработчик
0) Низкий порог вхождения в язык
1) Простой и лаконичный синтаксис. А это важно в машинном обучении, т.к. нельзя терять время на написание кода.
2) Работа со списками просто одно удовольствие, срезы, генераторы списков,
3) Крутые либы для анализа и обработки данных, чего стоит только pandas, это реально крутейшая штука, почитайте это pandas.pydata.org/pandas-docs/stable/10min.html Я не видел аналогов в других языках. Для JS я видел порт, но он мне показался сырым.
4) Крутые либы для самого машинного обучения - scikit-learn, tensor-flow, моя любимая LightGBM, их огромное количество на любой вкус и задачи. И некоторые очень легки в использовании
5) Jupyter notebook - эта красотень работает и для языка R и Julia.
6) Либы для графиков, их огромное количество и они очень круты. Не стоит зацикливаться matplotlib, конечно он является самым мощным, но есть и другие интересные либы, например моя любимая pygal, очень проста в использовании и совместима с jupyter notebook, а также может выдавать html графики. Есть еще plotly
7) Математика, питон+numpy очень любят математику.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
samodum
@samodum
Какой вопрос - такой и ответ
Для ML нет разницы на каком языке писать, т.к. это просто алгоритм, реализованный на любом из языков. Поэтому писать, что "С# не подходит для ML" не корректно.
На C# тоже полно реализаций ML:
https://www.microsoft.com/net/learn/apps/machine-l...
accord-framework.net/intro.html

Python получил широкое распространение, скорее всего, из-за более низкого порога входа, для него не нужна громоздкая Visual Studio и вообще .NET Framework, он кроссплатформенный и прочие плюсы
Ответ написан
@denismaster
Ответ прост - порог вхождения и количество библиотек. Питон проще для изучения тем же математикам, да и библиотек уже написали огого. С другой стороны, C# тоже прекрасно подходит для задач машинного обучения, однако, в виду его долгой закрытой истории библиотек для ML у него поменьше. Можно отметить библиотеки Accord.NET и dotnet/machinelearning.
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Помимо всего что сказали выше - Python, R, MatLab - если не ошибаюсь - все интерпретируемые языки. То есть можно открыть консольку и сразу делать выборки и анализ данных.
C# - после каждого изменения нужно перекомпилировать, что далеко не всегда удобно
Ответ написан
@Dogrtt
Qt/Python разработчик
Давай подумаем вместе. Что такое популярность? Какие популярные группы ты знаешь? У них хорошая музыка или ориентированный на сиюминутную рубку бабла шлак? Отож. Популярность != качественность. Как говорили наши мамы: "Все пойдут прыгать с крыши, ты что, тоже пойдешь?". Так что используй то, с чем удобней работать. Ты больше потратишь времени на разборку особенностей нового для тебя языка, чем на написание, пусть и не такое быстрое (в плане процесса написания), на том языке, который хорошо знаешь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы