タグ

bigdataに関するteddy-gのブックマーク (167)

  • Theory Of Retracement - A Complete Overview On Trend

    teddy-g
    teddy-g 2023/06/20
    なんかSTL分解とかして時系列分析したときに参考にした。DowntrendとかUptrendとか。備忘。
  • (Python編) 時系列データをサクッとSTLでトレンド・季節性に分解

    幸か不幸か、ビジネス系のデータの多くは時系列データです。売上データもホームーページのアクセスログもセンサーデータも時系列データです。 時系列データを手にしたとき、どのようなデータなのか見てみたい、ということは多々あります。 多くの場合、折れ線グラフを描き傾向を掴む、ということをやります。 折れ線グラフを眺めると、トレンド(上昇傾向や下降傾向)や季節性などが見て取れるケースがあります。 そこで、サクッとトレンドや季節性などを掴む手法がSTL分解(Seasonal Decomposition Of Time Series By Loess)です。 STL分解(Seasonal Decomposition Of Time Series By Loess)を実施することで、元データをトレンド、季節性、残差に分解することができます。 元データ = トレンド + 季節性 + 残差 STL分解(Seas

    (Python編) 時系列データをサクッとSTLでトレンド・季節性に分解
    teddy-g
    teddy-g 2023/06/20
    STL分解すれば時系列のトレンドをざっくり捉えることができる。ビジネスデータの場合、Seasonal Factorは12ヶ月と思っておけば大体OK。
  • [Python]NetworkXでQiitaのタグ関係図を描く

    はじめに Pythonのライブラリ、NetworkXの使い方を、Qiitaの投稿に付けられたタグの関係グラフの作成を例にして説明します。 NetworkXを使うと、下に示すような、ノードとエッジで構成されるグラフを描くことができます。 実行環境 Windows 10 Python 3.5.2 (Anaconda) Jupyter notebook 元データの取得 Qiitaは、投稿を取得するAPIを公開しているので、簡単に投稿を取得することができます。 JSON形式で返ってくるデータを下記コードでPythonの辞書に変換します。 なお、非認証の場合、1リクエストごとに最大100記事、1時間ごとに60回の制限があるので、 今回は、100*60 = 6000 記事を対象とします。 import requests import json items = [] params = {"page":1

    [Python]NetworkXでQiitaのタグ関係図を描く
    teddy-g
    teddy-g 2021/07/26
    この通りやればnetworkxでグラフが書けると見せかけてnetworkx 2.x系だと色々と変更しないと動かないという罠。
  • PandasでNaNの列を処理する

    Pandas でデータを扱うことで、データ分析の前処理が格段に楽になります。 列データにおける NaN の処理を例に、Pandasの便利さの説明をしたいと思います。 NaNとはNaN(Not a Number) は浮動小数点型における異常な値のことを意味します。 わかりやすい例で言うと、0での割り算が該当します。これは実数では表せないため、 NaN になります。 Pandas において NaN は 値が欠損している 場合によく遭遇する表現です。 具体例で見ていきましょう。以下のようなサンプルデータ(sample.csv)を作成します。 ID,名前,年齢,性別,趣味 1,小林,20,男,野球観戦 2,田中,35,女,飲み会 3,佐藤,29,男 4,鈴木,44,女,編み物データを read_csv 関数で読み出して DataFrame とした後、表示してみます。 1import pandas

    teddy-g
    teddy-g 2021/02/14
    DataFrameにNaNが入っているかどうかをチェックするにはisna().any()でチェック。NaNを埋めるのはfillna('埋め文字')。fillnaでは元のDataFrameは上書きされないので注意。
  • Bubble map with Python and Basemap | The Python Graph Gallery

    teddy-g
    teddy-g 2020/10/08
    とにかくBasemapのことは忘れるんだ!MapBoxを思い出せ!
  • Basemapをインストールしようとしたらつまづいたので忘備録 - Qiita

    屋で立ち読みしたらBasemap( pythonで簡単に地図をプロットできるモジュール。データの可視化を地図上にしたいときにとても重宝します。)っていうなんかかっこよさそうなものがあるってことで帰って早速インストールしてみました。 以下のようなシンプルなコードでかっこいい地図が描けます。 インストールまで結構つまづいたので忘備録としてのメモ。 import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap %matplotlib inline m = Basemap() m.bluemarble()

    Basemapをインストールしようとしたらつまづいたので忘備録 - Qiita
    teddy-g
    teddy-g 2020/10/08
    地図可視化ではBasemapは諦めてMapBoxでやりなはれ、と将来の自分に警告を送るべく残しておく。
  • Pythonで地名から住所と座標を割り出すジオコーディングを試してみる

    2020年新年最初の投稿です 色々とPython製のライブラリについて調べていたら、仕事でも使えそうなライブラリを見つけたので、今回はそれを試してみます。 地名から座標を割り出す今回はジオコーディングの一種でもある地名や住所から座標を割り出してくれるPython Geocoderというのを使っていきます。Geocoderというものは、多言語にもあるライブラリだそうです。 Geocoderの特徴は、複数のマップサービスのAPIを統一されたスキーマや文法などで代わりに呼び出してくれます。 約30個近くのマップサービスに対応しており、GeocoderからGoogleMap、OpenStreetMapとあらゆるマップサービスからマップの情報を引き出してくれます。 ちなみにGoogleMapなどはAPI Keyが必要ですが、API Keyを設定していなくても、API Key不要なOpenStreet

    Pythonで地名から住所と座標を割り出すジオコーディングを試してみる
    teddy-g
    teddy-g 2020/10/08
    地名だけじゃなくランドマークとかMountain View, CAみたいな表現からもGeocodingできるスグレモノ。毎度取りに行かずGeocoding結果をcsvにして再利用すれば良い。Excelの地図可視化がヘボくなったのでこっち推奨。
  • GeoIP2を使ってIPアドレスの情報を取得 (Python編) - Tahoo!!

    前のエントリーでは、PHPでGeoIPを使ってIPアドレスを解析した。 エントリーでは、Pythonを使ったやり方をメモ。と、言ってもほぼPHPと同じw データベースのダウンロード 上記のエントリーと同様なので、上記のエントリーを参照のこと。 インストール インストールにはpipを使う。pipのインストールに関しては、pythonを使っている場合大抵インストールされていると思われるので省略する。 PHPと同様にGithubの公式ページが参考になる。 GeoIP2 Python APIのインストール $ pip install geoip2 これでインストールは完了。 使ってみる 以下のサイトを参考に、PythonでもIPアドレスから地域の情報を取得してみる。 サンプルコード import geoip2.database # データベースの読み込み reader = geoip2.data

    GeoIP2を使ってIPアドレスの情報を取得 (Python編) - Tahoo!!
    teddy-g
    teddy-g 2020/10/08
    うっかり間違えてインストールしたら割と便利だったGeoIP2。Plotly/Mapboxと組み合わせればIP→位置情報→地図可視化のコンボを決められる。
  • Pandasでヒストグラムの作成や頻度を出力する方法

    ヒストグラムを作成するhist関数 基数の数を変更する (bins) ラベルを元にヒストグラムを作成する by 非数値データの頻度をヒストグラムで表示する まとめ 参考 Pandasにもヒストグラムを作成する関数hist()が存在します。この関数は値を表示するのではなく、ヒストグラムをmatplotlibを使ってプロットします。単純に頻度の数値データが欲しい場合はvalues_counts関数が便利な関数です。 記事では ヒストグラムの作成の仕方 value_counts関数を使った非数値データの頻度の出力方法 について解説します。 今回扱うサンプルデータはKaggleのチュートリアルからとってきたものです。 Titanic - Kaggle ここのtrain.csvという名前のファイルを使います。 (ダウンロードするためにはユーザー登録が必要ですが簡単なものなのでしておくことをお勧めし

    Pandasでヒストグラムの作成や頻度を出力する方法
    teddy-g
    teddy-g 2020/10/08
    Pandasでヒストグラムを書くときのポイントをいくつか。備忘まで。
  • PythonとPlotlyでオープンデータを可視化する - Pythonと本と子供と雑談と

    teddy-g
    teddy-g 2020/10/08
    PlotlyとMapboxでデータを地図上に可視化するサンプル的な話。あまり参考にならないが日本語でサンプル説明している例があまりないので備忘まで。
  • 単語の分散表現と構成性の計算モデルの発展

    岡崎直観. 2015. 単語の分散表現と構成性の計算モデルの発展. 2015年度人工知能学会全国大会(第29回), OS-1 意味と理解のコンピューティング (2), 2F5-OS-01b-1.

    単語の分散表現と構成性の計算モデルの発展
    teddy-g
    teddy-g 2018/02/18
    単語分散表現他、計算モデルについてざっと説明してある。
  • 統計的変化点検出の手法 - Qiita

    ログデータの異常検知を行う必要が発生したので、変化点検出の統計的な手法をざっくりと調べてみた。 偏差の累積和による方法 各データ点に対して標平均との偏差の累積和を求め、これが最も大きくなる点を変化点とする方法。 手順は下記の通り。 系列全体の平均値(標平均)を計算して、各点について平均値との差を求める 平均値との差の累積和を計算し、絶対値が最大になる点を変化点とする。 変化点によって区切られた各区間について、1,2を再帰的に繰り返す。 平均値でなく分散を使うバージョンもある。 特徴 1次元のデータ列に適用可能。 変化していない部分のデータは同一の確率分布に従い、かつ観測値はすべて互いに独立であることを仮定。 上記を満たしていれば、データが特定の分布に従うことを仮定しない。 もちろんデータの独立性が仮定できなければ使えないので、ログのような時間相関のありがちなデータにおいて使える場面は限

    統計的変化点検出の手法 - Qiita
    teddy-g
    teddy-g 2018/02/18
    統計的に変化点検知≒異常検知をする方法の説明。ARモデルを調べてたら行き着いた。
  • gensim入門 - Qiita

    手軽にトピック分析を実行できるgensimを知ったので、gensimを使用して簡単な文章をトピック分析するチュートリアルを実行してみました。 トピック分析、LDA、gensimとは 詳しく理解してはいないので、簡単に言うと、 トピック分析とは、大量の文章からいくつかのトピックを分類して、与えられた文章がどのトピックに属するかを分類する手法 LDAとは、トピック分析の1種 gensimとは、トピック分析を行うことができるPython製のソフトウェア gensimを使ったトピック分析は、以下の手順で行えるようです。 文章を準備 文章を単語ごとに分割、調整 辞書を作成 コーパスを作成 LDAモデルを作成 分類したい文章をLDAモデルで分類 前提 Docker Python 2環境を作るのが面倒だったのでDockerを使っているだけです。 $ docker version Client: Vers

    gensim入門 - Qiita
    teddy-g
    teddy-g 2018/02/18
    gensim使えば簡単に分析できるが その前にまず自分でやってみないと
  • JTP Technology Port - JTP株式会社

    JTP Technology Portにアクセスいただきましてありがとうございます。 JTP Technology Port は、2021年3月31日ををもちまして閉鎖いたしました。 これまでご利用いただきました皆さまには、心より御礼申し上げます。 トップ に戻る

    JTP Technology Port - JTP株式会社
    teddy-g
    teddy-g 2018/02/18
    OSXにMecab入れるまで。この通りやったら簡単に入る。
  • PythonからMeCab(とCaboCha)を使うまで - Qiita

    環境 Mac OS 10.9.4 Python 2.7 Cabochaのインストール CaboChaを使うのにはMeCabが必要 CRF++のインストール 執筆時での最新版は 0.58 http://crfpp.googlecode.com/svn/trunk/doc/index.html#download 解凍して $ cd CRF++-0.58 $ ./configure $ make $ make install $ cd python $ sudo python setup.py install MeCabのインストール 執筆時での最新版は 0.996 https://code.google.com/p/mecab/ Downloadsから mecab-0.996.tar.gz(mecab体) mecab-python-0.996.tar.gz mecab-ipadic-2.7.

    PythonからMeCab(とCaboCha)を使うまで - Qiita
    teddy-g
    teddy-g 2018/02/18
    タイトルの通り。この通りやったらMecab使えるようになる。
  • Word2Vecを用いた類義語の抽出が上手く行ったので、分析をまとめてみた - Qiita

    はじめに こんにちは、Speeeでデータサイエンティストをしている@To_Murakamiと申します。エンジニアではないのですが、コーディングを含めた分析例を発信しようと思い、企業のAdvent Calendarに参加させていただきました。 12月も暮れに差し掛かってきましたね。日は、Word2Vec(ワードトゥベック)という自然言語処理を活用した分析例を紹介します。 このロジックを実装した目的は、ことばの表記ゆれ(類義語)発見器みたいなのを作ってみたいと思ったからです。なぜ、Word2Vecからことばの表記ゆれが分かるのでしょうか?仕組みの概要(下記)が分かると、理由を理解できます。 Word2Vecの仕組み(簡単に) Word2Vecとは言葉通り、単語をベクトル化したものです。ベクトル化した中身には当然数字が入ります。つまり、単語という言語データを数値化することができるのです! 数値

    Word2Vecを用いた類義語の抽出が上手く行ったので、分析をまとめてみた - Qiita
    teddy-g
    teddy-g 2018/02/18
    これも単語分散表現の話。Word2Vecの仕組みをわかりやすく書いてる。
  • Pythonで単語分散表現のクラスタリング - Ahogrammer

    最近の自然言語処理では、単語の分散表現は当たり前のように使われています。 単語分散表現では、各単語が高次元ベクトル空間に配置され、加減乗除等の演算を行えるようになります。 これらのベクトルは、意味の近い単語に対しては同じようなベクトルになることがわかっています。 記事では、単語分散表現のベクトルをクラスタリングし、意味が近い単語のクラスタを作ってみたいと思います。 これらのクラスタは、眺めて楽しむだけでなく、機械学習の素性として使うこともできます。 イメージ的には、以下のような感じで単語をクラスタにまとめます。 では、単語分散表現をクラスタリングして、単語のクラスタを作ってみましょう。 準備 まずは、作業用のディレクトリを作成しておきましょう。 また、必要に応じて Python の仮想環境も用意します。 以下のコマンドを実行することで、ディレクトリを用意します。 $ mkdir work

    Pythonで単語分散表現のクラスタリング - Ahogrammer
    teddy-g
    teddy-g 2018/02/18
    単語分散表現は色々とやってみたいがなかなか時間が取れない
  • 次元の呪い、あるいは「サクサクメロンパン問題」 - 蛍光ペンの交差点

    超球の体積、すなわち多次元空間における球は、一般的に私たちが観測する3次元の球体の体積とは遥かに異質な性質を示すらしい。 機械学習の有名な教科書によれば、 Our geometrical intuitions, formed through a life spent in a space of three dimensions, can fail badly when we consider spaces of higher dimensionality. 拙訳: 我々の幾何学に関する直観は、3次元空間の中で過ごした人生の中で形成されたものだが、高次元空間を考えるときには、まるで役立たないことがある。 ("パターン認識と機械学習 上", 原書, p.36) ... in spaces of high dimensionality, most of the volume of a spher

    次元の呪い、あるいは「サクサクメロンパン問題」 - 蛍光ペンの交差点
    teddy-g
    teddy-g 2018/02/18
    次元の呪いを直感的に説明しようとしてくれてるんだけど今ひとつ直感的にわからない。
  • 次元の呪いについて - Qiita

    この記事について 以下の観点から高次元空間の性質についてまとめます。 次元数と最近傍・最遠傍との距離の関係 データ数と最近傍・最遠傍との距離の関係 人工データと実データの比較 はじめに 機械学習を使って何らかのタスクを解く上で、データの次元数は常に気にする必要があります。なぜなら、機械学習で扱う多くの問題はデータの次元数が大きくなるごとに難易度が跳ね上がるからです。 「次元の呪い」とも呼ばれるこの問題の原因は、高次元空間の性質にあると言われています。 データの次元数を大きくすると、私達の直感に反する興味深い挙動が確認できます。今回は、高次元空間の性質を簡単な数値実験で調べてみました。 次元の呪いとは データの次元数が高次元になると、データが空間の外側に集中して分布する現象です。 高次元空間の直感的な理解のためには下記が参考になると思います。 次元の呪い、あるいは「サクサクメロンパン問題」

    次元の呪いについて - Qiita
    teddy-g
    teddy-g 2018/02/18
    次元の呪いという中二病っぽい頻出用語の真面目な説明
  • なぜ自然言語処理にとって単語の分散表現は重要なのか? - Qiita

    なぜ自然言語処理にとって単語の分散表現は重要なのでしょうか? この記事をご覧になっている方は Word2vec(Mikolov et al., 2013) についてご存知かもしれません。Word2vec ではまるで単語の意味を捉えられているかのような演算を行うことができます。例えば King から Man を引き Woman を足すと Queen が得られる(King - Man + Woman = Queen)というのは有名な例です。 from https://www.tensorflow.org/get_started/embedding_viz 実はその内部では、単語を分散表現(あるいは埋め込み表現)と呼ばれる200次元ほどのベクトルで表現してベクトルの足し引きを行っています。この200次元ほどのベクトル内部に各単語の特徴が格納されていると考えられています。そのため、ベクトルの足し引

    なぜ自然言語処理にとって単語の分散表現は重要なのか? - Qiita
    teddy-g
    teddy-g 2018/01/02
    単語の分散表現について。課題は類似性と関連性、及び曖昧性の考慮がなされていないこと。