雑記 in hibernation

頭の整理と備忘録

SparkにおけるRDDの遅延評価と永続化

Sparkを習熟する上でRDD(とDataframe)の永続化のメリットが理解しにくかったので、Sparkの特性である遅延評価と永続化について簡単にまとめておきます。

(正しく理解できているか自信ないので、内容に誤りがありましたらご指摘いただけると幸いです)

なお、以下の情報を参考としています。

www.task-notes.com

アクションと変換

Sparkにおいて、RDDはざっくり以下のようなフローで扱われます。

  1. 外部データからRDDを生成する
  2. 【変換】入力したRDDを処理し、新たなRDDを生成する
  3. 【アクション】RDDをデータソースとした演算を実行する。

ここで、【変換】とはフィルタリングやマッピングなど、RDDを加工したり抽出したりして新たなRDDを生成する動作を指します。一方、【アクション】とは要素のカウントや統計量の取得など、RDDのデータを入力として何かしらの出力値を得る動作を指します。

続きを読む

Google ColaboratoryでPySpark環境構築

個人的にライブラリやらなんやらを試してみる際にGoogle Colaboratoryを使うことが多いのですが、今回はSpark習熟のためにGoogle Colaboratoryのnotebook上でPysparkを実行できるように環境構築したので、備忘録としてその過程を記録しておきます。正直なところ処理の意図を理解できてないシーケンスが多々あるので、お勉強が進み次第適宜更新すると思います。

【2022/3/2 追記】
以下の記事に情報を更新しています。 toeming.hatenablog.com

【追記ここまで】

早速ですが、以下notebook上での処理手順

なお、こちらの記事を参考にしています。 qiita.com

続きを読む

2値分類の不均一データ対策って実際効果あるんかい

機械学習の2値分類問題において、不均一(=陰性・陽性のデータ比率に偏りがある)データを学習させる際に学習用のセットの陰性・陽性のデータ比率をある程度揃えてあげることでモデル精度が向上することが知られています。このアイデアをもとにオーバーサンプリング(マイノリティの陽性データを水増しする)やアンダーサンプリング(マイノリティの陽性データに合わせてマジョリティの陰性データを間引きする)といった手法が取られるわけですが、そもそも「データを均一にすることで本当に精度が向上するんかね」ってのが疑問だったので、原始的なアンダーサンプリングをちゃちゃっと実装して本当に精度が上がるのかを確認してみました。

1. 条件

クレジットカードのトランザクションデータから不正検知を行うタスクを題材とします(データはこちら)。そもそもクレカの不正利用はそうそう頻繁に起きるものではありません。したがって、トランザクションは陰性:陽性の比率、つまり「不正でないトランザクション」と「不正なトランザクション」の比率において前者が多数を占める不均一データであることが予想されます。

不均一データのラベル予測を行う2値分類モデルを構築するにあたり、不均一データを元データと同等の陰性・陽性比率のデータセットで学習を行った場合と、アンダーサンプリングで両者のサンプルサイズを揃えたデータセットで学習を行った場合とで、モデルの精度を比較します。

続きを読む

冠詞とプラトンとソシュールと(養老孟司『バカの壁』より)

養老孟司バカの壁』についての紹介は、もう今更ですね。

妙に心に残っている一節があるのでまとめておきます。冠詞とイデア論の対応関係についてです。

バカの壁 (新潮新書)

バカの壁 (新潮新書)


英語の授業で定冠詞と不定冠詞、つまり"a"と"the"の違いについて習った際、「何が違うねん」と悪態ついたのは僕だけじゃあないと思います。子曰く、あえて日本語に訳すのであれば、"a"は"ひとつの"で、"the"は"その" なんだそうです。何が違うねん。

養老先生がおっしゃるところでは、この"a"と"the"の違いが、まさにプラトンイデア論の考え方に対応しているのだそうです。

続きを読む

Pandas dataframeでリストに含まれる要素であればTrueを返す

pythonのpandasにて、dataframe内のある要素が照合用のリストに含まれているかどうか確認したい時、listと同じように"in"で比較したいなあ(でもできないなあ)とか思ってたんですが、これ、.isin()できるんですね。って話を備忘録にします。

過去記事で「あんまり細かいtipsは記事化してもキリがないなあとは思っているので、コーディングの諸々に関するネタはあんまり書かないつもり云々」とか言っといてアレですが、そこはまあ、はい。

続きを読む

Google スプレッドシートでもできるよ仮説検定

この記事書いてる際、「仮説検定したいけど私用PCにエクセル入ってないし、Pythonでなんかその手のパッケージ使うしかないかなぁ」なんて思ってたところ、Googleスプレッドシートの関数で検定が実装されていることを知ったのでちょっと使ってみました。ぱっと使えて便利だったので、備忘録として残しておきます。

僕が確認している限りでは、関数によりt検定とF検定ができることがわかっています。

続きを読む

2020年 - 今年出会った3×3【映画編】

今年出会ったものの中で特に印象的だったコンテンツについて、書籍・音楽・映画の3つのトピックそれぞれで3冊・3枚・3本に絞ってまとめておきます。今年リリースではなく、あくまで「今年僕が出会ったもの」なので、基本的にリアルタイム性は皆無です。

最後は【映画編】です。しかし改めて3選を並べてみると完全に「今更映画祭」って感じで、架空の映画祭が開催されていて自分でウケてしまいました。今更ではありますが、言及する価値のある作品群だと思うので、もし見逃している作品があれば是非チェックしてみてください。

続きを読む