Python Pandas vs R

User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Python Pandas vs R

Post by perasperaadastra »

Извините за оффтоп, просто тут возник один вопрос по R... Как правильно взять индексы тех данных, у которых в колонке Description содержится "Metro"? Если бы было только "Metro", то можно через which(df$Description=="Metro"). Но что если в строке содержится "Blah Metro Blah"? Правильно ли я понимаю, что grep("Metro", df$Description) мой друг? Или есть что-нибудь получше?
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Python Pandas vs R

Post by tessob »

Физик-Лирик wrote:Скорее, это от задач зависит. Если из 10 миллионов записей Вы вытягиваете только несколько тысяч, то статистическая ошибка уже немалая, скажем, если нужно определить среднее или пропорции (исключительно в качестве примера). Все-таки она убивает медленно с увеличением размера выборки (1/sqrt(n)). Не совсем понятно, зачем Вы все остальные записи выбрасываете. Опять же вопросы про распределения и корреляции (как/зачем). Но это все определяется поставленными задачами. Как я говорил, распределённые технологии могут помочь, но можно работать и без них.
Я в курсе про статистическую ошибку. Если принимать во внимание генеральную совокупность, то это просто катастрофа наверное, но приходится работать с тем, что есть. И данные я не выбрасываю. Я просто до того момента пока не решу что именно я собираюсь сделать использую свои 3-5 тысяч, а когда готовлю продуктивную модель, разумеется, использую все 100% данных.

Про распределения и корреляции можно долго. С корреляцией чуть проще, если она очень близка к +/-1, то достаточно только одной из переменных. Попробуйте визуально представить распределение точек в трехмерном пространстве, если по двум осям они коррелируют 0,97. Такие мелочи иногда прилично искажают модели. С распределениями все веселее и менее однозначно. Если признаки распределены равномерно, то можно просто брать и не думать. Но если появляются горбы... Иногда такие умилительные картины появляются на гистограммах с финансовой отчетностью, в которой сидят бухгалтерские приписки. :D В общем, если горб один и ровный, то снайпер честно пытался попасть в цель. Если горбов больше, или явная асимметрия, то снайпер явно чудил. Если сравнить распределения по разным временным интервалам, то можно даже понять когда он начал чудить и посчитать на сколько примерно он начудил.
Физик-Лирик wrote:Вы в свободном плавании или на консалтерскую контору работаете? Это я к тому, не ищет ли Ваша контора новых консалтеров. А то я утомился в своей конторе, пора ... :D
Я сейчас сам по себе. Работаю как правило один или с фронтендом. География - EU. Кроме того, я не столько машинным обучением занимаюсь, сколько дискретной оптимизацией - всякие задачи на графах. Основной фокус - это разное производство и логистика. Машинное обучение просто иногда подворачивается. На самом деле много чего подворачивается от калибровки роботов, до детектирования коробок на конвейерной ленте. Так что, если Вам такое интересно, то я в следующий раз буду иметь это ввиду. Я только за. Конкуренции не боюсь просто потому, что ее нет. Вообще нет. Работы вал. Общая ситуация - каменный век. Ставки высокие. Иногда только попадаются убогие и юродьевые, но это скорее плюс, т.к. не скучно и можно ставки завышать. :D
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Python Pandas vs R

Post by Физик-Лирик »

perasperaadastra wrote:Извините за оффтоп, просто тут возник один вопрос по R... Как правильно взять индексы тех данных, у которых в колонке Description содержится "Metro"? Если бы было только "Metro", то можно через which(df$Description=="Metro"). Но что если в строке содержится "Blah Metro Blah"? Правильно ли я понимаю, что grep("Metro", df$Description) мой друг? Или есть что-нибудь получше?
Думаю лучше использовать gregexpr
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Python Pandas vs R

Post by Физик-Лирик »

tessob wrote: Про распределения и корреляции можно долго. С корреляцией чуть проще, если она очень близка к +/-1, то достаточно только одной из переменных. Попробуйте визуально представить распределение точек в трехмерном пространстве, если по двум осям они коррелируют 0,97. Такие мелочи иногда прилично искажают модели. С распределениями все веселее и менее однозначно. Если признаки распределены равномерно, то можно просто брать и не думать. Но если появляются горбы... Иногда такие умилительные картины появляются на гистограммах с финансовой отчетностью, в которой сидят бухгалтерские приписки. :D В общем, если горб один и ровный, то снайпер честно пытался попасть в цель. Если горбов больше, или явная асимметрия, то снайпер явно чудил. Если сравнить распределения по разным временным интервалам, то можно даже понять когда он начал чудить и посчитать на сколько примерно он начудил.
На самом деле, корреляция переменных не является проблемой для машинного обучения. Если интересно, можно обсудить. Если вкратце, то многие методы "проглатывают" их без проблем. Проблемы могут возникнуть в линейных методах, но они решаются регуляризацией (лассо, ридж регрессия например). Я бы сказал, основная проблема в интерпретации результатов. Например, как ведут себя p-values коэффициентов линейной регрессии, если есть две переменные с высокой корреляцией, но каждая переменная является "важной" для объяснения целевой функции.

Строить матрицу ковариации ... а если есть тысяча переменных многие из которых категорийные. Не уверен. Гистограммы для тысячи переменных? Геморно всё это.
tessob wrote: Я сейчас сам по себе. Работаю как правило один или с фронтендом. География - EU. Кроме того, я не столько машинным обучением занимаюсь, сколько дискретной оптимизацией - всякие задачи на графах. Основной фокус - это разное производство и логистика. Машинное обучение просто иногда подворачивается. На самом деле много чего подворачивается от калибровки роботов, до детектирования коробок на конвейерной ленте. Так что, если Вам такое интересно, то я в следующий раз буду иметь это ввиду. Я только за. Конкуренции не боюсь просто потому, что ее нет. Вообще нет. Работы вал. Общая ситуация - каменный век. Ставки высокие. Иногда только попадаются убогие и юродьевые, но это скорее плюс, т.к. не скучно и можно ставки завышать. :D
Интересные задачи. Мне все интересно, хотя моя область явно иная. Люблю учить новое. :D
Просто скучно стало в своей конторе. Масштаб уже не тот. :lol:
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Python Pandas vs R

Post by Сабина »

Снежная Королева wrote:Разделение труда - вредно. Я никому не доверю чистить мою дату :D

Недавно читала статью с названием Engineers shouldn't write ETL, полностью согласна.
И кто в данной ситуации есть engineers :) ? Аналитики или .. ?
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Python Pandas vs R

Post by Сабина »

tessob wrote:
Снежная Королева wrote:Разделение труда - вредно. Я никому не доверю чистить мою дату :D
Полностью согласен! А то как в анекдоте получается: "Идут два врача по больнице, один знает куда ставить клизму, а другой как". :umnik1:
С постановщиками клизм такое может и пройдет, а вот с heart surgery наврядли. Хирург, пытающийся одновременно делать пациенту анастезию, просто непрофессионален увы :)
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Python Pandas vs R

Post by perasperaadastra »

Физик-Лирик wrote:
perasperaadastra wrote:Извините за оффтоп, просто тут возник один вопрос по R... Как правильно взять индексы тех данных, у которых в колонке Description содержится "Metro"? Если бы было только "Metro", то можно через which(df$Description=="Metro"). Но что если в строке содержится "Blah Metro Blah"? Правильно ли я понимаю, что grep("Metro", df$Description) мой друг? Или есть что-нибудь получше?
Думаю лучше использовать gregexpr
Спасибо, попробую.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Python Pandas vs R

Post by perasperaadastra »

>Буду там у них девочка подай-принеси.

Хуже. Будут отпускать сексистские шуточки. У французов с этим весьма вольно. Сам наблюдал у стажеров. :(
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Python Pandas vs R

Post by Сабина »

Снежная Королева wrote:
Сабина wrote:
Снежная Королева wrote:Разделение труда - вредно. Я никому не доверю чистить мою дату :D

Недавно читала статью с названием Engineers shouldn't write ETL, полностью согласна.
И кто в данной ситуации есть engineers :) ? Аналитики или .. ?
Нет, data engineers, не аналитики.

Смысл в том, что написание ETL - это грязная, но важная работа. Если ETL пишут люди, которые не строят потом модели, то оно будет написано намного эффективнее, чем если писать будет аналитик, но! рано или поздно с ETL произойдёт одно из двух: или инженеры заскучают и уйдут, или они не уйдут, но значит они плохие инженеры. И поломают процесс, а аналитики даже знать не будут.

Короче, скучную работу должен делать тот, кто понимает, зачем она ему нужна, и чтобы иметь полный контроль на процессор. Я лично на работе control freak, и никому не верю. Все сама-сама. Да, менее эффективно и вообще медленно, зато я точно знаю что делаю.
Но ведь ест места где "менее эффективно и вообще медленно" - это просто смерть бизнеса
https://www.youtube.com/watch?v=wOwblaKmyVw
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Python Pandas vs R

Post by tessob »

Физик-Лирик wrote:На самом деле, корреляция переменных не является проблемой для машинного обучения.
У меня уже был похожий "спор" с приятелем. Ту как, если слесаря выпьют, то идут настраивать карбюратор... В общем, мы взяли линейную функцию, потом рандомом добавили еще один Х, сильно коррелирующий с первым. Потестили разные алгоритмы. Поняли, что это не спортивно и добавили еще измерений и еще шума. Потестили еще и производительность. В итоге оба пришли к выводу, что стоит в процессе подготовки данных выкидывать лишний мусор из модели.
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Python Pandas vs R

Post by tessob »

Снежная Королева wrote:tessob, как у вас все интересно. В чем вы делаете дискретную оптимизацию, какой software? Как у вас с языком, в смысле хватает ли английского или надо знать французский/немецкий?
Нет там никакой software. Все приходится писать самому на java, т.к. потом нужно передать это поддержке.

Английского бывает недостаточно, иногда приходится отказываться от работы. Однако, особой проблемы в этом нет. В крупных компаниях английский хоть на каком-то уровне знает большинство. Незнание языка создает больше проблем в бытовом плане, т.к. персонал в отелях, магазинах, ресторанах и парикмахерских может просто не знать английского. Английский хорошо знают в Нидерландах, Дании, Польше, Германии, во всей Скандинавии, в стране Басков. В Испании, Италии, Франции, бывает туго, т.к. в отеле после шести может не оказаться никого с английским, в ресторанах почти норма, что его никто не знает и все меню на местном. Бельгия - это просто очень-очень странная страна.
Снежная Королева wrote:У меня есть возможность переместиться в Париж в нашу Data science группу, но смущает обилие французов. Из всей группы только один китаец, остальные - местные, ну и мужики все. Буду там у них девочка подай-принеси.
Мне нравится с Французами работать они в большинстве своем обязательные и ответственные. Ну и достаточно прямолинейные - минимум fluffy language в переписке, ну и если ты не прав, то тебе так это и скажут, а не эскалируют. С Итальянцами, например, очень сложно работать. С ними хорошо дружить и что-то праздновать, но заставить их работать очень сложно.

Для меня до сих пор загадка, как столько разных менталитетов сохраняются на такой маленькой территории и почему это так сильно зависит от стран.
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Python Pandas vs R

Post by Физик-Лирик »

tessob wrote: У меня уже был похожий "спор" с приятелем. Ту как, если слесаря выпьют, то идут настраивать карбюратор... В общем, мы взяли линейную функцию, потом рандомом добавили еще один Х, сильно коррелирующий с первым. Потестили разные алгоритмы. Поняли, что это не спортивно и добавили еще измерений и еще шума. Потестили еще и производительность. В итоге оба пришли к выводу, что стоит в процессе подготовки данных выкидывать лишний мусор из модели.
Так модель не описана, мне сложно судить. Будем говорить о МЛ (супервайзд). Безусловно, переменные с высокой корреляцией новой информации не несут. Если переменных с десяток, тогда всё просто. Построил ковариационную матрицу, графики, проанализировал ... все ясно. Однако, как я упоминал выше, на практике переменных может быть сотни или тысячи. Проверять все корреляции? А что делать с категорийными переменными? Гонять chi^2? А как найти корреляции между категорийными и числовыми переменными? В теории все можно, но на практике не стоит. Самое простое, всё оставит как есть и применять нелинейные методы, типа деревьев, леса, суппорт вектор машины, бустинга и т.п. Либо линейные с регуляризацией. В зависимости от задачи, можно уменьшить размерность пространства типа метода главных компонент или декомпозиции по сингулярным значениям (в принципе математически практически одно и тоже). Да, может быть неустойчивость, но это опять-таки скорее проблема интерпретации. Вот шум куда больше проблем создаёт. Или Байеса. Вот там все проблемы зарыты.
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Python Pandas vs R

Post by Физик-Лирик »

Имел в иду байес, но получилось иначе. :D
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Re: Python Pandas vs R

Post by blanko27 »

Физик-Лирик wrote:Вот шум куда больше проблем создаёт.
Как там в песенке у Macklemore: "One man's trash, that's another man's come-up" Как отличить шум от higher dimensions, которые ваш hypothesis set не может capture? (Sorry за Runglish, вообще не понимаю, как эти термины сказать по-русски) :)
...а мы такой компанией, возьмем, да и припремся к Элис!
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Python Pandas vs R

Post by Физик-Лирик »

blanko27 wrote:
Физик-Лирик wrote:Вот шум куда больше проблем создаёт.
Как там в песенке у Macklemore: "One man's trash, that's another man's come-up" Как отличить шум от higher dimensions, которые ваш hypothesis set не может capture? (Sorry за Runglish, вообще не понимаю, как эти термины сказать по-русски) :)
Наверное, для начала попытаться понять, каков источник. Опять же термин "шум" может иметь разные значения. :D
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Python Pandas vs R

Post by tessob »

Физик-Лирик wrote:В теории все можно, но на практике не стоит.
Начинаю понимать, что у меня получаются слегка кривоватые объяснения, т.к. пишу через призму тех практических задач, которые приходилось решать в последнее время. Прошу прощения. На практике обычно работаю с достаточно небольшим количеством признаков, которые достаточно хорошо понимаю. Часто даже знаю где может быть корреляция, а где ее не может быть точно. Именно в таких задачах я сразу избавляюсь от коррелирующих признаков.

Если стоит задача объяснения черного ящика, то там - да, логика работы с данными будет уже другой. Например, если черный ящик - это какое-либо механическое оборудование. Так же я точно не стану заниматься подобным, если данные описывают текст или изображение, т.к. считать корреляцию между словами и пикселями слегка сомнительно. :-)
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Python Pandas vs R

Post by Физик-Лирик »

tessob wrote:Начинаю понимать, что у меня получаются слегка кривоватые объяснения, т.к. пишу через призму тех практических задач, которые приходилось решать в последнее время. Прошу прощения. На практике обычно работаю с достаточно небольшим количеством признаков, которые достаточно хорошо понимаю. Часто даже знаю где может быть корреляция, а где ее не может быть точно. Именно в таких задачах я сразу избавляюсь от коррелирующих признаков.
На самом деле, всё нормально. Мне всегда интересно что-то новое узнать.

Интересно, что автор топика решил делать по поводу Питона.

Еще раз спрошу, кто что интересное читает. Задавал тот же вопрос полтора месяца назад. Так же полностью убедился, что я все же Frequentist же, а не Bayesian. Ближе мне первое. Как с этим у других?
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Python Pandas vs R

Post by perasperaadastra »

Физик-Лирик wrote:Интересно, что автор топика решил делать по поводу Питона.
Все еще думаю. Одна из проблем питона, что нельзя все промежуточные результаты и скрипты засунуть в пакет и отложить на светлое будущее. Учитывая, что я работаю набегами, это плохо. Может быть есть для питона оболочка подобная R Studio?
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Python Pandas vs R

Post by tessob »

perasperaadastra wrote:Все еще думаю. Одна из проблем питона, что нельзя все промежуточные результаты и скрипты засунуть в пакет и отложить на светлое будущее. Учитывая, что я работаю набегами, это плохо. Может быть есть для питона оболочка подобная R Studio?
У питона это ноутбуки - https://ipython.org/notebook.html" onclick="window.open(this.href);return false;
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Python Pandas vs R

Post by flip_flop »

tessob wrote:
perasperaadastra wrote:Все еще думаю. Одна из проблем питона, что нельзя все промежуточные результаты и скрипты засунуть в пакет и отложить на светлое будущее. Учитывая, что я работаю набегами, это плохо. Может быть есть для питона оболочка подобная R Studio?
У питона это ноутбуки - https://ipython.org/notebook.html" onclick="window.open(this.href);return false;
Я пользуюсь вовсю ноутбуками (Jupyter для Python + Julia +R + ... 50 languages), но есть ещё Spyder, типа Matlab IDE for Python. "Spyder- best IDE for Science" (?) , и говорят, что подобен RStudio, с которой не знаком, sorry.
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Python Pandas vs R

Post by tessob »

Физик-Лирик wrote:Еще раз спрошу, кто что интересное читает. Задавал тот же вопрос полтора месяца назад. Так же полностью убедился, что я все же Frequentist же, а не Bayesian. Ближе мне первое. Как с этим у других?
Сейчас специально порылся в своих закромах электронных книг. Единственное, что там можно читать как книгу - это только Алгоритмы Стивена Скиена. Алгоритмы - это единственная тематика, которую я собираю. Но их я не читаю, а скорее бегло просматриваю, чтоб потом возвращаться при необходимости. Все остальное справочники по разным темам. Аналога лекций Фейнмана точно посоветовать не смогу.

Что касается подходов к вероятности, то если задуматься, я всегда использую частотные методы. Ходя мне кажется, что я просто еще не достиг того того дзена, когда баесовски методы хотелось бы использовать на автомате. Человек с молотком везде видит гвозди. Вот мне просто кажется, что у меня молоток из другой партии. :D

Могу вместо книги порекомендовать - https://www.youtube.com/playlist?list=P ... -hGaFGifkl" onclick="window.open(this.href);return false;
Сам раз 6 начинал смотреть, но "темные силы" вмешивались в процесс и мешали мне. Но я обязательно это досмотрю. Наверное это самый интересный докладчик по баесовской вероятности.

Еще бывает иногда забавно смотреть Саватеева фоном. Он иногда очень забавные вещи рассказывает из каких-то дальних уголков математики. Практической пользы не много, если топология, планарные графы или узлы для вас не смысл жизни, но случайно на такие вещи просто не наткнуться. Еще иногда так же фоном смотрю Сергея Попова по астрономии. Попов регулярно рассказывает про передний край астрономической науки и используемые методы.
Last edited by tessob on 01 Mar 2017 20:07, edited 1 time in total.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Python Pandas vs R

Post by perasperaadastra »

tessob wrote:
perasperaadastra wrote:Все еще думаю. Одна из проблем питона, что нельзя все промежуточные результаты и скрипты засунуть в пакет и отложить на светлое будущее. Учитывая, что я работаю набегами, это плохо. Может быть есть для питона оболочка подобная R Studio?
У питона это ноутбуки - https://ipython.org/notebook.html" onclick="window.open(this.href);return false;
Гм... я юпитером и пользовался (через браузер)... но, видимо, еще не разобрался, как сохранять сессию...
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Python Pandas vs R

Post by tessob »

perasperaadastra, если у Вас убунта, то он по умолчанию все в корневом каталоге пользователя сохраняет. Если мак, то думаю также. Если файлам нужно придать смысл, то file - rename. Если Вы давно играетесь и редко заходите в этот каталог, то там у вас уже помойка.
notknown
Уже с Приветом
Posts: 17496
Joined: 25 Jan 2005 00:59

Re: Python Pandas vs R

Post by notknown »

flip_flop wrote:
tessob wrote:
perasperaadastra wrote:Все еще думаю. Одна из проблем питона, что нельзя все промежуточные результаты и скрипты засунуть в пакет и отложить на светлое будущее. Учитывая, что я работаю набегами, это плохо. Может быть есть для питона оболочка подобная R Studio?
У питона это ноутбуки - https://ipython.org/notebook.html" onclick="window.open(this.href);return false;
Я пользуюсь вовсю ноутбуками (Jupyter для Python + Julia +R + ... 50 languages), но есть ещё Spyder, типа Matlab IDE for Python. "Spyder- best IDE for Science" (?) , и говорят, что подобен RStudio, с которой не знаком, sorry.
Я сама нежно люблю RStudio, особенно с тех пор как они разработали R Notebooks (взяли лучшее из питоновских notebooks).

Но вот видела что и питонсчики делают что-то похожее на RStudio, сама не пользовалась:

https://www.yhat.com/products/rodeo" onclick="window.open(this.href);return false;
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Python Pandas vs R

Post by iDesperado »

а Apache Zeppelin случайно никто не использовал для блокнотов ?

Return to “Вопросы и новости IT”