给定一个数据集,其输入格式为带中括号的二维列表,形如
[[1,2],
[3,4],
[5,6]]
实现一个计算支持向量机(SVM)核矩阵的系统,具体要求如下:
读取输入数据集,由数据点组成,每个数据点是一个特征向量。
读取核函数类型,可以是'linear’(线性核)、'polynomial'(多项式核)或'rbf'(高斯核)。
根据核函数类型计算核矩阵:
线性核:计算两个向量的内积。
多项式核:计算形式为:
K(x,y)=(γxTy+r)d 的核函数,其中默认参数为γ=1、r=0、d=2。
高斯核(RBF核):计算形式为K(x,y)=exp(−r∣∣x−y∣∣2)的核函数,其中 默认参数为γ=0.5。
4.输出核矩阵,对于高斯核矩阵每个元素保留两位小数,使用round(x,2)
(不允许使用numpy库、sklearn库)。
输入包括:
一个数据集,表示为一个二维列表,每个内部列表代表一个数据点的特征向量。
一个字符串,表示核函数类型'linear'、'polynomial'或'rbf'。
如果核函数为'polynomial'或'rbf',可能需要额外的参数:
对于'polynomial',需要整数参数d,表示多项式的次数。
对于'rbf',需要浮点数参数gamma,表示高斯核的参数
输出为一个二维列表,表示计算得到的核矩阵,对于高斯核矩阵每个元素保留两位小数,使用round(x,2)
输入
[[1,2],
[3,4],
[5,6]]
'linear'
输出
[[5,11,17],[11,25,39],[17,39,61]]