import numpy as np import matplotlib.pyplot as plt from sklearn import svm from sklearn.datasets import make_blobs from sklearn.metrics import classification_report, accuracy_score # 50個の分類されるデータを作成 make_blobsは機械学習のアルゴリズムを学習する際のデータセット X, y = make_blobs(n_samples=50, centers=2, random_state=6) # 分類 モデルの調整  clf = svm.SVC(kernel='linear', C=1000) #学習 clf.fit(X, y) test_pred = clf.predict(X) #予測 print("切片",clf.intercept_) print("係数",clf.coef_) print (classification_report(y, test_pred)) plt.scatter(X[:, 0], X[:, 1,], c=y, s=50, cmap=plt.cm.Paired) # 決定関数のプロット ax = plt.gca() xlim = ax.get_xlim() ylim = ax.get_ylim() # モデル評価のためのグリッド作成 xx = np.linspace(xlim[0], xlim[1], 30) yy = np.linspace(ylim[0], ylim[1], 30) YY, XX = np.meshgrid(yy, xx) xy = np.vstack([XX.ravel(), YY.ravel()]).T Z = clf.decision_function(xy).reshape(XX.shape) # 決定境界とマージンをプロット ax.contour(XX, YY, Z, colors='k', levels=[-1, 0, 1], alpha=0.5, linestyles=['--', '-', '--']) # サポートベクターのプロット ax.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s=150, linewidth=1, facecolors='none', edgecolors='k') plt.xlabel('x') plt.ylabel('y') plt.show()