data_scientist:chapter9 教師なし k-means法

k-means法

教師なしクラスタリングということで k-means法を試してみました。

ブロブデータでやってみる

データセットからブロブを呼び出します。

このブロブをk-means法を使って分類します。

k-meansの条件としてクラスタの数を指定しますが、下記のようなエルボ法を使ってベストなクラスタ数を決定します。今回は3です。

 

 

 

 

 

 

 

k-meansの結果がこれです。うまく行っています。

 

顧客データでやってみる

エルボ法でベストなクラスタ数を見つけておきます。

5にしましょうか。

クラスタ数5の結果です。

1と3に固まっていますね。

 

ちなみにk-means デフォルトクラスタ数8でやってみました。

さっきのクラスタ3は下の2,3に分割されてしまっていると考えます。

クラスタ数5に戻って、結果のヒートマップを確認します。

年齢層でみると、クラスタ1は30-35歳、クラスタ3は45-50歳というように離れていることがわかります。

次は職業です。クラスタ数1と3は大きな差がないので、今回のクラスタリング結果に対して職業の寄与度は低いのでしょう。

スクリプト

data_science_chapter_9_k-means

data_scientist:chapter8 リッジ回帰

重回帰の精度を高めるべくリッジ回帰をやってみます。

普通のロジスティック回帰モデルでは最小2乗誤差を目指しますが、入力に対して出力が敏感に変化してしまう場合は、過学習によって訓練Scoreと検証Scoreが一致しない場合があります。

そこで、正則化項 を新たに追加して訓練を緩慢にします。
正則化項は1次のときラッソ回帰、2次のときリッジ回帰といいます。

今回は正則化項なしである重回帰に対して、大きな改善は見られませんでしたので重回帰でも十分な結果が得られていることがわかりました。

スクリプト

data_scientist_chapter_8_Ridge

data_science:Chapter5 Scipy

こんにちはKeita_Nakamoriです。

Scipyのおさらいをしました。

科学技術用モジュールというだけあって、

補間 スプライン補間 interplate linalg
特異値分解 LU分解 コレスキー分解
数値積分 微分方程式 integrate
最適化 二分法 ブレント法 ニュートン法 optimize
高速フーリエ変換 信号処理 画像処理

などなど、盛りだくさんです。

線形代数関係は、さっぱりなところもありましたので、必要になったときに再び掘り下げて学習しなおそうと思います。

スクリプト

data_scientist_chapter_5_scipy

data_science:Chapter4 確率と統計の基礎

こんにちはKeita_Nakamoriです。

データサイエンティスト育成講座、連休のおかげで久々に手がつけられました。

主に確率分布、推定、検定の話でした。苦手な分野なので地道に理解しながら牛歩のごとく進めました。

スクリプトメモ

data_scientist_chapter_4

次回は再びNumpyやらPandasの使い方になるのでさらっと行けたら良いなと思います。