なしお

自転車好き。 前職はデータ分析とかDWH構築とかDX推進メインのコンサル屋さん。 現在…

なしお

自転車好き。 前職はデータ分析とかDWH構築とかDX推進メインのコンサル屋さん。 現在は医療系のサービスを運営する会社でPMM。 一番好きなポケモンはナゾノクサ

最近の記事

Measure What Matters を読んだ

OKRの設定の仕方 -会社(トップマネジメント)から個人へのブレークダウン-この画像が全て。上位のKRが下位のOになる。 出典:https://www.slideshare.net/jaymeh13/object-25288039 一番大切なこと 全てのKRが完了になれば、Oは必ず達成される。 さもなければそれはOKRとは言えない。 OKRの総括と次の四半期にむけて OKRの2つのカテゴリー コミットする目標 ・・・100%達成しないといけない目標。機能リリースなど

    • 機械学習のめもめもめもめも

      損失関数はバリアンス、バイアス、ノイズに要素分解できる(ただし回帰のみ) ・バリアンス 予測値の分散。でかいと過学習状態 ・バイアス 予測値のEと正解のEの差分。でかいと未学習(単純に正解と予測の乖離がでかい状態) ・ノイズ MLでフィッティングできない バイアスとバリアンスはトレードオフ(そりゃそうだ) L1正則化 ラッソ 変数選択 スパース性(少ない特徴でいい精度 的な) L2正則化 リッジ 過学習防止 スパース性 「あらゆるものごとに含まれる本質的な情報はごくわ

      • Tableau Onlineのログインユーザーごとにデータ参照先を変更する方法

        Tableau Online でログインユーザーごとにそのユーザーの権限に応じてデータ参照範囲を動的に制御するという実装を行った。 Tabluau 用語で言う行レベルセキュリティというやつ。 日本語でわかりやすく説明ドキュメントがなくて意外と困ったのでメモ。 実現したいこと 丁寧に説明しなくても伝わると思うが、要は一つのテーブルに部署コードごとに複数部署のデータが格納されておりそれを Tableau で参照させる際に、ログインユーザーの所属部署以外のデータは見させたくない

        • 筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 重回帰 (2)

          用語メモ高次局所自己相関特徴(HLAC) 角度や位置などによって認識精度が左右されたくないような特徴量とする。 予め識別対象の物体を表す解像度のパターンを用意しておく。 そのパターンに該当する箇所が何箇所あるか、識別対象の画像に対して左上から網羅的に精査していき、パターンに該当する箇所が何個あったかをカウントする。 パターン画像数=次元数となり、ベクトルの要素はそのパターンに該当するカウント数となる。 引用(講義ポイント)メモ 機械学習についてはデータ > 特徴量、特徴量

        Measure What Matters を読んだ

        • 機械学習のめもめもめもめも

        • Tableau Onlineのログインユーザーごとにデータ参照先を変更する方法

        • 筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 重回帰 (2)

          Google Colaboratory でPlotlyのサンキーダイアグラム

          やったことこちらの記事の内容をパクらせていただきましたが、collabで動かすように一部変更しました。 [参考] Python plotlyを用いてSankey Diagram(サンキーダイアグラム)を作成する 主な変更点としては2点。 ・plotly.plotly が非推奨になったらしいので chart_studio.plotly に変更 ・offline は利用せず graph_objects を利用して描画 コードchart_studio は標準ではインストール

          Google Colaboratory でPlotlyのサンキーダイアグラム

          snowfakeハンズオンに参加したメモ

          クエリベンチマークS3からのファイル取込み ファイル数376、総レコード数 6,200万弱。カラム数は16?17?ぐらい ウェアハウスSサイズ(2クレジット/hour)で約46秒 ウェアハウスMサイズ(4クレジット/hour)で約24秒 上記をSELECT * ウェアハウスSサイズ(2クレジット/hour)で約47秒 ウェアハウスMサイズ(4クレジット/hour)で約31.3秒 ウェアハウスLサイズ(8クレジット/hour)で約20.65秒 ※一度クエリしてキャッシュ

          snowfakeハンズオンに参加したメモ

          筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 重回帰 (1)

          用語メモ Bag of Words 文章中に含まれる単語で one-hot-vector(1-of-k表現) のベクトルを作り特徴量とする方法。 頻度は考えずに単語が出現したかどうかを特徴量とする。 例えば12,000語含む辞書が存在し、その辞書内の単語の出現有無で文章を one-hot-vector にするならば、どんな文章も12,000次元の特徴量に変換できる。 Stop word 日本語で「の」とか「は」とか(多くの場合は助詞)はどんな文章にも現れるため特徴量とし

          筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 重回帰 (1)

          筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 機械学習概論と単回帰(2)

          用語メモ 平均二乗誤差 一つのデータに対する Error(誤差) は、 𝑡𝑖 が実測値。𝑤𝑥+𝑏 が予測式そのものなので予測値。 データがN点あり、計算処理のしやすさも考慮して絶対値で無く二乗値の平均誤差を求める。 これが平均二乗誤差。 この誤差を最小にする𝑤 と𝑏 を取るモデルが最良と言える。 最急降下法 平均二乗誤差を最小にする𝑤 と𝑏 を求める数学的な手法。 詳細後述。 argmin 数学記号。以下で𝑓(𝑥) を最小にする 𝑥 を求めなさいという問題。 a

          筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 機械学習概論と単回帰(2)

          『Google Cloud ではじめる実績データエンジニアリング入門』 の"note" 〜DWH構築〜

          DWHとしてのBigQueryの基本操作膨大なコンピュート環境を利用することで、データのフルスキャンを高速に実現しています。またインデックスを必要としないことで、インデックス管理の手間を削減し、どんな分析を行うか読めないデータであっても、高速かつ柔軟なアドホック分析ができます。 これは、セルフサービス型の分析基盤を志向して構築する際に重要なポイントです。とくに近年はデータマートをしっかりと作り込んで、それを定型レポートで見せるだけではなく、ユーザーにさまざまなデータソースを生

          『Google Cloud ではじめる実績データエンジニアリング入門』 の"note" 〜DWH構築〜

          『Google Cloud ではじめる実績データエンジニアリング入門』 の"note" 〜データ基盤とは? & BigQuery内部アーキ〜

          いろんなウェビナーで宣伝しまくってるし、知り合いもサクっと読めて悪くないよってことだったので読んだよGoogleさん。 自分なりのメモ。 データ基盤に取り組む意義経済産業省の『「DX推進指標」とそのガイダンス』では、以下の3要素をデジタルトランスフォーメーションに求めるITシステム要件としています。 1. データをリアルタイム等使いたい形で使えるか 2. 変化に迅速に対応できるデリバリースピートを実現できるか 3. データを、部門を超えて全社最適で活用できるか データ

          『Google Cloud ではじめる実績データエンジニアリング入門』 の"note" 〜データ基盤とは? & BigQuery内部アーキ〜

          筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 機械学習概論と単回帰(1)

          用語メモ 機械学習とは・・・? 人間が持っている学習能力(知的処理)をコンピューターにできるようにさせる 人工知能 人間ができる知的処理を計算機にやらせましょう。人工知能という概念が機械学習を包含しているが、近年&一般人向けには人工知能≒機械学習と解釈してOK 強い人工知能 人間の脳と同じ仕組みで同じ処理をコンピューターにやらせる。 弱い人工知能 同じ仕組みじゃないくて良いから人間と同じことができるようになって欲しい。過程はどうあれアウトプットが目的に即していればよい。

          筑波大学オープンコースウェア(OCW)の機械学習の"note"をとった - 機械学習概論と単回帰(1)

          gensim の models.ldamodel の再現性に関するメモ

          gensim の ldamodel を使ってモデル化、推定するとどうにも毎回異なる結果になってしまう。 アルゴリズムにランダム性があるかなのかよくわからないが、素人なので調べようもない。 で、公式を見ていたらそれっぽいオプショナルパラメタがあり、そいつを設定したらとりあえず再現性を担保できるようになった(何回やっても同じ結果が得られるようになった)ので、方法として有用なのかどうかわからないがメモしておく。 random_state ({np.random.RandomS

          gensim の models.ldamodel の再現性に関するメモ

          python の if __name__ == "__main__": って何?

          ・インポートされた際にプログラムが動かないようにするためのおまじない ・__name__ はpython の予約変数でモジュール名が文字列で入る ・仮に import hello された時は __name = "hello" となる ・python hello.py された時は __name = "__main__" となる(Python により自動的にこの変数は入れられる) ・この "__main__" という文字列はPythonファイルをスクリプトとして直接実行した場合に

          python の if __name__ == "__main__": って何?

          ある値に最も近い値を BigQuery のテーブルから取得するGAS

          前提・ある数値に最も近い値を別のテーブルから取得したい ・取得対象のテーブルは BigQuery に存在する ・今回はある数値よりも小さい数値しか考えない(仮に大きい数字があったとしても同じような方法で対応可能) 実装行・列のインデックスは各自のシートに合わせて変更すること。 function calcApproximation() { //プロジェクトID設定 const projectId = 'プロジェクトID'; //スプレッドシートの設定 //近似値を求める値リ

          ある値に最も近い値を BigQuery のテーブルから取得するGAS

          BigQuery で UNNEST 配列をテーブルとして扱う時に列名を指定する方法

          どうやるんだろう?と結構悩んだのでメモ。 県コードテーブルを配列から作る場合。 STRUCT型で最初のフィールドで型と列名を指定すれば良い。 SELECT * FROM UNNEST([STRUCT<prefecture_cd STRING, prefecture STRING>("1","北海道"),("2","青森県"),("3","岩手県"),("4","宮城県"),("5","秋田県"),("6","山形県"),("7","福島県"),("8","茨城県"),(

          BigQuery で UNNEST 配列をテーブルとして扱う時に列名を指定する方法

          特定の行を更新したら行の更新日付を自動UpdateするGAS

          『タイトルのブツを作れ。すぐにだ。』 とボスに言われました。 (世の中に落ちてるやろ と思いググりましたが、意外にいいのが落ちてなかったので、 誰かのコードをパクって自作しました。 作るべきもの一つのブックに複数のシートが存在し、それぞれのシートが別々の管理表になっています。 全ての管理表に更新日付自動Updateの仕組みが必要ですが、管理表ごとにカラム数も行の開始位置も異なるため、Config をシートごとに持たなければならず、アクティブなシートにのみ処理が働い

          特定の行を更新したら行の更新日付を自動UpdateするGAS