nikkie-ftnextの日記

イベントレポートや読書メモを発信

イベントレポート | 第25回 Pythonもくもく会 #mokupy

はじめに

マキアかわいい! nikkieです。(さよ朝みた)
今月も #mokupy にお邪魔してきました。

 

勉強会の概要

この勉強会について

主にPythonに関するやりたいことを各自持って来て、進めていく感じのゆるい会です。 もくもく開発をして情報共有したり、交流を深めることができればと思っています。 是非お気軽にご参加ください。(Python初心者の方でも大歓迎です!)

 
 

取り組んだこと

  • pandas記事にいただいたコメントの動作確認

  • Python機械学習プログラミング』読書メモ

  • モザイクアートのプログラムのバグ修正

溜まった細々としたタスクをこなす時間にしました。

  

(1) pandas記事にいただいたコメントの動作確認

qiita.com

前回の #mokupy の経験を上記のQiita記事にまとめています。
そこにいただいたコメントについて、自分で手を動かして確認しました。

確認結果:
dataframe_max_pranctice_see_advise-20180224.ipynb · GitHub

確認した事項は近日中にQiitaに上げます。

 

(2) 『Python機械学習プログラミング』読書メモ

読書会に行くために5章を読み進めていたのですが、読書会参加は泣く泣く断念。
備忘のために簡単にまとめておきます。
これは課題なのですが、数学的なところの理解が薄いです。

  • 4章に引き続き次元削減:特徴抽出
    (4,5章はこの本の中では前処理手法を扱っている部分)
    ・主成分分析(PCA)
    ・線形判別分析(LDA)
    カーネル主成分分析
  • PCAとLDA
     
    主成分分析
    PCA
    線形判別分析
    LDA
     
    線形変換法
    アルゴリズム 教師なし 教師あり
    見つけ出そうとするもの
    分散がもっとも大きい
    直行成分軸
    クラスの分離を最適化する
    特徴部分空間
    scikit-learn
    PCAクラス
    LinearDiscriminant
    Analysisクラス
  • カーネル主成分分析
  • 線形に分離できないデータを変換し、
    線形分類器に適した新しい低次元の部分空間に射影する
  • 考え方:データ→より高次元の空間に射影する非線形写像→高次元空間でPCA適用
    カーネルトリックを使うことで、高次元空間に写像することなく、
     元の特徴空間において2つの高次元の特徴ベクトルの類似度を計算できる
  • 新しいサンプルを射影するたびに、元のトレーニングデータセットのサンプルと
    新しいサンプルの間の類似度を計算する
    (PCAでは射影行列、LDAでは変換行列だ手に入っているので、
    元のトレーニングセットを新しいサンプルの射影に使うことはないと理解している)
  • scikit-learnのKernelPCAクラス

 

(3) モザイクアートのプログラムのバグ修正

Slackのアイコンでモザイクアートが作れなかった問題、解決しました。

github.com

現状のコードの問題点は安易なコピペを繰り返したこととの認識に至りました。
関数にまとめることを億劫がり、既存の関数やファイルをコピーして
処理ごとに固有の設定値や参照ファイル名を変更して対応してきてしまった。
そのつけを払わなければいけない時期のようです。

今回の修正でも修正に使う関数をコピーしてファイルごとに持たせていましたが、
途中でその関数を修正しなくてはならず、
ファイルごとに持たせるというのが愚かなことと思い知りました。
モジュール化はまだよくわかっていないのですが、
1箇所にまとめたほうが変更に強いということは体験しました。

 

感想

#PyNyumon でLT見ましたと言ってくださった方がいらっしゃり、嬉しかったです。
業務で使う機械学習の勉強で手一杯といった状況なのですが、
もっといいコードを書くための練習としてモザイクアートに取り組んでいきたいですね。

情報収集という面では
Dashというデータ可視化によさそうなライブラリの情報と
DjangoCongressの話が聞けました。

主催の皆さま、出席者の皆さま、どうもありがとうございました。