AIプログラミング

機械学習-癌の識別 (プログラム)

更新日:

機械学習-癌の識別 (プログラム)

機械学習の教師あり学習のサンプルとして簡単なデータでロジスティク回帰を試してみます。sklearnでは練習用として予め569人分のデータがあり、凹み,凹点,対称性等の30個の属性データに対して、悪性、良性のどちらに属するかの正解データを持っています。この練習用のデータを機械学習用284人分、残りの285人分を評価用として分割し推定を行います。その後、推定した結果と予め用意していた正解データを突き合わせて正答率を表示するプログラムを作成します。

使用するデータ

全データ :569件 (学習用:284件、評価用:285件)
属性データ:凹み,凹点,対称性等の10個 × 平均、標準誤差、最悪値それぞれのデータを用意(合計 30個)
正解ラベル:悪性、良性

ソースコードの流れ

1、準備作業
2、各種データの確認
3、線形モデル(ロジスティク回帰)の準備
4、データを学習用/評価用に分割するための準備作業
5、データを学習用/評価用に分割
6、機械学習
7、評価
8、評価の分析

ソースコード

ソースコードです。ソースコードの詳細は後で説明します。

 

ソースコードの詳細

準備作業

sklearnのデータベースから今回使用するデータをインポートします。
インポートしたデータをdataとして格納しておきます。

各種データの確認

今回使用するデータの詳細が表示されます。30個の属性データが569件存在することが分かります。

属性データの名称が分かります。凹み,凹点,対称性等の10個 × 平均、標準誤差、最悪値それぞれのデータが用意されています(合計 30個)

属性データの詳細データが分かります。30個の属性データが569件存在します。

正解ラベルの名称が分かります。悪性、良性になっています。

正解ラベルの詳細データが分かります。569件の正解ラベルが存在します。0:悪性 1:良性です。

線形モデル(ロジスティク回帰)の準備

sklearnからロジスティク回帰のモデルを準備します。

データを学習用/評価用に分割するための準備作業

データを学習用/評価用に分割するためにINDEXを準備します。最初の半分のINDEXは0~283 残りのINDEXは284~568になります。

データを学習用/評価用に分割

属性データと正解ラベルを学習用と評価用にコピーします。att_は属性用、lab_は正解ラベルです。

機械学習

学習用属性データと学習用正解ラベルを機械学習させます。

評価

評価用属性データを投入し、正答率を求めます。今回の結果では95%の正解率でした。

#評価の分析

左側が今回実施した評価の結果で、右側が予め用意していた正解データです。同じ結果の場合はOK,異なる結果の場合はNGと表示されます。
NG件数 / 評価件数 = 正答率 の表示になっています。
285件中14件が失敗し正答率は約95%ということが分かります。

 

-AIプログラミング
-

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