@@ -57,8 +57,8 @@ class SVC:
5757 >>> SVC(kernel="polynomial",degree=None)
5858 Traceback (most recent call last):
5959 ...
60- ValueError: degree must be int
61- >>> SVC(kernel="polynomial",degree=-1)
60+ ValueError: degree must be float or int
61+ >>> SVC(kernel="polynomial",degree=-1.0 )
6262 Traceback (most recent call last):
6363 ...
6464 ValueError: degree must be > 0
@@ -70,7 +70,7 @@ def __init__(
7070 regularization : float = np .inf ,
7171 kernel : str = "linear" ,
7272 gamma : float = 0.0 ,
73- degree : int = 0.0 ,
73+ degree : float = 0.0 ,
7474 coef0 : float = 0.0 ,
7575 ) -> None :
7676 self .regularization = regularization
@@ -93,8 +93,8 @@ def __init__(
9393 elif kernel == "polynomial" :
9494 if self .degree == 0 :
9595 raise ValueError ("polynomial kernel requires degree" )
96- if not isinstance (self .degree , int ):
97- raise ValueError ("degree must be int" )
96+ if not isinstance (self .degree , ( float , int )) :
97+ raise ValueError ("degree must be float or int" )
9898 if not self .degree > 0 :
9999 raise ValueError ("degree must be > 0" )
100100 self .kernel = self .__polynomial
@@ -123,6 +123,7 @@ def __rbf(self, vector1: ndarray, vector2: ndarray) -> float:
123123 """
124124 return np .exp (- (self .gamma * norm_squared (vector1 - vector2 )))
125125
126+
126127 def __polynomial (self , vector1 : ndarray , vector2 : ndarray ) -> float :
127128 """
128129 Polynomial kernel: (x . y + coef0)^degree
0 commit comments