機械学習のscikit-learnライブラリの使用

5820 ワード

1、scikit-learnライブラリの概要
scikit-learnは、多くの一般的な機械学習アルゴリズムを統合したPythonライブラリであり、skLearnとも略称される.scikit-learnは非常に使いやすく、機械学習を学ぶのに良い切り込み点を提供しています.
 
2、機械学習の基礎
機械学習という学科は主に監督学習、無監督学習、強化学習に分けられる.モニタリング学習とは,クラスラベル付きトレーニングデータを用いてモデルを構築することであり,このトレーニングで得られたモデルを用いて未知のデータを予測することができる.監督学習は主に2つの種類に分けられる:分類と回帰.無監督学習では,各訓練サンプルのクラススケール値を事前に知ることができず,このような無クラススケールデータや全体的な分布傾向が不明なデータを処理する必要があり,無監督学習により,既知の出力変数やフィードバック関数の指導なしにデータ集中有効情報を抽出してデータセット全体の構造を探索することができる.無監督学習は主にクラスタリングと降次元に分けられる.強化学習は,環境と対話する過程でシステムの性能を向上させるシステムを構築することと理解できる.機械学習アルゴリズムモデルを作成する際,通常,データを訓練セットとテストセットに分け,訓練セットデータを用いてモデルを訓練し,テストセットでモデルを評価する.
 
3、scikit-learnで監督学習を実現する-分類
私たちはIrisデータセットを用いて分類モデルを訓練し、このデータセットのデータは3種類の異なるアヤメの花(それぞれアヤメ、変色アヤメ、バージニアアヤメ)から採取され、これらのデータは萼片と花弁の長さと幅を表し、各グループのデータにはクラスマークがある.分類問題を解決するアルゴリズムモデルを機械学習する際によく使われるデータセットで、scikit-learnライブラリにこのデータセットが内蔵されています.ここでは,アヤメの測定データを与え,この花を分類するタスクを処理し,ここではk近隣分類器を用いて最も簡単で,k近隣アルゴリズムを用いて訓練セットを探索し,このデータ個体と最も類似したk個のデータを探す.与えられたデータをトレーニングセットとテストセットに分け、Pythonで実現します.
import numpy as np
from sklearn import datasets
np.random.seed(0)

#    
iris=datasets.load_iris()

X=iris.data
y=iris.target

#         
i=np.random.permutation(len(iris.data))

# 140      , 10      
X_train=X[i[:-10]]
y_train=y[i[:-10]]
X_test=X[i[-10:]]
y_test=y[i[-10:]]

#  k         
from sklearn.neighbors import KNeighborsClassifier
knn=KNeighborsClassifier()
knn.fit(X_train,y_train)

#         
result=knn.predict(X_test)
print(result)
print(y_test)

'''      :
[1 2 1 0 0 0 2 1 2 0]
[1 1 1 0 0 0 2 1 2 0]
'''

予測の目標値が1つ間違っていることがわかります~
4、scikit-learnで監督学習-回帰を実現
ここでは線形回帰について述べ,線形回帰とは訓練セットデータを用いて線形モデルを作成する過程を指す.y=a*x+cを直線方程式で表すことができ,パラメータaとcを計算し,aとcを計算する際にデータセットの残差二乗和を最小化することを保証するこの線形回帰モデルを構築した.この方程式では,xは訓練セット,yは目標値,aは傾き,cはモデルに対応する直線の断面積である.ここではDiabetesデータセットを紹介します.糖尿病患者の生理データや1年後の病状の発展状況が多く含まれています.データの上位10列が生理データで、後者が目標値です.次はこのデータセットで手を練習します.
#        
from sklearn import linear_model
linereg=linear_model.LinearRegression()

#                
from sklearn import datasets
disabets=datasets.load_diabetes()
X_train=disabets.data[:-20]
y_train=disabets.target[:-20]
X_test=disabets.data[-20:]
y_test=disabets.target[-20:]

#    
linereg.fit(X_train,y_train)

#  
result=linereg.predict(X_test)
print(result)
print(y_test)
'''      :
[197.61846908 155.43979328 172.88665147 111.53537279 164.80054784
 131.06954875 259.12237761 100.47935157 117.0601052  124.30503555
 218.36632793  61.19831284 132.25046751 120.3332925   52.54458691
 194.03798088 102.57139702 123.56604987 211.0346317   52.60335674]
[233.  91. 111. 152. 120.  67. 310.  94. 183.  66. 173.  72.  49.  64.
  48. 178. 104. 132. 220.  57.]
'''

#  
score=linereg.score(X_test,y_test)
print(score)
'''      : 
0.5850753022690574
'''

5、まとめ
k近隣分類と線形回帰の2つの学習モデルについてのみ述べたが、sklearnには他にも多くの機械学習アルゴリズムモデルが内蔵されている.その中で分類アルゴリズムモデルにはK近隣、サポートベクトルマシン分類、論理回帰、ランダム森林、決定木、素朴ベイズ分類器などがあり、回帰アルゴリズムには線形回帰、嶺回帰、サポートベクトルマシン回帰、ベイズ回帰、多項式回帰など,クラスタリングアルゴリズムにはKnn,Kmeansなどが含まれる.sklearnはPythonのデータ分析でよく使われています.numPy、matplotlib、pandasなどのライブラリと一緒に使われています.私もPythonの機械に触れて2、3ヶ月勉強したばかりです.
転載先:https://www.cnblogs.com/IAMTOM/p/10249144.html