case-kの備忘録

日々の備忘録です。データ分析とか基盤系に興味あります。

Python

Apache Beam Python JDBCを使いDataflowを動かすには、ジョブの実行環境からもコネクションを張れる必要があった

Apache BeamのPython jdbcコネクタを使いDataflowでジョブを実行してみました。Cloud SQLとDataflowを同一サブネット内に作りプライベートIPで接続を試みました。検証したところジョブ実行時に実行環境からPostgresにコネクションを張ろうとしていることがわ…

Apache Beam Python PostgreSQL To BigQuery検証

Apache BeamのPythonでPostgreSQLからBigQueryに書き込めるか検証。検証したところJDBCをつかいPostgreSQLからBigQueryに書きこむことはできた。ただし、クエリの上書きはできなかった。 すべて「SELECT * FROM TABLE」で実行されてします。以下の条件に該当…

Dataflowが解決するストリーミング処理の課題と基盤構築で考慮すること

Dataflowが解決するストリーミング処理の課題と基盤を作る上で考慮すべき点をいくつか資料を参考に備忘録もかねて整理してみました。 ストリーミング処理の概要 ストリーミング処理とは バッチ処理との違い ストリーミング処理の課題 データ量と変動性 遅延…

Cloud Pub/Subの概要とPythonでの実践

Cloud Pub/Subの概要とPythonでの使い方を記事にしました。簡単な概要と、Python Clientを使いトピック・サブスクリプションの作成からメッセージ送信・確認まで行います。 Code Cloud Pub/Subの概要 Cloud Pub/Subとは メッセージ配信法式 Pub/SubとDataflo…

Python Client GBQ & GCS

Code library Read From GBQ To Local Upload From Local To GCS Read From GCS Load From GCS To GBQ Code # python_client_gbq_gcs.py github.com library !gcloud auth application-default login !pip install --upgrade google-cloud-bigquery !pip ins…

Dataflow Google BigQuery I/O connector:Python

Dataflowを使ってBigQueryからBigQueryに書き込む処理とCloud StorageからBigQueryに書き込む処理をします。 Code options GBQ to GBQ GCS to GBQ beam.apache.org Code github.com options # -*- coding: utf-8 -*- import apache_beam as beam from apache…

Cloud Composerを使いDataflowのパイプライン制御をする方法

Cloud ComposerでDataflowテンプレートを順次キックしていく逐次処理を行います。順番に処理が行われたことを確認するために前のDataflowのテンプレート実行し作られたファイルを参照する処理にしました。 code Composer環境を作る Dataflowのテンプレートを…

Dataflowパイプライン処理の備忘録:Python

Dataflowで使うパイプライン処理の備忘録です。随時更新できればと思います。 options udf branch group by Filter beam.apache.org options # -*- coding: utf-8 -*- import apache_beam as beam # プロジェクトID PROJECTID = 'project id' # オプション設…

Dataflowカスタムパラメータの追加方法:Python

Dataflowテンプレートでカスタムパラメータを追加します。パラメータを静的に定義する方法とテンプレート実行時に動的にパラメータを指定する方法を紹介します。gclodコマンドで実行しますが、Cloud Functonsからテンプレートをキックする方法は以下の記事を…

Dataflowテンプレート実行方法:Python

GAEなどでDataflowのテンプレートの実行方法です。パラメータは以下のようにして渡します code Dataflowのテンプレートの実行 code github.com Dataflowのテンプレートの実行 "parameters": { "input": "gs://{}/sample2.csv".format(PROJECTID), "output": …

Cloud FunctionsでDataflowテンプレートをキックさせる方法:Python

Cloud FunctionsでGCSのバケットに置かれたファイルを検知し、Dataflowのテンプレートをキックします。パラメータとしてCloud Functionsでファイル名を取得し、Dataflowのテンプレートに引数として渡します。GCSから加工しGBQに取り込むケースなどに使います…

Dataflowテンプレート作成方法(Python)

Pythonベースで記述したDataflowのコードをテンプレート化し、実行してみます。テンプレートを作成するためには以下のコードを追記するだけです。コードを実行するとGCS内にテンプレートが作られるので、作成したテンプレートを実行してみます。 gcloud_opti…

DataflowでPython3系を使って良いのか検討してみた

DataflowでPython3系を使って良さそうか調べてみました。 Python3系を使いたい理由 DataflowのPython3系のサポート状況について Apach Beamのissueについて 動作確認 ストリーミング処理は? 結論(個人的な) Python3系を使いたい理由 DataflowはETLツールな…

Cloud Functionsで検知したファイルをBigQueryに書き込む

Cloud FunctionsでバケットにアップしたファイルをBigQueryに書き込む処理をします。 code Cloud Functionsとは 制限事項 Cloud Functionsを試す 事前準備 動作確認 code github.com Cloud Functionsとは イベントを検知し処理を実行するトリガーの役割があ…

Selenium+Chrome Driverで日経平均株価をスクレイピング

株価のアプリを作ろうかと考えてます。日経株価をBeautiful Soupでスクレイピングしようと思ったのですが、日経平均株価のサイトは年月日を指定することで数値が可変するサイトでしたのでSerenimでスクレイピングしました。Serenimはブラウザの操作が可能な…

DataprocでPySparkの分散並列処理を行う方法

Dataprocの備忘録です。DataprocでGCSに配置したcsvファイルをDataFrameで読み込み分散並列処理する記事です。 簡単にDataprocを紹介 事前準備 PySparkを実行 所感 簡単にDataprocを紹介 DataprocはGCP上でSparkやHadoopを実行できる環境を提供します。今回…

Pythonで多変量解析、3変数以上の偏相関係数を算出してみた

この記事では説明変数3つ以上の偏相関係数算出方法をPythonで行います。実際のコードはこちらにあげておきます。 # partial_correlation_coefficient.ipynb # Partial_correlation.csv github.com 偏相関係数とは 偏相関係数とは変数間の交互作用を取り除い…

GCSのファイルをDataFrameで扱う方法

JupyterでGCSにあるファイルを読み込み、DataFrameとして扱う方法を紹介します。サーバにいちいちデータを落としたくない場合やディスク容量がない場合に使えるかもしれません。いつも通り完全に備忘録です。 #ライブラリ $ pip install google-cloud-storag…

pyenvでPython分析環境を構築してみた「Anaconda & Jupyter Notebook」

今回はPythonで機械学習を行うために必要な環境構築の一連の流れを記事にしました。Pythonのバージョン管理を行うpyenvコマンドを活用し、機械学習を行うパッケージ「Anaconda」のインストールと分析可視化環境「Jupyter Notebook」を構築してみます。 本記…

【GCP入門】大規模データの前処理に!Dataprocクラスタ上で、Datalabを活用したデータ分析環境構築

今回は、GCPの可視化分析ツールDatalab [Goolge Cloud Datalab] の環境構築に関する記事を書いてみました。 Dataproc [Goolge Cloud Dataproc]クラスタ上でDatalabを構築するメリットを実際のユースケースも考慮して書いてみます。 本記事の目的 Datalabとは…

【GCP入門】大規模データの前処理に!DataprocでPySparkジョブを実行し、GCS内のデータを加工する

今回はDataproc クラスタ上でジョブを実行し、GCS内のデータを加工したいと思います。 本記事の目的 本記事の用途 事前準備[ Dataprocクラスタ, GCSバケット ] PySparkで簡単なジョブを実行 Pig ジョブの実行 出力ファイルの取得 GCS内のデータを活用してPyS…

モデルのパラメータ探索手法、「グリッドサーチ」ってなんだ

今回はモデルの性能を向上させるための手法、グリッドサーチの記事を書いてみました。 本記事の目的 グリッドサーチとは 単純なグリッドサーチ 単純なグリッドサーチの問題点 単純なグリッドサーチの解決策について 交差検証を用いたグリッドサーチ 本記事の…

モデルの汎化性を評価する「交差検証」について、Pythonで学んでみた

今回はモデルの汎化性を評価するための統計手法である交差検証について記事を書いてみました。 本記事の目的 交差検証とは 交差検証のメリット・デメリット k分割交差検証(k-fold cross-validation)とは 層化k分割交差検証とは 活用用途 本記事の目的 ・交差…

ランダムフォレストで癌の良性・悪性を分類予測してみた

ランダムフォレストで癌の良性・悪性を分類分類予測してみました。以前にChainerで同様の癌の分類問題を行ったので、比較してみたいと思います。 ランダムフォレストとは ランダムフォレストのメリット・デメリット メリット デメリット 実装編 ランダムフォ…

Pythonで学ぶポアソン分布とは

代表的確率分布の一つである、ポアソン分布について記事を書きました。ポアソン分布の概要や実際の例題を解きながら理解を深めていきたいと思います。 ポアソン分布とは 例題 二項分布とポアソン分布の関係 ポアソン分布とは 「単位時間あたりに平均 λ 回起…

Chainerで癌の良性・悪性を分類予測してみた

Chainerで癌の良性・悪性の分類予測を試してみたいと思います。 Chainerとは Chainerのメリット Chainer構造理解 実装編 Chainerで計算できるデータ形式に変換 Chainerで使用するデータセットの形式 モデルの定義 モデルの定義 Optimizerの定義 Iteratorの定…

Pythonで学ぶ標準化とは

異なるグループ間の比較方法として「標準化」と呼ばれる統計的手法があります。同じテストの結果を比較することはは容易ですが、異なる科目のテスト結果の比較は点数だけでは判断できません。このような場合「標準化」は有益です。今回は「標準化」の関連用…

Pythonで学ぶ二項分布と正規分布の関係性

代表的な確率分布として正規分布や二項分布、ポアソン分布があります。本記事では二項分布と正規分布の関係性について、実際にPythonで例題を解きながら理解していきたいと思います。二項分布については以下よりご確認ください。 case-k.hatenablog.com この…

Pythonで学ぶ二項分布とは

代表的確率分布の1つである二項分布について、実際にPythonで例題を解きながら理解したいと思います。 この記事の目的 二項分布とは ベルヌーイ試行とは ベルヌーイ分布に従う場合の確率・期待値・分散 活用用途 例題 例題 (1) 例題 (2) 例題 (3) この記事の…

ニューラルネットワークについて

今回はニューラルネットワークの概念を理解し、Pythonでニューラルネットワーク構造を実装し理解したいと思います。 本記事の目的 ニューラルネットワークとは ニューラルネットワークの活用用途 ニューラルネットワークの学習方法 誤差伝播法の概念 実装編 …