変わりモノがいい!

変わりモノには価値がある・・・ハズ?

JupyterでPython3が動きました。

やっとPython3が動きました。

色々ありましたが、Raspberry Pi4にJupyter notebookをインストールし、その上でPython3を動かすことができました。 Jupyter notebookが動いたのちに、Python3が動かなかったのは、先の記事に書いたようにPythonのリンク先がPython2になっていたことと、その条件下でnumpyなどのライブラリをインストールしてしまったことが原因でした。 ということで先の記事で書いたリンク先変更に続いて、ライブラリーの再インストールを行いました。 これでOK。 肩慣らしのアヤメの分類プログラムを動かすことができます。

f:id:ken2017:20200320124415j:plain
   野に咲くアヤメ 

 線形サポートベクトルマシンによるアヤメの分類(2特徴量、2クラス)

さて、アヤメのデータをどこから持ってきましょうか。 それがですね、今の世の中、進んでいまして、アヤメのデータは、scikit-learnの中に入っています。 scikit-learnとは、Pythonの機械学習ライブラリで下図のような構成になっています。

f:id:ken2017:20200319095406p:plain

ちなみに、scikit-learnには、アヤメのデータだけでなく沢山のデータが入っています。 ボストンの住宅価格のデータなども入っています。 これもPythonの色々な本の中で例題に使われていますよね。
さて、アヤメのデータですが、フルセットでは、外花被片の長さ、外花被片の幅、内花被片の長さ、内花被片の幅、の4種類の特徴量データがありますが、今回は2特徴量なので外花被片の長さと外花被片の幅を使うことにします。 この2つの特徴量を用いて下の写真にあるような2種類のアヤメに分類します(2クラス化)。

f:id:ken2017:20200320134328j:plain
   Qiitaから参照

コードの構成ですが、

1)必要なライブラリのインポート:4行
2)分類機に入力するデータの準備:6行
3)機械学習の実行:2行
4)機械学習の結果の表示と評価:19行
となります。
ちなみに、機械学習の実行に関する行数を2行と書きましたが以下の内容です。
#分類用としてのサポートベクトルマシンを用意する。
clf = svm.SVC(C=1.0, kernel='linear')
#データを分類する。
clf.fit(X,y)

Pythonを使うといつも思うのですが、機械学習の実行部分はほんの数行で、それを使うための準備というかデータのセットと学習結果の表示がコードのメインになります。 そういうことでpandasやmatplotlibに関する深い理解が必要になります。 僕は、pandasで色々と苦労しましたね。 ちなみに、コードの雰囲気を感じてもらうために今回の画面の例をのっけておきます。 また、処理結果も載せておきますので参照ください。 肩慣らしが無事終わりましたので、次のお題に入っていきたいと思います。 こうご期待。

f:id:ken2017:20200320143534j:plain
   今回のコード

f:id:ken2017:20200320143621j:plain
   今回のコードによるアヤメの分類結果

(参考図書)



 

プライバシーポリシー お問い合わせ