AIプログラミング

Cross Validationを使用して癌の識別を行ってみる

更新日:

Cross Validationを使用して癌の識別を行ってみる

今回はCross Validation(クロスバリデーション法)を使用して癌の識別を行ってみたいと思います。

Cross Validation(クロスバリデーション法)とは別名、K-分割交差検証と呼ばれるテスト手法です。単純に分割したHold-out(ホールドアウト法)に比べるとモデルの精度を高めることが出来ます。

今回は10-fold cross validationにて検証していきます。

具体的に説明します。

まず、癌の識別として使用するデータは569件あります。

そのうち、10分割した9割の512件を学習用データ、残りの1割の57件をテストデータとします。次に、テストデータを入れ替えて、別の9割の512件を学習用データ、残りの1割の57件をテストデータとして再度検証を行います。

これらを10回繰り返すことで、全てのケースがテスト事例となるよう検証を行います。

このように全部のデータが1度は学習用データとテストデータとなるため、学習用データの抽出による偏りが少なくなります。

Cross Validation(クロスバリデーション法)の詳細については以下の記事を参照してください。

機械学習、ディープラーニングでの学習データとテストデータの分割手法について

使用するデータ

使用データ:scikit-learn(load_breast_cancer)
全データ:569件(10-fold cross validation)
説明変数:30個(凹み,凹点,対称性・・・)
目的変数::0:悪性/1:陽性

分類/識別:分類(1ラベル)
識別方法:ロジスティク回帰

Cross Validation(クロスバリデーション法)のソースコード

scikit-leanではcross_val_scoreのライブラリが用意されており1行でコードを書くことができます。

Xとは説明変数で、Yは目的変数となります。

CVとして設定している数値は何分割にするかの設定です。今回は10分割を指定しています。

ソースコード

ソースコードの詳細

Cross Validation(クロスバリデーション法)

Cross Validation(クロスバリデーション法)で検証しています。

CV=10を設定しており10分割を指定しています。

正解率を出力する

1-pandasデータ

正解率を出力しています。10-fold cross validationのため10回の結果が出力されています。

平均値を出力する

平均値を出力しています。今回は95%でした。

このようにscikit-leanを使用すると簡単にCross Validation(クロスバリデーション法)を実装することが出来ます。

-AIプログラミング
-, ,

Copyright© AI人工知能テクノロジー , 2019 All Rights Reserved.