1. К ML не только можно, но и нужно подходить не со стороны Python, а со стороны математики/статистики. А "по-дороге" уже смотреть, как эти вещи могут быть реализованы, то-ли на "базовом" Python (но это больше для самотренировки) либо уже реализованы в соответствующих библиотеках, то-ли вообще на других инструментах.
2. Таких примеров достаточно, пусть это вас вдохновляет. И не только "начинал", но и успешно продолжает свою карьеру. Некоторые из них не знают Python от слова "совсем".
Agrael313 Zashefrovano, Вас же спросили, КАК она может что-тот услышать, если микрофон выключен? Т.е. вам надо постоянно держать микрофон включенным, постоянно прослушивать, что в него говориться и выбирать из этого "всего" только то, что служит ключевой фразой. Т.е. это фраза - не сигнал "включить микрофон", а сигнал "все что будет сказано далее, до следующей ключевой фразы воспринимай как команды".
Другими словами, распознаватель речи у вас так или иначе работать постоянно.
Евгений Лернер, Ну пожалуйста, откройте учебник. Прочитайте. Потом поговорим. Вы думаете я не знаю, что надо убирать тренд и сезонность? Думаете, я не знаю, что такое ARIMA, модель Брауна-Хольта-Винтерса? Что такое LSTM нейросети? Как прогнозируются временные ряды? Как выявляются change points, структурные изменения в рядах? Что такое переобучение, и с чем оно связано? И как модель проверяется путем валидации и кросс валидации?
Я вам привел пример элементарнейшего стационарного ряда. Попросил вас просчитать его элементарнейший показатель по четным и нечетным замерам. Показать результаты, потом еще раз сказать, что это "чушь". Или не сказать. Понять, почему так происходит на элементарном показателе и подумать, что будет происходить с более сложными. Для меня это очевидно. И не потому, что я такой умный. Просто потому, что я это вычитал в книгах, а потом десятки если не сотни раз имел возможность в этом убедиться на задачах из реальной жизни.
А вам - могу только посоветовать все таки разобраться что такое временной ряд и чем он отличается от статического набора данных. И почему методы валидации, придуманные для статических наборов нельзя непосредственно переносить на исследования временных рядов.
Евгений Лернер,
Из временного ряда?
Возьмем стационарный ВРЕМЕННОЙ ряд.
a=[1,0,1,1,3,2,2,0,3,1,3,1,1,2,1,2,3,0,2,2,1,1,3,0]
Известно, что лучший способ предсказания в стационарных рядах - по среднему (ну, и дисперсии, если что).
Найдите, ну хотя-бы среднее этого ряда и его подрядов, построенных по четным и нечетным значениям.
Потом еще раз скажите, меняются или нет характеристики ряда, а соответственно, можно или нет вот так выбирать данные для прогноза. Ну и что там с "чушью"?
Про то, как могут поменяться автокорреляционные коэффициенты - я даже не буду тут говорить. Или дисперсия. Да любой показатель. И это - в стационарных рядах. Для нестационарных рядов - картина еще более удручающая.
Вообще-то, это все написано в любом учебнике по временным рядам. Если вы не склонны этому верить и вам неочевидны эти различия временного РЯДА от произвольного набора данных - можете и дальше это считать чушью. Когда проверите это на ставках, рискнув собственными деньгами - не говорите, что вас не предупреждали.
Удачи.
А покажите, где именно я это написал?
К сожалению, вы так и не поняли, о чем я писал. А писал я не про то, что у них разные характеристики, Я писал про то что удаляя элементы из "середины" ряда или замещая пропущенные элементы по некоторому алгоритму вы по сути меняете характеристики изучаемого ряда. А что до разных статистических характеристик, то да у нестационарных рядов характеристики их различных фрагментов могут различаться. Более того, у ряда с авторегрессионным коэффициентом большим 1 так может быть и на разных подмножествах отсчетов.
Впрочем, каждый сам набивает свои шишки.
Удачи.
ТЕОЕТИЧЕСКИ нельзя сначала "дополнить" пропущенные значение, а потом по такой "дополненной" выборке предсказывать. Вернее можно, но точность предсказания будет катастрофически низкой.
Впрочем, для данных финансовых рынков это ВСЕ не имеет никакого значения.
Никак нет. Во временных рядах очень важна последовательность значений в соответствии со временем их наступления. Это БАЗОВОЕ определение временного ряда. Поэтому если то, что вы изучаете - просто статические сигналы, никак между собой не связанные - например, выглядят так [2,6,3,5,4,1...] - можете выбирать в учебную выборку кого хотите, хоть чет-нечет, хоть случайным образом. А вот если речь идет о временных рядах - это не так. Сравните хоть тренды, хоть коэффициенты автокорреляции, хоть любые другие характеристики приведенного ряда, построенные по четным и нечетным значениям.
Фраза про "совпадение по времени" - вообще какая-то загадочная. Задача прогнозирования как раз и состоит в том, что-бы по данным прошлого предсказать предполагаемые значения данных в будущем. А вы по сути хотите научить свою модель заполнять пропуски в данных. Это как бы совершенно разные задачи.
Ну, а "переобучение" к данному вопросу вообще никакого отношения не имеет, уж извините.
но могу ли я например каждый второй отсчет использовать для обучения, а ткстировать на других отсчетах? - это как? На одном отсчете строить модель, на втором - ее тестировать? Или взять (например) четные отсчеты, на них учить, а тестировать - не нечетных? Впрочем - в обоих случаях ответ один - нет, так делать нельзя.
О.... тихонечко отползаю в сторонку.
В сети присутствует десятки если не сотни статей о методах, в которых авторы занимаются попытками предсказания на бирже. Ни один из авторов, на сколько мне известно, миллионером еще не стал. Дело в том, что временные ряды биржевых котировок скорее всего представляет собой т.н. вероятностный процесс броуновскго типа, или "коричневый шум" . А делать предсказания в моделях таких рядов теоретически невозможно.
Если же отвлечься от биржи, то для временных рядов у вас нет возможности "случайным образом" отбирать образцы данных. Все что вы можете сделать - брать некоторую последовательность значений, учить на ней модель (от скользящего или экспоненциального среднего, ARIMA, SARIMA, GARCH до нейросетей типа LSTM или Prophet). А потом пытаться предсказать несколько последующих по времени значений, выступающих в роли тестовой выборки. И смотреть, на сколько хороша ваша модель и соответтсвтующим образом корректировать его. "Закона" который говорит, сколько значений брать в качестве обучающей последовательности, а сколько - в качестве тестовой, не существует. Все определяется используемой моделью, опытом исследователя и имеющимися данными.
iiaptuzan, Переведу. Вас спрашивали не КАКИЕ данные вы собрались давать на вход для обучения сети, а СКОЛЬКО таких данных вы можете дать. Десять тысяч? Двадцать тысяч?
И совсем простой вопрос. Как вы собираетесь вводить "время владения шайбой", броски, голы.... для БУДУЩЕГО матча, результат которого вы собрались предсказывать.
Максим Власов,
Так вот, пока "почти но не со всем"- мы можем считать, что это таки колода карт. А раз так - выпадение следующей карты есть процесс случайный и от предыдущих выборов независимый. Если конечно это процесс выбора карты с возвращением ее в колоду.
Если это не колода карт, т.е. имеется объективная (возможно нам неизвестная) зависимость следующего исхода от предыдущих - то такую зависимость можно попробовать выявить, скорее всего - в вероятностном смысле.
Так что или описание объекта в студию - и тогда можно надеяться на какую-то подсказку, или ограничиваемся только тем, что было сказано - и тогда выпадение любой следующей карты равновероятно.
Евгений Лернер,
Теорема Колмогорова-Арнольда что-ли? Так там вроде речь идет о супепозиции непрерывных функций одной переменной. (Могу и ошибаться). Впрочем чистой математикой вообще и теорией приближений в частности я никогда всерьез не занимался. Так, в молодости читал что-то но не более. Поэтому вряд-ли смогу быть полезным в этой области.
Попробуйте объяснить- и главное понять( !) - просто для примера, метод SVM, особенно в многомерном нелинейном случае без математики.
Попробуйте решить большинство задач класс Change Point Detection без понимания математики и статистики. И таких примеров - масса. Без понимания этих метод очень легко взять и применить метод, который в конкретной ситуации дает заведомо некорректный результат и даже не задумываться от этом.
Вопрос ТС относился к математике для машинного обучения. На этот вопрос я и ответил. К нейронным сетям при этом перешли почему-то вы.
Еще раз: машинное обучение НЕ ограничивается задачам обучения нейросетей, и машинное обучение НЕ сводиться к умению применять метод fit. Для того, что-бы не просто себя считать, но реально быть специалистом по машинному обучению, математика и весьма глубокая, необходима.
Алан Гибизов, - думаю, что такие поля есть, и данные там в нужном формате. В противном случае ошибки бы выскакивали уже вот тут model.fit(x,y)
Скорее всего, ошибка не в том операторе, на который нам указывает ТС.
в основном машинное обучение используют в нейросетях. - это в научно-популярных статьях в основном пишут про нейросети. Модная тема, но только надводная часть айсберга. А в реальных задачах и исследовательских и инженерных используется очень много чего другого.
в понимании машинного обучения важна не математика. различные сеты и их размер, избегание переобучения. То что данных чем больше, тем лучше - никто не спорит. Только вот как вы эти данные будете обрабатывать без математики? Нет, конечно, берем готовую предобученную и проверенную нейросеть, запускаем данные, получаем результат - это понятно. Только это имеет такое-же отношение к машинному обучению, как использование EXCEL - к программированию. Программы пишет программисты, используют пользователи. Методы машинного обучения с математикой и пр. строят специалисты по Data Science, а используют - ну в лучшем случае Аналитики данных. А в худшем - они вообще встроены в мобильный, а пользователь только кнопки нажимают.
NKu, Вопрос скорее был в том - насколько часто в реальности применяются все знания, которые выше тех, что я описал? Т. е. что-то сложнее, чем одинарный интеграл, градиент или вектора.
Мне не очень интересно читать все эти списки пререквизитов, поскольку более половины из них я уже знаю, как видно из моего пояснения к вопросу.
- ну, т.е. вы все это (или многое из этого) читали. Там люди детально объясняли, что нужно знать, почему это нужно знать, как это лучше учить и в каком порядке. Но вы тем людям не верите, а пришли их перепроверять на этот форум? Где 90% - участников школьники и студенты? И вот их мнение для вас важнее?
Вообще-то очень странная логика.
А от оставшихся 10% вы ожидаете опровержения той информации, которая написана в изученных вами "списки пререквизитов"? И отмашки - "можно не учить"? Или подтверждения того, что все это надо? Ну так да, надо. И даже больше, чем в этих статьях описано.
Только вот вопрос был про Машинное Обучение, а не про нейросети. Нейросети - только лишь один из методов, которые используются в Машинном обучении. Самый модный, но не самый интересный и не самый сложный.
Popou,
1. Вопрос о генерации "полноценной инструкции" через нейросети? А зачем? На вход описание задачи - на выходе код? И это с помощью нейросетей? Что-то мне кажется, что вы не очень понимаете, что такое нейросеть и какова природа ее функционирования.
2. Странный вопрос про float и один байт. Просто подумайте, сколько информации можно представить в 4 байтах и сколько информации можно представить в одном байте. Вот этом - в потере информации - и заключается проблема.
Виртуальная машину или исполнитель байт-кода? Это как бы совершенно несвязанные между собой вещи.
Но предположим, вы "создали" некий интерпретатор, принимающий на вход байт или два, интерпретирующий его как команду и что-тот там дальше делающий? А какая разница вашему интерпретатору, как именно вы сформировали свой байт - вручную, или как результат работы другой программы (ну, например - нейросети).
И самое интересное. Значение от 0 до 1, т.е. число формата "float"? Так такие числа занимают четыре байта.
В общем, пока как ничего не было понятно из вашего вопроса, так и не стало понятным.
И тем более непонятно, какое это все отношение имеет к "машинному обучению"?
2. Таких примеров достаточно, пусть это вас вдохновляет. И не только "начинал", но и успешно продолжает свою карьеру. Некоторые из них не знают Python от слова "совсем".