@@ -395,8 +395,8 @@ def _get_new_alpha(self, i1, i2, a1, a2, e1, e2, y1, y2):
395
395
# Normalize data using min-max method
396
396
def _norm (self , data ):
397
397
if self ._init :
398
- self ._min = np .min (data , axis = 0 ) # [0, -2, 2] [1, 1, 0]
399
- self ._max = np .max (data , axis = 0 ) # [1, -1, 3] [1, 1, 1]
398
+ self ._min = np .min (data , axis = 0 )
399
+ self ._max = np .max (data , axis = 0 )
400
400
self ._init = False
401
401
return (data - self ._min ) / (self ._max - self ._min )
402
402
else :
@@ -436,6 +436,12 @@ def length(self):
436
436
437
437
438
438
class Kernel :
439
+ """
440
+ >>> from machine_learning.sequential_minimum_optimization import Kernel
441
+ >>> kernel = Kernel(kernel='linear')
442
+ >>> kernel._kernel_name
443
+ 'linear'
444
+ """
439
445
def __init__ (self , kernel , degree = 1.0 , coef0 = 0.0 , gamma = 1.0 ):
440
446
self .degree = np .float64 (degree )
441
447
self .coef0 = np .float64 (coef0 )
@@ -445,9 +451,23 @@ def __init__(self, kernel, degree=1.0, coef0=0.0, gamma=1.0):
445
451
self ._check ()
446
452
447
453
def _polynomial (self , v1 , v2 ):
454
+ """
455
+ >>> from machine_learning.sequential_minimum_optimization import Kernel
456
+ >>> kernel = Kernel(kernel='linear')
457
+ >>> result = kernel._polynomial(np.array([1, 2]), np.array([2, 3]))
458
+ >>> int(result) == 8
459
+ True
460
+ """
448
461
return (self .gamma * np .inner (v1 , v2 ) + self .coef0 ) ** self .degree
449
462
450
463
def _linear (self , v1 , v2 ):
464
+ """
465
+ >>> from machine_learning.sequential_minimum_optimization import Kernel
466
+ >>> kernel = Kernel(kernel='linear')
467
+ >>> result = kernel._polynomial(np.array([1, 2]), np.array([2, 3]))
468
+ >>> int(result) == 8
469
+ True
470
+ """
451
471
return np .inner (v1 , v2 ) + self .coef0
452
472
453
473
def _rbf (self , v1 , v2 ):
0 commit comments