import numpy as np
from machine_learning.lib.svm_smo import SVM
class KernelSVM(SVM):
def __init__(self,kernel=None):
self.kernel=kernel
def get_K(self,X_1,X_2):
if self.kernel==None:
return X_1.dot(X_2.T)
m1,m2=len(X_1),len(X_2)
K=np.zeros((m1,m2))
for i in range(m1):
for j in range(m2):
K[i][j]=self.kernel(X_1[i],X_2[j])
return K
def fit(self,X,y,N=10):
K=self.get_K(X,X)
self.smo(X,y,K,N)
self.X_train=X
self.y_train=y
def predict(self,X):
K=self.get_K(X,self.X_train)
return np.sign(K.dot(self.Lambda*self.y_train)+self.b)
机器学习算法导论---kernel_svm
最新推荐文章于 2024-11-26 11:59:58 发布
本文介绍了一种自定义的SVM (Support Vector Machine) 实现,名为KernelSVM,它支持用户自定义内核函数。核心内容包括初始化、核函数计算、fit方法中的Sequential Minimal Optimization (SMO) 算法,以及predict阶段的预测功能。适用于非线性问题的分类解决。
2万+

被折叠的 条评论
为什么被折叠?



