Описание затрат относилось к программированию на языке python (насколько я знаю, в R все также). Кроме большего числа телодвижений, построение ARIMA моделей все-таки требует каких-то знаний.
Возможно, в Eviews эта задача полностью решена и прогноз строиться автоматически одной кнопкой за несколько минут. К сожалению, я не встречалась с этой программой.
Рекомендую посмотреть на примеры на странице с документацией по функции pairplot в библиотеке seaborn.
По гистограммам можно понять распределение признаков (нормальное оно или нет, сбалансированы ли классы и т.д.)
По scatter plots будет видна, например, линейная зависимость между признаками.
Если же отображать также классы разными цветами, то можно выявить в каком пространстве (паре признаков) классы будут хорошо отделяться друг от друга. Рассмотрим, pairplot для сортов ирисов: видно, классы сливаются в пространстве признаков (sepal_length, sepal_width), а в пространстве (petal_length, petal_width) достаточно легко провести разделяющие гиперплоскости.
Кроме того, у меня остался dataset и сырые html-ки (правда, он был собран полгода назад и не содержит последние новинки). Если интересно, могу поделиться для дальнейших изысканий :)
Соглашусь, что получается длиннее чем просто вызов df.plot(), который я чаще всего использую, но плюсы, о которых говорил Андрей feriat, пока что для меня перевешивают трудозатраты.
А вообще я использую простую функцию-обертку для стандартных графиков:
def plot_df(df, title):
data = []
for column in df.columns:
trace = go.Scatter(
x = df.index,
y = df[column],
mode = 'lines',
name = column
)
data.append(trace)
layout = dict(title = title)
fig = dict(data = data, layout = layout)
iplot(fig)
Да, верно: в полноценной production версии пришлось бы обвешать код дополнительными проверками на наличие тегов/атрибутов и обрабатывать exceptional cases
При попытке записать unicode строку в файл по умолчанию будет использована кодировка ASCII и ничего не получится (ASCII не может закодировать символы >128): UnicodeEncodeError: 'ascii' codec can't encode characters in position 23-31: ordinal not in range(128).
Вот поэтому я явным образом указываю кодировку cp1251.
Стоит отметить, что BeautifulSoup выбирает оптимальный парсер из установленных:
If you don’t specify anything, you’ll get the best HTML parser that’s installed. Beautiful Soup ranks lxml’s parser as being the best, then html5lib’s, then Python’s built-in parser
Я измерила время работы на своих данных и в среднем получила такие цифры bs_html_parser: 0.43 секунды bs_lxml_parser: 0.43 секунды (значимой разницы между lxml и python's default html-parser в BS на своих данных я не вижу) lxml: 0.05 секунд (lxml явно выигрывает)
Спасибо за замечания, исправила. Первое, естественно, опечатка и не несет никакого смысла. Использование += вместо map гораздо лаконичнее — буду знать.
Спасибо за статью, очень познавательно и интересно.
В статье рассмотрено несколько Python библиотек: scikit-learn, statmodels и Patsy. Есть ли между ними какая-то принципиальная разница кроме синтаксиса (может, в функциональности или быстродействии)? С какой библиотеки лучше начинать свое изучение Machine Learning?
Отличный вопрос! Посмотреть можно тут (добавила в Notebook сравнение по производительности).
Стоит помнить, что Pandasql под капотом работает на SQLite и перегоняет данные из DataFrames в БД. Так что, ожидаемо, код на Pandasql будет работать дольше. В первых 2 примерах время выполнения кода на Pandas составляет порядка 0.01 секунды, а на Pandasql — 1 секунда (при этом рост времени выполнения от объема данных достаточно линейный).
В примере с JOIN'ом таблиц Pandasql выигрывает у Pandas'а (скорее всего, более эффективный JOIN таблиц в SQLite позволяет отыграть затраты на накладные расходы).
Ооо да, тоже классная фишка
В документации такой возможности не встречала.
Описание затрат относилось к программированию на языке
python
(насколько я знаю, вR
все также). Кроме большего числа телодвижений, построениеARIMA
моделей все-таки требует каких-то знаний.Возможно, в
Eviews
эта задача полностью решена и прогноз строиться автоматически одной кнопкой за несколько минут. К сожалению, я не встречалась с этой программой.Имеется в виду конкретный месяц конкретного года:
(df.month = M) & (df.year = Y)
Да, все последующие вопросы относятся ко всем данным.
Рекомендую посмотреть на примеры на странице с документацией по функции
pairplot
в библиотекеseaborn
.По гистограммам можно понять распределение признаков (нормальное оно или нет, сбалансированы ли классы и т.д.)
По scatter plots будет видна, например, линейная зависимость между признаками.
Если же отображать также классы разными цветами, то можно выявить в каком пространстве (паре признаков) классы будут хорошо отделяться друг от друга. Рассмотрим, pairplot для сортов ирисов: видно, классы сливаются в пространстве признаков
(sepal_length, sepal_width)
, а в пространстве(petal_length, petal_width)
достаточно легко провести разделяющие гиперплоскости.Добрый вечер! Я не Юрий, но отвечу :)
Тетрадки с решениями никуда отправлять не нужно, достаточно ответить на вопросы в google-форме.
Все данные для примеров есть еще в репозитории mlcourse_open.
Спасибо за статью!
Может быть, пригодится моя статья на хабре про то, как парсить КиноПоиск: https://habrahabr.ru/post/280238/
Кроме того, у меня остался dataset и сырые html-ки (правда, он был собран полгода назад и не содержит последние новинки). Если интересно, могу поделиться для дальнейших изысканий :)
Соглашусь, что получается длиннее чем просто вызов
df.plot()
, который я чаще всего использую, но плюсы, о которых говорил Андрей feriat, пока что для меня перевешивают трудозатраты.А вообще я использую простую функцию-обертку для стандартных графиков:
При попытке записать unicode строку в файл по умолчанию будет использована кодировка ASCII и ничего не получится (ASCII не может закодировать символы >128):
UnicodeEncodeError: 'ascii' codec can't encode characters in position 23-31: ordinal not in range(128)
.Вот поэтому я явным образом указываю кодировку cp1251.
Если интересно, подробнее про кодировки в Python есть хорошая статья на Хабре.
(источник)
Я измерила время работы на своих данных и в среднем получила такие цифры
bs_html_parser: 0.43 секунды
bs_lxml_parser: 0.43 секунды (значимой разницы между lxml и python's default html-parser в BS на своих данных я не вижу)
lxml: 0.05 секунд (lxml явно выигрывает)
В статье рассмотрено несколько Python библиотек: scikit-learn, statmodels и Patsy. Есть ли между ними какая-то принципиальная разница кроме синтаксиса (может, в функциональности или быстродействии)? С какой библиотеки лучше начинать свое изучение Machine Learning?
Стоит помнить, что Pandasql под капотом работает на SQLite и перегоняет данные из DataFrames в БД. Так что, ожидаемо, код на Pandasql будет работать дольше. В первых 2 примерах время выполнения кода на Pandas составляет порядка 0.01 секунды, а на Pandasql — 1 секунда (при этом рост времени выполнения от объема данных достаточно линейный).
В примере с JOIN'ом таблиц Pandasql выигрывает у Pandas'а (скорее всего, более эффективный JOIN таблиц в SQLite позволяет отыграть затраты на накладные расходы).