2020-01-01から1年間の記事一覧
で、お前誰 どういう会社観点か 記事を書く目的と背景 PM/PL プロジェクトの進め方 どういった手法を使うか ドメイン知識 きれいなコードを書く/書かせる 正しいデータを出す 分析結果報告 資料作成 マネジメントについて ピープルマネジメント テックマネジ…
Tableau Serverにユーザー追加する際に諸々めんどかったのでメモです。 ユーザーの追加 Tableau Serverにユーザーを追加。 Serverコンピュータからは以下、 http://localhost/#/users 外部コンピュータからの場合 http://自tableauサーバーアドレス/#/users …
データサイエンス案件とアジャイルについて。 前回に各手法についてざっと取り上げた。 knknkn.hatenablog.com アジャイルサムライ――達人開発者への道作者:JonathanRasmusson,西村直人,角谷信太郎発売日: 2017/07/14メディア: Kindle版 SCR…
最近PL/PMすることが増えたので、チーム系の本(+マネジメント系の本)を読んだ。 チームが機能するとはどういうことか ― 「学習力」と「実行力」を高める実践アプローチ作者:エイミー・C・エドモンドソン発売日: 2014/09/05メディア: Kindle版 ハーバード・…
プログラミングをするときにはDRYの法則と言われるように、同じような処理は関数で書いて使い回す方がメンテ効率や可読性が上がる。 特に、データサイエンス的な場合はコードの使い捨てがしやすいので煩雑になるので特に意識した方が良い。 zerebom.hatenabl…
Rでstr_match_all(string, pattern)でstringに対してマッチしたpattern文字列を抽出する。 pattern部分は()を入れることでpattern中の一部分だけを取ることができる。 listの1要素目がマッチした部分の全体、2要素目以降が括弧でマッチさせた抽出される。 _a…
目的 pythonで動的にオブジェクトを変えたい。 ユースケース 乱数を変えたランダムサンプリングデータを複数個作りたいときや、絞り込みを変えたデータを作成したいときなど。 execでのやり方 execを使うと文字列でコードを書けるので利用する。 docs.python…
Git(Github)の最低限checkout add commit pushはしているがそれくらいしかわからんので、これどーしたらいいっけというのをメモ。 用語 working tree: ファイルの最新状態。addすることでstage(index)に遷移。 stage(index): ファイルのaddした状態。commit…
BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…
やりたいこと mutateでは、関数を以下のように適用を適用することができる。 library(tidyverse) iris %>% group_by(Species) %>% mutate(Sepal.Length_lag2 = lag(Sepal.Length,2)) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Len…
やりたいこと モデルを作成して、そのモデルをある値に適用したときの推定結果を作成したい。 今回は モデルの学習データの推定値 任意の値をモデルに適用したときの推定値 の2パターンについて書く。 共通処理 今回、モデルはdiamondsに対して線形モデルlog…
やりたいこと 関数の引数を変えて適用したDFを結合したい。 以下のように、指定した列colに対してunder_value以下となるdfを抽出して、そのunder_valueをfiltered_values列に追加する関数filtered_under_valueで考える。なお、見た目上わかりやすいためhead…
数値で並び替える場合 以下のようなグラフで考える。 library(tidyverse) data(diamonds) # データ作成 df = diamonds %>% group_by(clarity, cut) %>% summarise(n = n()) %>% ungroup() # わかりやすいものだけ抽出 df_filtered = df %>% filter(clarity %…
表題通り、サブサンプルに分けた各データに対して複数モデルを適用したい。 より具体的に書くと、以下のdropoutさんの記事では 複数のモデルを当てはめる場合 diamondデータに対して、3モデルを適用 サブサンプルに分けて分析する場合 diamondデータをclarit…
これはなにか ggplotのfacet内の文字を任意の文字数で折り返し(改行)をしたい。 どういうことかというと、下記のようにirisベースでテキトーにSpeciesを日本語化して文字数を増やしたもので考える。 library(dplyr) iris2 = iris %>% mutate(Species_jp = ca…
最近コードを量産することが多いので、リーダブルコードを読む。 コードは今まで我流だったし、コードを書く機会がそこまで多くなかったので会社でレビューを受けた回数も少ないため一回ちゃんとしないとなぁというのがモチベーション。 自己認識としては、…
DummyClassifier/DummyRegressorとは 過去記事(3. ベースラインを定める)にも書いたが、機械学習モデルを作成した際の評価は何かしらのベースラインと比較しなければその値が良いのか悪いのかわからない。 単純な比較対象として、「テキトーに予測した」結果…
sklearn.pipelineとは sklearn.pipeline とは、前処理用のScaler(変換器)や機械学習モデルを一括で処理するためのオブジェクトを生成する。 これをおこなうことで、管理が容易になったり処理コード部分を簡潔に書くことができる。 実装 データはボストン住宅…
ggchartsとは Rのggplot2のラッパーで、aes + geom_xxxの形式ではなく、pythonのseabornやplotly_expressみたいにグラフ関数を用いて表現をすることができる。ラッパーなので、通常の書き方を組み合わせることができるので、ggplot2の機能が追加されただけと…
plotly expressとは 可視化ライブラリplotlyのラッパー。 plotlyはグラフに対してドラッグ選択すると拡大ができたり、マウスポインタを合わせると詳細な数値をポップアップしてくれる。 そのplotlyをより簡単に記載することができるのがplotly express。 plo…
pythonのtqdmライブラリを試す。 tqdmとは 何かしらの処理に対する進捗をプログレスバーとして表示するライブラリ。 github.com loop処理 基本的な使い方として、繰り返し処理の1loop毎にプログレスバーを更新することができる。 イメージとしては、通常の繰…
Permutation Importanceについて、以下のデータロボットさんの記事を改めて読んで、所見のときはちゃんと理解してなかった部分があったのでメモ。 blog.datarobot.com Permutation Importance自体の解説は上記記事もわかりやすいですが、以下の記事では更に…
もともとSQLはSublime Textで書いて、クエリ投げるのはDataGripだったんですがいいかげん1つに完結させるためにDataGripをちゃんと使えるようにする。 ちなみにDataGripってどんなん?っていう部分は以下の記事が端的でわかりやすい qiita.com キーボードシ…
Jupyter Lab(Notebookは一部違うが概ね同じっぽい?)をなんとなく使ってて、インデント系と実行系くらいしかショートカットキーを知らなかったのでちゃんと調べて使いそうなやつをメモ。ちなみにMacです。 公式ドキュメントに見当たらないが、有志によるチー…
データを加工するときに、未加工と最終加工結果は値がおかしくないかチェックすることがわりかしあると思うが、最終結果に至る途中段階をチェックすることは手間がかかる。 そのようなとき、assertrではRのパイプラインの途中に入れることで、その段階におい…
JupyterにおけるPandasのテーブルデータの出力に色をつけてわかりやすくしたい。 そのためには、pandasのstyle周りをいじれば良いみたい。 基本的にドキュメントのUser Guideベースで書いていく。 pandas.pydata.org pandas.pydata.org styleのいじり方は2つ…
初の機械学習プロジェクトを仕事でおこなった。その際に、各プロセスでこういう部分をみたり考えたりした方が良さそうだと思ったことをまとめる。 なお、機械学習プロジェクトの話は「仕事ではじめる機械学習」をはじめとして既に色々なところで議論されてい…
Python, RともにDBに接続するときにパスワード情報をソースに直打ちすると、gitなどにアップするときに色々とヤバいので直打ちしない方法をメモ。 json設定ファイルから 以下のようなpassword管理用のjsonファイルを作る。 { "redshift": { "id": "myID", "p…
ggplotをきれいに見せるパッケージlemonを動かしたので紹介。 基本的に公式ベース github.com facetしたときの軸目盛りの明示 以下のようなデータがあるとする。 library(tidyeval) g = mtcars %>% # ggplot(aes(wt, mpg)) + ggplot(aes(wt, mpg, color = fa…
Rのggplot2を普段使っているため、Pythonのseaborn(matplotlib)がまじでよくわからん。俺たちは雰囲気でseabornをやっている。 中途半端にググってやりたいことに即したコードをコピペして・・・みたいなくそみたいなアンチパターンばかりしていていい加減効…