PYTHON分類
2332 ワード
分類の概要
分類は、既知のサンプルのトレーニングセットに基づいて、テストされるセットのどのセットがどのカテゴリに属するかを識別する監視学習アルゴリズムである.分類アルゴリズムを実現するモジュールを分類器と呼び,主に2つの部分,訓練,分類を含む.トレーニングは、既知のサンプルからフィーチャーを抽出し、ラベルクラスをマークし、分類器を確立することです.分類とは、分類器を用いて未知のカテゴリのデータを判断するカテゴリである.分類の主なアルゴリズムは:素朴なベイズアルゴリズム、ガウスベイズアルゴリズム、バーヌリーベイズアルゴリズムを含む
分類器の応用
Sklearnクラスライブラリには多くの分類器の実装が含まれており、ここではガウス素朴ベイズを使用してアヤメのデータを分析し、アヤメ、変色アヤメ、バージニアアヤメを含む.まず、文字列配列を整数データに変換します.
この分類器の精度は93%であり、正確に分類されたサンプル数をサンプル総数、すなわち正確な予測の割合で除算する.
分類器のパフォーマンスを評価するツール混同行列 完全レポート Cross Validation評価モデル
実行結果:
拡張:1、テキスト分類はどのように応用するか2、バーヌリベイズアルゴリズム2類判別(0,1)
参照先:https://en.wikipedia.org/wiki/Statistical_classification http://python.jobbole.com/81721/http://www.cnblogs.com/taichu/p/5251332.html http://www.cnblogs.com/jasonfreak/p/5448462.html
分類は、既知のサンプルのトレーニングセットに基づいて、テストされるセットのどのセットがどのカテゴリに属するかを識別する監視学習アルゴリズムである.分類アルゴリズムを実現するモジュールを分類器と呼び,主に2つの部分,訓練,分類を含む.トレーニングは、既知のサンプルからフィーチャーを抽出し、ラベルクラスをマークし、分類器を確立することです.分類とは、分類器を用いて未知のカテゴリのデータを判断するカテゴリである.分類の主なアルゴリズムは:素朴なベイズアルゴリズム、ガウスベイズアルゴリズム、バーヌリーベイズアルゴリズムを含む
分類器の応用
Sklearnクラスライブラリには多くの分類器の実装が含まれており、ここではガウス素朴ベイズを使用してアヤメのデータを分析し、アヤメ、変色アヤメ、バージニアアヤメを含む.まず、文字列配列を整数データに変換します.
def get_classification(ft,msample):
t = zeros(len(msample))
t[msample == 'setosa'] = 1
t[msample == 'versicolor'] = 2
t[msample == 'virginica'] = 3
# 60% ,
train, test, t_train, t_test = model_selection.train_test_split(ft,t,test_size = 0.4, random_state = 0)
print "train:
",train, "
test:
",test,"
t_train:
" ,t_train,"
t_test:
", t_test
cf = GaussianNB()
cf.fit(train,t_train)
print cf.score(test,t_test)
この分類器の精度は93%であり、正確に分類されたサンプル数をサンプル総数、すなわち正確な予測の割合で除算する.
分類器のパフォーマンスを評価するツール
# :from sklearn.metrics import confusion_matrix
# , 4 , ,
print confusion_matrix(cf.predict(test), t_test)
'''
:
[[16 0 0]
[ 0 23 4]
[ 0 0 17]]
'''
print classification_report(cf.predict(test), t_test, target_names=['setosa', 'versicolor', 'virginica'])
'''
:
precision recall f1-score support
setosa 1.00 1.00 1.00 16
versicolor 1.00 0.85 0.92 27
virginica 0.81 1.00 0.89 17
avg / total 0.95 0.93 0.93 60
'''
scores = model_selection.cross_val_score(cf, ft, t, cv=6)
print scores
print mean(scores)
実行結果:
0.933333333333
[ 0.92592593 1. 0.91666667 0.91666667 0.95833333 1. ]
0.952932098765
拡張:1、テキスト分類はどのように応用するか2、バーヌリベイズアルゴリズム2類判別(0,1)
参照先:https://en.wikipedia.org/wiki/Statistical_classification http://python.jobbole.com/81721/http://www.cnblogs.com/taichu/p/5251332.html http://www.cnblogs.com/jasonfreak/p/5448462.html