トピックス プログラム、シミュレーション 科学・技術・数学

機械学習を始めます

投稿日:

AI(人工知能)は、車の自動運転画像認識などいろいろな分野で開発競争が激化しています。このAIに用いる技術には、機械学習ディープラーニングあるいはニューラルネットワークなどいろいろな手法が研究されています。先ずは、機械学習から勉強をしていこうと思っています。この話題がしばらく続くかもしれません。一緒に勉強しましょう。

資料はこちら → scikit-learn

p.1 有名な「アイリスの仲間の分類分け問題」を、(がくの長さ・幅)と(花弁の長さ・幅)のデータを基に学習して、テストデータを予測するアルゴリズムを理解して、そのプログラムに実装します。 がくの長さ花弁の長さをプロットしたグラフを示します。左のグラフはかなり重なっている部分があり、学習しても予測値の正解率は低くなりそうです。右のグラフでも重なる部分があります。 これを分類する手法に「kNN(k-Nearest Neighbor )法」があります。 分類したい対象からの比較対象物までの距離を算出します。 k=1の円内にが1個、k=3の円内には3個、は1個のままです。kの値は任意で決めます。 今回k=3とするとの方がより多いので、多数決によりの仲間であると判定します。

p.2 ①「jupyter」を起動して、「scikit-learn」(サイキット・ラーン)をインポートします。②その後、irisのデータを読込ます。③そのデータの中身をprint分で表示させると、「feature」は、がくの長さ、幅、花弁の長さ、幅の名称が、「target」は、花の品種名であることが分かります。④「iris.data」とすると、がく及び花弁の数値データが表示され、「iris.target」とすると、花の品種を数値に置き換えた0、1及び2が入っていることがわかります。

p.3 「train_test_split」というコマンドを用いて、花のデータ(iris.data)と花の名称(iris.target)を訓練用テスト用振り分けます。花のデータはX、花の名称は、訓練用は「_train」、テスト用は「_test」に数値を割振って格納します。30%が予測用のテストデータです。「kNN法」で分類するため、「KNeighborClassifier」というライブラリをインポートします。今回はk=1で判定します。「knn.fit」というコマンドで訓練用のデータで学習させます。 「knn.predict」というコマンドでテストデータを用いて花の名称を予測値として、「y_pred」に代入します。 予測値「y_pred」と正解「y_test」を表示させます。 正解率の平均値を表示させると「97.777…%」の正解率でした。

いかがですか? たったの4行ぐらいで、学習して予測してしまうのです。これも「python」がベースなのです。pythonの威力はすごい。

-トピックス, プログラム、シミュレーション, 科学・技術・数学

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.