機械学習学習-Schikt-Learn体験
Scikit-Learnとは
機械学習用語の整理
とくせい
ラベル、クラス、ターゲット(値)、決定(値)
目標値または決定値は、学習指導時に学習データに提供される正しいデータです.
この決定値は、学習指導中に行われる分類についてラベルまたはクラスとして指定します.
アドバイザラーニング-分類
分類は典型的なサポート学習方法である.
ラーニングでは、学習に使用されるさまざまなフィーチャーと分類の決定値「ラベル」(Label)データを使用してモデルを学習し、個別のテストデータセットで未知のラベルを予測します.
すなわち,指導学習は,明確な答えを持つデータを先に学習し,未知の答えを予測する方法である.
このとき,学習データセット,機械学習モデルの予測性能を評価するために,与えられたデータセットをテストデータセットとして指定する.
サイクロンを用いてペンの花のデータを分類する
まず作成する機械学習モデルは,ペンデータセットを用いてペン品種を分類する.ペンシルデータセットは、花びらの長さと幅、萼の長さと幅の特徴に基づいて花の品種を予測することを目的としている.
ペンデータ分類予測プロセス
データを学習データとテストデータに分離します.
学習データに基づいてMLアルゴリズム学習モデルを適用する.
学習したMLモデルを用いてテストデータの分類(すなわちペン花タイプ)を予測した.
これらの予測結果をテストデータの実際の結果値と比較して,MLモデルの性能を評価した.
サイキレンを用いてアヤメ(Irs)データ品種を予測する
# 사이킷런 버전 확인
import sklearn
print(sklearn.__version__)
0.19.1
ペン先予測をロードする双方向需要モジュールfrom sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
データセットのロードimport pandas as pd
# 붓꽃 데이터 세트를 로딩합니다.
iris = load_iris()
# iris.data는 Iris 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있습니다.
iris_data = iris.data
# iris.target은 붓꽃 데이터 세트에서 레이블(결정 값) 데이터를 numpy로 가지고 있습니다.
iris_label = iris.target
print('iris target값:', iris_label)
print('iris target명:', iris.target_names)
# 붓꽃 데이터 세트를 자세히 보기 위해 DataFrame으로 변환합니다.
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
iris_df['label'] = iris.target
iris_df.head(3)
iris target값: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
iris target명: ['setosa' 'versicolor' 'virginica']
sepal length (cm)sepal width (cm)
petal length (cm)
petal width (cm)
label
0
5.1
3.5
1.4
0.2
0
1
4.9
3.0
1.4
0.2
0
2
4.7
3.2
1.3
0.2
0
学習データとテストデータセットを分離する
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label,
test_size=0.2, random_state=11)
ラーニングデータセットを使用したラーニングの実行# DecisionTreeClassifier 객체 생성
dt_clf = DecisionTreeClassifier(random_state=11)
# 학습 수행
dt_clf.fit(X_train, y_train)
DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=False, random_state=11,
splitter='best')
テストデータセットを使用した予測# 학습이 완료된 DecisionTreeClassifier 객체에서 테스트 데이터 세트로 예측 수행.
pred = dt_clf.predict(X_test)
pred
array([2, 2, 1, 1, 2, 0, 1, 0, 0, 1, 1, 1, 1, 2, 2, 0, 2, 1, 2, 2, 1, 0,
0, 1, 0, 0, 2, 1, 0, 1])
予測精度評価from sklearn.metrics import accuracy_score
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
예측 정확도: 0.9333
Reference
この問題について(機械学習学習-Schikt-Learn体験), 我々は、より多くの情報をここで見つけました https://velog.io/@taeho8822/머신러닝-스터디-Scikit-Learn-맛보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol