簡単な機械学習プロジェクト
16305 ワード
機械学習は人工知能の分野である.それは、データからパターンを学習し、直接の人間の介入なしに予測を行うために経験を使用する能力を持つコンピューターシステムを提供することを目指しています.
AndreyBu , ドイツ出身の経験豊かな機械学習専門家で、他の人に自分のスキルを教えるのが好きな人は、「機械学習は有益です.なぜなら、自動的に決断を下すためにアルゴリズムを訓練する機会を与えてくれるからです.通常、手動で要求され、時間がかかるのです.」
本稿では,python 3における簡単な分類マシン学習アルゴリズムを説明する.私たちは、Scikit Learningを使用します.そして、それはPythonアプリケーションのための単純で、用途が広くて、オープンソース機械学習フレームワークです.
また、我々はIris flower data set , これは機械学習の概念を理解するために使用できる一般的なデータセットです.
Scikitの学習に組み込まれている虹彩花データセットは、150レコードのセットで構成されています.それには、3種の花セトサ(0)、ヴェルシノル(ラベル1)、およびヴァリイカ(ラベル2)が含まれており、それには以下のような数値属性がある. 花弁幅 花弁長 隔壁幅 隔壁長 我々の機械学習アルゴリズムの目的は,それらの特性に従って花の種を予測することである.我々のモデルはそれらの特徴に基づいたデータセットからパターンを学習するよう訓練される.
私たちの手を汚し始めましょう(我々はanacondaパイソン配布を使用するつもりです).
アイリスデータセットはSciKit Learningとともに来ます、そして、我々は単に次のようにそれを読み込むことができます.
そして、このように監督された問題を扱うとき、いくつかの応答を
例えば、数字データセットに付属して、我々は使うことができます
コードと出力です.
また
また、データを使用してピークにすることができます
すべてのエントリには4つの属性があることに気づくでしょう.
さらに、我々はまたbox plot データセットのビジュアル表現を生成するには
それは私たちのデータがどのように飛行機の上に散らばって表示されます四重奏を使う
これがコードです.
ここでは、データが水平軸上でどのように表されるかを示します. 0は、隔壁長(センチメートル)です 1は、中隔幅(センチメートル)です 2は花弁の長さ(センチメートル) 3は花弁の幅(センチメートル)です
我々のデータの詳細を理解した後、我々は今予測モデルを訓練するためのアルゴリズムを使用することができます.このように、我々のデータを2つのセットに分割する必要があります.
データのセクションのトレーニングと機械学習モデルが相互作用しなかったもう一つのセットのデータをテストすることによって、それは我々のアルゴリズムがデータセットのパターンを特定できることを保証するのを助けます.そして、それは予測の正確さを改善します.
この場合、我々はテストのための最後の15セットのデータを保持し、トレーニングの残りの部分を残します.したがって、データのトレーニングセットに基づいてアルゴリズムを訓練し、データのテストセットに基づいて予測します.
いくつかのコードを見てみましょう.
我々はランダムに設定されたデータを分割しているため、クラシファイヤーは、各反復の後に訓練されているので、コードが実行されるたびに、さまざまなレベルの精度を得ることができます.
以下は結果を表示するコードです.
上記の出力の最初の行は、テストデータのラベルを与えますすなわち,分類器の予測に基づく花種である.
2行目はデータセットに含まれる実種を与えます.そして最後の行は精度%を与える.この場合、精度は86.67 %であった.
悪くない!
プロジェクト全体のコードです.
あなたのマシンの学習知識を高めるためには、そのようなプロジェクトを完了する必要があります.
より良いまだ、あなたはサイトから他の先進的なプロジェクトを選ぶことができますLiveEdu そして、機械学習であなたの専門知識を増やしてください.
ハッピー学習機械学習!
AndreyBu , ドイツ出身の経験豊かな機械学習専門家で、他の人に自分のスキルを教えるのが好きな人は、「機械学習は有益です.なぜなら、自動的に決断を下すためにアルゴリズムを訓練する機会を与えてくれるからです.通常、手動で要求され、時間がかかるのです.」
本稿では,python 3における簡単な分類マシン学習アルゴリズムを説明する.私たちは、Scikit Learningを使用します.そして、それはPythonアプリケーションのための単純で、用途が広くて、オープンソース機械学習フレームワークです.
また、我々はIris flower data set , これは機械学習の概念を理解するために使用できる一般的なデータセットです.
問題とデータの理解
Scikitの学習に組み込まれている虹彩花データセットは、150レコードのセットで構成されています.それには、3種の花セトサ(0)、ヴェルシノル(ラベル1)、およびヴァリイカ(ラベル2)が含まれており、それには以下のような数値属性がある.
私たちの手を汚し始めましょう(我々はanacondaパイソン配布を使用するつもりです).
アイリスデータセットはSciKit Learningとともに来ます、そして、我々は単に次のようにそれを読み込むことができます.
from sklearn import datasets
我々がデータセットからアイリス花の若干の特徴を得ることができるかどうか見ましょう.iris = datasets.load_iris()
digits = datasets.load_digits()
データセットがデータに関するすべての情報を保持する辞書のようなオブジェクトであることに注意することは重要です.このデータは.data
key (配列リスト)そして、このように監督された問題を扱うとき、いくつかの応答を
.target
リスト.例えば、数字データセットに付属して、我々は使うことができます
digits.data
数字のサンプルを分類するための特性を理解する.コードと出力です.
print(digits.data)
また
digits.target
私たちは私たちが学ぶつもりでより多くの可視性を提供します.print(digits.target)
また、データを使用してピークにすることができます
iris.data
(データの配列を与える)iris.target
(ラベルの配列を指定)すべてのエントリには4つの属性があることに気づくでしょう.
iris.data
iris.target
iris.target_names
ラベルの名前の配列を与えます.即ち、データセット内の3種の花種である.iris.target_names
さらに、我々はまたbox plot データセットのビジュアル表現を生成するには
それは私たちのデータがどのように飛行機の上に散らばって表示されます四重奏を使う
これがコードです.
import seaborn as sns
iris_data = iris.data #variable for array of the data
iris_target = iris.target #variable for array of the labels
sns.boxplot(data = iris_data,width=0.5,fliersize=5)
sns.set(rc={'figure.figsize':(1,10)})
これが出力です.ここでは、データが水平軸上でどのように表されるかを示します.
トレーニングとテスト
我々のデータの詳細を理解した後、我々は今予測モデルを訓練するためのアルゴリズムを使用することができます.このように、我々のデータを2つのセットに分割する必要があります.
データのセクションのトレーニングと機械学習モデルが相互作用しなかったもう一つのセットのデータをテストすることによって、それは我々のアルゴリズムがデータセットのパターンを特定できることを保証するのを助けます.そして、それは予測の正確さを改善します.
この場合、我々はテストのための最後の15セットのデータを保持し、トレーニングの残りの部分を残します.したがって、データのトレーニングセットに基づいてアルゴリズムを訓練し、データのテストセットに基づいて予測します.
いくつかのコードを見てみましょう.
import numpy as np
from sklearn import tree
iris_test_ids = np.random.permutation(len(iris_data)) #randomly splitting the data set
#splitting and leaving last 15 entries for testing, rest for training
iris_train_one = iris_data[iris_test_ids[:-15]]
iris_test_one = iris_data[iris_test_ids[-15:]]
iris_train_two = iris_target[iris_test_ids[:-15]]
iris_test_two = iris_target[iris_test_ids[-15:]]
iris_classify = tree.DecisionTreeClassifier()#using the decision tree for classification
iris_classify.fit(iris_train_one, iris_train_two) #training or fitting the classifier using the training set
iris_predict = iris_classify.predict(iris_test_one) #making predictions on the test dataset
結果を見る
我々はランダムに設定されたデータを分割しているため、クラシファイヤーは、各反復の後に訓練されているので、コードが実行されるたびに、さまざまなレベルの精度を得ることができます.
以下は結果を表示するコードです.
from sklearn.metrics import accuracy_score
print(iris_predict) #lables predicted (flower species)
print (iris_test_two) #actual labels
print (accuracy_score(iris_predict, iris_test_two)*100) #accuracy metric
これが出力です.上記の出力の最初の行は、テストデータのラベルを与えますすなわち,分類器の予測に基づく花種である.
2行目はデータセットに含まれる実種を与えます.そして最後の行は精度%を与える.この場合、精度は86.67 %であった.
悪くない!
結論
プロジェクト全体のコードです.
from sklearn import datasets
import seaborn as sns
import numpy as np
from sklearn import tree
from sklearn.metrics import accuracy_score
iris = datasets.load_iris()
digits = datasets.load_digits()
print(digits.data)
print(digits.target)
print(iris.data)
print(iris.target)
print(iris.target_names)
iris_data = iris.data #variable for array of the data
iris_target = iris.target #variable for array of the labels
sns.boxplot(data = iris_data,width=0.5,fliersize=5)
sns.set(rc={'figure.figsize':(1,10)})
iris_test_ids = np.random.permutation(len(iris_data)) #randomly splitting the data set
#splitting and leaving last 15 entries for testing, rest for training
iris_train_one = iris_data[iris_test_ids[:-15]]
iris_test_one = iris_data[iris_test_ids[-15:]]
iris_train_two = iris_target[iris_test_ids[:-15]]
iris_test_two = iris_target[iris_test_ids[-15:]]
iris_classify = tree.DecisionTreeClassifier()#using the decision tree for classification
iris_classify.fit(iris_train_one, iris_train_two) #training or fitting the classifier using the training set
iris_predict = iris_classify.predict(iris_test_one) #making predictions on the test dataset
print(iris_predict) #labels predicted (flower species)
print (iris_test_two) #actual labels
print (accuracy_score(iris_predict, iris_test_two)*100) #accuracy metric
この記事では、Pythonで簡単な機械学習プロジェクトを説明しました.あなたのマシンの学習知識を高めるためには、そのようなプロジェクトを完了する必要があります.
より良いまだ、あなたはサイトから他の先進的なプロジェクトを選ぶことができますLiveEdu そして、機械学習であなたの専門知識を増やしてください.
ハッピー学習機械学習!
Reference
この問題について(簡単な機械学習プロジェクト), 我々は、より多くの情報をここで見つけました https://dev.to/educationecosystem/a-simple-machine-learning-project-in-python-5d11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol