ロジスティック回帰(Logistic Regression)

multi-class classificationも可能(3クラス分類を例に)

v3.0.0

In [4]:
# -*- coding: utf-8 -*-
import cv2
import numpy as np

#Ipythonで表示用の設定
import matplotlib.pyplot as plt
%matplotlib inline

#多項ロジット(3クラス分類を例に)。ここでは特徴量は2個にした。
TrainData = np.array([[-1, -1], [-2, -3],[-1, -1.5], [1, 3], [2, 2], [3, 5], [5, -9],[5, -6],[5, -4]]).astype(np.float32)
response  = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3]).astype(np.float32)

#学習データの表示
print "Training Data\nlabel: feature"
for i in range(9):
   print response[i],":",TrainData[i]

#学習器を生成
logreg = cv2.ml.LogisticRegression_create()

#学習フェーズ
logreg.train(TrainData, cv2.ml.ROW_SAMPLE, response)

#推定対象生成
test = np.array([[-2., -2.]]).astype(np.float32)

#推定フェーズ
(ret, res) = logreg.predict(test) 

print "\nEstimate Result"
print test,"->",res

#ヘルプ
print "\n",help(logreg)
Training Data
label: feature
1.0 : [-1. -1.]
1.0 : [-2. -3.]
1.0 : [-1.  -1.5]
2.0 : [ 1.  3.]
2.0 : [ 2.  2.]
2.0 : [ 3.  5.]
3.0 : [ 5. -9.]
3.0 : [ 5. -6.]
3.0 : [ 5. -4.]

Estimate Result
[[-2. -2.]] -> [[1]]

Help on ml_LogisticRegression object:

class ml_LogisticRegression(ml_StatModel)
 |  Method resolution order:
 |      ml_LogisticRegression
 |      ml_StatModel
 |      Algorithm
 |      __builtin__.object
 |  
 |  Methods defined here:
 |  
 |  __repr__(...)
 |      x.__repr__() <==> repr(x)
 |  
 |  getIterations(...)
 |      getIterations() -> retval
 |  
 |  getLearningRate(...)
 |      getLearningRate() -> retval
 |  
 |  getMiniBatchSize(...)
 |      getMiniBatchSize() -> retval
 |  
 |  getRegularization(...)
 |      getRegularization() -> retval
 |  
 |  getTermCriteria(...)
 |      getTermCriteria() -> retval
 |  
 |  getTrainMethod(...)
 |      getTrainMethod() -> retval
 |  
 |  get_learnt_thetas(...)
 |      get_learnt_thetas() -> retval
 |  
 |  predict(...)
 |      predict(samples[, results[, flags]]) -> retval, results
 |  
 |  setIterations(...)
 |      setIterations(val) -> None
 |  
 |  setLearningRate(...)
 |      setLearningRate(val) -> None
 |  
 |  setMiniBatchSize(...)
 |      setMiniBatchSize(val) -> None
 |  
 |  setRegularization(...)
 |      setRegularization(val) -> None
 |  
 |  setTermCriteria(...)
 |      setTermCriteria(val) -> None
 |  
 |  setTrainMethod(...)
 |      setTrainMethod(val) -> None
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __new__ = <built-in method __new__ of type object>
 |      T.__new__(S, ...) -> a new object with type S, a subtype of T
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from ml_StatModel:
 |  
 |  calcError(...)
 |      calcError(data, test[, resp]) -> retval, resp
 |  
 |  empty(...)
 |      empty() -> retval
 |  
 |  getVarCount(...)
 |      getVarCount() -> retval
 |  
 |  isClassifier(...)
 |      isClassifier() -> retval
 |  
 |  isTrained(...)
 |      isTrained() -> retval
 |  
 |  train(...)
 |      train(trainData[, flags]) -> retval  or  train(samples, layout, responses) -> retval
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from Algorithm:
 |  
 |  clear(...)
 |      clear() -> None
 |  
 |  getDefaultName(...)
 |      getDefaultName() -> retval
 |  
 |  save(...)
 |      save(filename) -> None

None

inserted by FC2 system