sklearn.svm.SVCの使い方

公式ドキュメント

パラメータ

  • C=1.0
  • kernel=‘rbf’
  • degree=3
  • gamma=‘auto’
  • coef0=0.0
  • shrinking=True(調査中)
  • probability=False
  • tol=0.001
  • cache_size=200(調査中)
  • class_weight=None
  • verbose=FalseC
  • max_iter=-1
  • decision_function_shape=None(調査中)
  • random_state=None

パラメータを変えて様子をみる。

サンプルデータ

f:id:nsb248:20170224232501p:plain

デフォルトのまま

  • accuracy: 0.635
  • std: 0.362 f:id:nsb248:20170224221555p:plain

C

  • Cの意味を表した式はこちらを参照
  • Cは学習データに対する分類の正しさとモデルの複雑さのトレードオフをコントロールする。
  • Cが大きいと分類の正しさを優先し、モデルが複雑になる(モデルパラメータのノルム-2が大きくなる)。
  • 分類(C=10, kernel=‘rbf’) f:id:nsb248:20170224232758p:plain
  • 分類(C=1000) f:id:nsb248:20170224232817p:plain

kernel

  • 取りうる値:

    • ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ or a callable
  • 分類(kernel=‘linear’) f:id:nsb248:20170224233545p:plain

  • 分類(kernel=‘poly’) f:id:nsb248:20170224233604p:plain

  • 分類(kernel=‘rbf’) f:id:nsb248:20170224233616p:plain

  • 分類(kernel=‘sigmoid’) f:id:nsb248:20170224233636p:plain

  • rbf以外上手く分類できなかった。原因を調査中。

degree

  • kernel=‘poly'のときのみ使用できる。
  • polynomialの次数を指定する。

gamma

  • kernel=‘rbf’, ‘poly’, ‘sigmoid’のとき使用できる。
  • gammaの意味を表した式はこちらを参照
  • 分類(kernel=‘rbf’, gamma=0.1) f:id:nsb248:20170224235706p:plain
  • 分類(kernel=‘rbf’, gamma=2.0) f:id:nsb248:20170224235739p:plain

coef0

  • kernelのindependent term。kernel=‘poly’, ‘sigmoid'のとき重要。