crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

短時間労働者の給与のデータの分析7 - R言語のcaret::train関数でLDA(linear discriminant analysis)モデルで男性、女性を予測する。

 

www.crosshyou.info

 の続きです。前回はknn3関数でk-nearest neighborのアルゴリズムで男性か女性かを予測してみました。正解率は、68%でした。

今回はcaretパッケージのtrain関数をつかって、linear discriminant analysis(LDA)のモデルでやってみましょう。

f:id:cross_hyou:20210411083749p:plain

まず、gendarを0, 1の数値型から、female, maleのファクター型にしたデータフレームを用意しました。

caretパッケージのtrain関数でmethod = "lda"でLDAのモデルを作ります。

f:id:cross_hyou:20210411084608p:plain

たくさん警告メッセージが出てきましたが、モデル自体は作成されたようです。

predict関数でdf_train_factorのデータで予測してみます。

f:id:cross_hyou:20210411084828p:plain

予測できています。

正解率を見てみましょう。caretパッケージの中にあるconfusionMatrixを使ってみました。

f:id:cross_hyou:20210411085211p:plain

モデルが女性と予測して実際も女性だったのが16件(正解)、モデルが男性と予測して実際も男性だったのが14件(正解)、モデルが女性だと予測したけど実際は男性だったのが4件(不正解)、モデルが男性だと予測して実際は女性だったのが0件(不正解)でした。

正解率は88%でした。

lm関数のモデルと同じでした。

今回は以上です。

次回は

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。