示例#1
0
def M_fed_style(purpose,design,kernel,p,h,flag,fed_w):
    '''
    flag shows if design odd(1) or it isnt(0)
    fed_w is array with weights of norming design (sum eq 1)    
    '''
    
    n=len(design)
    u=[[(point-purpose)**(2*j) for j in range(p*2)]for point in design]

    w1=[K((point-purpose)/h,mode=kernel)/h for point in design]
    for i in range(len(w1)):
        w1[i]*=fed_w[i]
    def c_s(k):
        sum=0
        for b in range(n):
            sum+=u[b][k]*w1[b]
        sum*=2
        return sum        
    
    S=[c_s(k)for k in range(p*2)]
    M=np.empty((p+1,p+1),dtype=np.float64)
    
    from math import trunc
    for i in range(p+1):
        for j in range(p+1):
            if trunc((i+j)%2)==0:
                M[i,j]=S[int((i+j)/2)]
            else:
                M[i,j]=0
    
    '''contrib. of nonsymmetric point'''
    if flag==1:
        M[0,0]+=K(0.,mode=kernel)/h
       
    return M
示例#2
0
def M_symm(purpose, design, kernel, p, h, odd):

    n = len(design)
    Fish = np.zeros((p + 1, p + 1))
    Kui = [K((design[i] - purpose) / h, mode=kernel) / h for i in range(n)]
    if odd == 0:  #число точек - четное
        for i in range(p + 1):
            for j in range(p + 1):
                s = i + j
                if s % 2 == 1:
                    Fish[i, j] += 0
                else:
                    Fish[i, j] += 2 * sum([(design[a] - purpose)**s * Kui[a]
                                           for a in range(n)])

    else:  #число точек - нечетное, и последняя в плане - не имеет парную
        for i in range(p + 1):
            for j in range(p + 1):
                s = i + j
                if s % 2 == 0:
                    Fish[i, j] += 2 * sum([(design[a] - purpose)**s * Kui[a]
                                           for a in range(n - odd)])
                Fish[i, j] += Kui[n - 1] * (design[n - 1] - purpose)**s

    return Fish
示例#3
0
def M(purpose, design, kernel, p, h):
    n = len(design)
    M = np.zeros((p + 1, p + 1))
    Kui = [K((design[i] - purpose) / h, mode=kernel) / h for i in range(n)]
    for i in range(n):
        f_x = get_f(purpose, design[i], p)
        M += Kui[i] * np.dot(f_x, f_x.T)
    return M
示例#4
0
    
    res1=[len(design)*check_one(purpose,design,dot,p,h,kernel)[1]for dot in design]
        
    
    return res
    
#cond2=check_all(purpose=0,design=[-1,  0, 1],p=2,h=1,kernel='gauss')

#print(cond2)
'''


def d_x(purpose, design, dot, p, h, kernel):

    m = M(purpose, design, kernel, p, h)
    D = np.linalg.inv(m)
    f_x = np.matrix([(dot - purpose)**(j) for j in range(p + 1)]).T
    d_x = np.dot(f_x.T, D)
    d_x = np.dot(d_x, f_x)
    d_x *= len(design)
    return float(d_x)


h = 1
kernl = 'unif'
x_axe = np.linspace(-1, 1, 500)

y_axe=[K(x_axe[i]/h,mode=kernl)/h*d_x(purpose=0,design=[-0.999,0.8356540663993193, 0.5641572515850596,-0.564263395062234, 0.7821410588028485,0.2955600789475211,-0.29399672797215587,0.0005596857669483513,0.9376458913026472,-0.93614466888028,-0.7889649466036868,0.9999999983452569],\
dot=x_axe[i],p=10,h=h,kernel=kernl)for i in range(len(x_axe))]
y_axe = list(map(lambda y: float(y), y_axe))
示例#5
0
import sys
from kernel import K

data_info = []
data_cluster = 0
#data_matrix = []
for datum in sys.stdin:
    datum = datum.strip().split()
    if int(datum[2]) == 0:
        data_info = [float(num) for num in datum[3:-1]]
        data_cluster = datum[-1]
        #data_matrix = [int(num) for num in datum[0:2]]
    elif int(datum[2]) == 1:
        info = [float(num) for num in datum[3:-1]]
        cluster = datum[-1]
        kernel = K(data_info, info)
        #matrix = [int(num) for num in datum[0:2]]
        print ''.join(str(f) + ' ' for f in data_info) + cluster, kernel
"""
cluster = 1
cluster_count = 0
sum_number = 0
feature = []
for datum in sys.stdin:
	datum = datum.strip().split()
	xi_cluster = datum[-2]
	xi_K = datum[-1]
	xi_feature = datum[0:-2]

	if int(xi_cluster) != cluster:
		try:
示例#6
0
 def minimax(dot):
     dot = float(dot)
     d = dx(dot)
     w = K((dot - purpose) / h, mode=kernel) / h
     return float(-w * d)
示例#7
0
#!/usr/bin/python

import sys
# get kernel
from kernel import K

# read data
for datum in sys.stdin:
	datum = datum.strip().split()
	#split data cluster and features
	features = datum[0:-1]
	cluster = datum[-1]
	#K(xi, xi)
	kernel = K(features, features)
	#MAP <features, (cluster (0), A, K(xi,xi))>
	print ''.join(f+' ' for f in features)+ str(0) , str(kernel)
示例#8
0
 def minimax(dot):
     dot = float(dot)
     d = dx(purpose, design, dot, p, h, kernel)
     w = K((dot - purpose) / h, mode=kernel) / h
     return float(-w * d)