In [1]:
import numpy as np
# 三维的输入向量
x = np.array([10,20,30])
y = np.array([8,9,10])
定义一个映射函数来进行转换空间
phi(x1,x2,x3) = (x1x2,x1x3,x2x3,x1x1,x2x2,x3x3)
上述转换将三维空间转换成6维
In [4]:
def mapping_function(x):
out_list = []
for i in range(len(x)):
out_list.append(x[i]*x[i])
out_list.append(x[0]*x[1])
out_list.append(x[0]*x[2])
out_list.append(x[1]*x[0])
out_list.append(x[1]*x[2])
out_list.append(x[2]*x[0])
out_list.append(x[2]*x[1])
return np.array(out_list)
In [5]:
# 主函数
if __name__ == '__main__':
# 应用映射函数
tranf_x = mapping_function(x)
tranf_y = mapping_function(y)
# print the result
print tranf_x
print np.dot(tranf_x,tranf_y)
# 这个和上面的核函数是等价的
output = np.power((np.dot(x,y)),2)
print output