機械学習の戦闘:ベースScikit-学び、TensorFlow第5章サポートベクターマシンの学習ノート(ハードインターバル)

データマイニングの仕事、SVM分類を達成するための必要性、記録学習の記録

環境:win10、Pythonの3.7.0

SVMの基本的な考え方:カテゴリ間でも最大マージン分類器として知られている、可能な限り広い間隔に合わせ

ソースコードは2つのマップ、1は無用SVM SVMが使用されている、私はSVMの間隔を使用して描画するのは難しいイメージを作った唯一の修正、画像の現在のディレクトリのフォルダに保存された画像を描画するブックで提供されています次回のではなく、このフォルダを作成する必要があります場合は

コードは以下の通りであります:

NPのようなインポートnumpyの
インポートOS
インポートmatplotlibのは
PLT用としてインポートmatplotlib.pyplot
インポート警告
sklearn.svmインポートSVCから
sklearnインポートデータセットから
np.random.seed(42)

plt.rcParams [ 'axes.labelsize'] = 14
plt.rcParams [ 'xtick.labelsize'] = 12
plt.rcParams [ 'ytick.labelsize'] = 12

保存の図はどこ#1で
、ここで保存パス#絵セット、後ろに直接呼び出すことができる機能書き方
PROJECT_ROOT_DIRを=「」
IMAGES_PATH = os.path.join(PROJECT_ROOT_DIR、 『ロイヤリティーフリー』)
画像の保存#
デフsave_fig(fig_id 、=真、fig_extension = "PNG"、解像度は= 300)tight_layout:
パス= os.path.join(IMAGES_PATH、fig_id + + fig_extension) ""。
印刷( "保存図"、fig_id)
tight_layout IF:
(plt.tight_layout )
plt.savefig(パス、形式= fig_extension、DPI =解像度)
#ドロークラス境界
DEF plot_svc_decision_boundary(svm_clf、Xminと、Xmaxの):
W = svm_clf.coef_ [0]
B = svm_clf.intercept_ [0]
X0 = NP。 linspace(Xminと、Xmaxと、200である)
decision_boundary = -w [0] / W [1] * X0 - B / W [1]

マージン= 1 / W [1]
gutter_up = decision_boundary +マージン
gutter_down = decision_boundary -マージン

SVS = svm_clf.support_vectors_
plt.scatter(SVS [:, 0]、SVS [:, 1]、S = 180、facecolors = '#FFAAAA')
plt.plot(X0、decision_boundary、 "K-"、線幅= 2 )
plt.plot(X0、gutter_up、 "k--"、線幅= 2)
plt.plot(X0、gutter_down、 "k--"、線幅= 2)
忽略无用警告
warnings.filterwarnings(= "無視する"アクションメッセージ= "^内部gelsd")

アイリス= datasets.load_iris()
X =虹彩[ "データ"] [:,(2、3)]#花弁の長さ、花弁の幅
Y =虹彩[ "ターゲット"]
setosa_or_versicolor =(Y == 0)| (Y == 1)
X = X [setosa_or_versicolor]
Y = Y [setosa_or_versicolor]
#SVM分類モデル
svm_clf = SVC(カーネル= "リニア"、C =フロート( "INF"))
svm_clf.fit(X、Y)

plot_svc_decision_boundary(svm_clf、0、5.5)
plt.plot(X [:, 0] [Y == 1]、X [:, 1] [Y == 1]、 "BS")
plt.plot(X [:, 0] [Y == 0]、X [:, 1] [Y == 0]、 "よ")
plt.xlabel( "花びらの長さ"、フォントサイズ= 14)
plt.ylabel( "花びら幅"、フォントサイズ= 14)
plt.axis([0、5.5、0、2])

save_fig( "ハードインターバルSVM分類器")
plt.show()

おすすめ

転載: www.cnblogs.com/coderying/p/12047416.html