Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import psycopg2
- import struct
- import array
- import matplotlib.pyplot as plt
- import numpy as np
- from sklearn.svm import SVR
- from sklearn.decomposition import PCA
- def normalize(v):
- norm = np.linalg.norm(v)
- if norm == 0:
- return v
- return v / norm
- def getMuestra(n):
- conn = psycopg2.connect(host="127.0.0.1",database="TPAS_FIX", user="postgres", password="pass")
- cur = conn.cursor()
- cur.execute("SELECT * FROM muestravraw WHERE idmuestratiposuelo = " + str(n)) #120
- print("The number of raw sample: ", cur.rowcount)
- if (cur.rowcount<1):
- return 0
- row = cur.fetchone()
- m = {}
- for i in range(8):
- #m[i] = np.divide(row[i+2],10000.0)
- var = row[i+2]
- var = var[510:]
- #m[i] = normalize(row[i+2])
- m[i] = normalize(var)
- return m
- def getAllMuestras():
- conn = psycopg2.connect(host="127.0.0.1",database="TPAS_FIX", user="postgres", password="pass")
- cur = conn.cursor()
- cur.execute("SELECT * FROM muestravraw") #120
- print("The number of raw sample: ", cur.rowcount)
- row = cur.rowcount
- bd = {}
- while(True):
- row = cur.fetchone()
- m = {}
- if (row == None):
- break
- for j in range(8):
- var = row[j+2]
- var = var[510:]
- var1 = var[35:70]
- var2 = var[110:170]
- var1.extend(var2)
- #var = [var1[33], var1[39], var1[40], var1[46], var1[61], var1[62], var1[70], var1[71], var1[82]]
- #var = [sum(var[:4]), sum(var[4:-1])]
- var = var1
- m[j] = normalize(var)
- bd[str(row[0])] = m
- #print (row[0])
- return bd
- #m = {}
- #for i in range(8):
- ##m[i] = np.divide(row[i+2],10000.0)
- # var = row[i+2]
- # var = var[510:]
- # #m[i] = normalize(row[i+2])
- # m[i] = normalize(var)
- #return m
- def getValues(muestra):
- conn = psycopg2.connect(host="127.0.0.1",database="TPAS_FIX", user="postgres", password="pass")
- cur = conn.cursor()
- cur.execute("SELECT * FROM analisisquimico WHERE idmuestratiposuelo = " + str(muestra)) #120
- row = cur.fetchone()
- idQ = row[0]
- cur.execute("SELECT * FROM analisisquimicoelemento WHERE idanalisisquimico = " + str(idQ) + "and idelemento = 21") #120
- while(True):
- row = cur.fetchone()
- if (row == None):
- break
- return (row[2])
- dic = getAllMuestras()
- l = []
- X = []
- y = []
- for key in dic:
- X.append(np.multiply(dic[key][0], 100000))
- l.append(key)
- y.append(getValues(key))
- plt.plot(X[30])
- plt.plot(X[10])
- plt.plot(X[100])
- plt.show()
- print (len(X))
- print (len(y))
- #getValues(l[0])
- X.pop(46)
- y.pop(46)
- pca = PCA(n_components = 5)
- X = pca.fit(X).transform(X)
- k = 80
- y = np.multiply(y, 1)
- X_train = X[:k]
- y_train = y[:k]
- X_test = X[k:110]
- y_test = y[k:110]
- X1 = np.asarray(X_train)
- #X1 = X1.transpose()
- y1 = np.asarray(y_train)
- y_test = np.asarray(y_test)
- t = np.linspace(1.0, k, num=k)
- #svr_rbf = SVR(kernel='rbf', C=1e9, gamma=0.00001)
- svr_rbf = SVR(kernel='poly', C=1e3, degree=5)
- #svr_rbf = SVR(kernel='linear', C=1e3)
- y_rbf = svr_rbf.fit(X1, y1).predict(X1)
- plt.scatter(y1, t,color='darkorange', label='data')
- plt.scatter(y_rbf, t, color='navy', label ='sim')
- plt.show()
- X_total = np.asarray(X)
- y_total = np.asarray(y)
- y_sim = svr_rbf.predict(X_test)
- y_ori = y_test
- t_comp = np.linspace(1, len(y_ori), len(y_ori))
- plt.scatter(y_sim, t_comp, label="DATA SIMULADA")
- plt.scatter(y_ori, t_comp, label="DATA")
- plt.show()
- t2 = np.linspace(1, len(y_test), len(y_test))
- y_sim = svr_rbf.predict(X_test)
- plt.scatter(y_sim, t2,color='darkorange', label='data')
- plt.scatter(y_test, t2, color='navy', label ='sim')
- plt.show()
- dif = []
- for i in range(len(y_test)):
- #print (str(y1[i]) + " " + str(y_rbf[i])+ " " + str(y1[i] - y_rbf[i] ) )
- d = abs(y_test[i]- y_train[i])
- res = d*100.0/y_test[i]
- dif.append(res)
- #print (i)#
- plt.scatter(t2, dif)
- plt.show()
- #plt.scatter(err, t, label='error porc')
- #plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement