363111, 820117, 488463, 455872, 473954, 371886, 451887, 403893, 364007, 331575 ] BNPSyss = [ 918710, 771973, 831298, 808765, 777248, 922939, 834642, 850163, 759414, 731136, 1125019, 899272, 846111, 886057, 817060, 824648, 811833, 792748, 778412 ] Sysselsatte = [ 270338, 47868, 125938, 37143, 86627, 254290, 127060, 116020, 62621, 86968, 468375, 233986, 54490, 166479, 74749, 84537, 86997, 106931, 118320 ] X = np.transpose(np.array([Areal, Folketall, BNPKap, BNPSyss, Sysselsatte])) X = pca.standardize(pca.meanCenter(X)) [T, P, E] = pca.pca(X, a=2) plt.figure(2) plt.scatter(T[:, 0], T[:, 1]) for txt, x, y in zip(Fylker, T[:, 0], T[:, 1]): plt.annotate(txt, xy=(x, y)) plt.scatter(P[:, 0], P[:, 1]) for txt, x, y in zip(Indikatorer, P[:, 0], P[:, 1]): plt.annotate(txt, xy=(x, y)) plt.show()
from __future__ import division import pca import scipy.io import numpy as np import scipy.linalg as sl import matplotlib.pyplot as plt import pylab data = scipy.io.loadmat("Arbeidskrav3.mat") X1 = np.array(data['X1']) X2 = np.array(data['X2']) # 2a: X1 = pca.meanCenter( X1) # Preprosessering av matrisen. Gjennomsnitt = 0 i hver søyle/kolonne. X1 = pca.standardize( X1) # Preprossesering av matrisen. standardavvik = 1 i hver søyle/kolonne. objNames1 = data[ 'objNames1'] # Navn på pkt i scoreplot ['1:Milk+','2','3:Sugar','4','5a','5b','6','7:Cocoa+'] varNames1 = data[ 'varNames1'] # Navn på pkt i loadingsplot ['%COCOA','%SUGAR','%MILK','COLOUR(L)','VISCOSITY/10','colour','cocoa-odour','smooth-txtr','milk-taste','sweet'] # 2b: # Vi bruker PCA til å beskrive varians i datasettet vårt, og derfor er det # viktig med standardisering. Ved standardisering får vi sammenliknbare # resultater, uavhengig hvilken måleenhet eller benevning som var brukt på # dataene i utgangspunktet. # 2c [T, P, E] = pca.pca( X1, a=2) # Setter a=2 fordi vi skal ha de to første prinsipalkomponentene
918710, 771973, 831298, 808765, 777248, 922939, 834642, 850163, 759414, 731136, 1125019, 899272, 846111, 886057, 817060, 824648, 811833, 792748, 778412 ] Sysselsatte = [ 270338, 47868, 125938, 37143, 86627, 254290, 127060, 116020, 62621, 86968, 468375, 233986, 54490, 166479, 74749, 84537, 86997, 106931, 118320 ] X = np.transpose(np.array([Areal, Folketall, BNPKap, BNPSyss, Sysselsatte])) # a) X = meanCenter(X) X = standardize(X) # Matrise X # [-0.63453849 -0.94222438 -0.89082706 -0.80036086 -0.85331319] # [-0.17137967 0.01742517 -0.33347532 -0.11689616 -0.10886456] # [ 2.54145713 -1.18074621 0.05798917 -0.37649178 -0.95558309] # [ 0.83313906 -0.47419209 -0.6365081 -0.73958924 -0.48372072] # [-0.12915832 1.43151638 0.52872913 0.93887103 1.11505589] # [-0.15618356 -0.06168186 0.00552233 -0.07837098 -0.09816556] # [ 1.72458964 -0.19945995 -0.03811831 0.10044159 -0.20343919] # [ 0.43216942 -0.82120945 -0.61564018 -0.94504915 -0.71263366] # [ 0.6556773 -0.51369263 -0.65379274 -1.27083111 -0.48046906] # [-1.33458788 2.29554883 3.65563591 3.26697127 3.15649669] # [-0.61672521 1.1493503 0.52823879 0.66621096 0.92144394] # [ 0.12712403 -0.9799356 0.2209155 0.05375977 -0.79016807]
331575 ] BNPSyss = [ 918710, 771973, 831298, 808765, 777248, 922939, 834642, 850163, 759414, 731136, 1125019, 899272, 846111, 886057, 817060, 824648, 811833, 792748, 778412 ] Sysselsatte = [ 270338, 47868, 125938, 37143, 86627, 254290, 127060, 116020, 62621, 86968, 468375, 233986, 54490, 166479, 74749, 84537, 86997, 106931, 118320 ] X = np.transpose(np.array([Areal, Folketall, BNPKap, BNPSyss, Sysselsatte])) X = pca.meanCenter(X) X = pca.standardize(X) print("Oppgave 3a, prossesert X = \n", X) # b) [T, P, E] = pca.pca(X, a=2) print("\nOppgave 3b, T =\n", T) print("\nP =\n", P) # c) # plotter skåreplot med fylkenavn plt.figure(1) plt.scatter(T[:, 0], T[:, 1])
import scipy.io import numpy as np import scipy.linalg as sl import matplotlib.pyplot as plt import pylab data = scipy.io.loadmat("Arbeidskrav3.mat") X1 = np.array(data['X1']) X2 = np.array(data['X2']) # Oppgave 1 # Preprossessering, meancenter for gjennomsnitt = 0 i hver søyle/kolonne, # standardize for standardavvik = 1 i hver søyle/kolonne X1 = pca.meanCenter(X1) X1 = pca.standardize(X1) # Navn på punkt i score plot objNames1 = data['objNames1'] # Navn på punkt i loading plot varNames1 = data['varNames1'] # Oppgave 2 # Standardisering i PCA er viktig fordi PCA beskriver varians i et sett. # Når vi standardiserer dataene vi tar inn, får vi sammenlignbare resultater, # på tvers av måleenheter og størrelsesordener # Oppgave 3 [T, P, E] = pca.pca(X1, a=2) plt.figure(0)
from ksvm import poly_kernel, gauss_kernel, SDCARegressor from rn_tf import * X_train, Y_train = retrieve(2016) X_val, Y_val = retrieve(2017) X_test, Y_test = retrieve(2018) m = X_train.shape[1] print(str(m) + " features") # Testing PCA and creating modified sets X_train_n = normalize(X_train) X_val_n = normalize(X_val) X_test_n = normalize(X_test) X_train_s = standardize(X_train) X_val_s = standardize(X_val) X_test_s = standardize(X_test) pca = PCA(n_components=m, whiten=True) X_train_pca = pca.fit_transform(X_train_s) X_val_pca = pca.fit_transform(X_val_s) X_test_pca = pca.fit_transform(X_test_s) # Testing Linear_regression # With normalized data print("Linear regression with normalized data") LR = LinearRegression(lamb=0.1, delta=0.000015) LR.fit(X_train_n, Y_train, epochs=1000, Visual=True)
] BNPSyss = [ 918710, 771973, 831298, 808765, 777248, 922939, 834642, 850163, 759414, 731136, 1125019, 899272, 846111, 886057, 817060, 824648, 811833, 792748, 778412 ] Sysselsatte = [ 270338, 47868, 125938, 37143, 86627, 254290, 127060, 116020, 62621, 86968, 468375, 233986, 54490, 166479, 74749, 84537, 86997, 106931, 118320 ] X = np.transpose(np.array([Areal, Folketall, BNPKap, BNPSyss, Sysselsatte])) #E.T er transponerte av e #Oppgave 3a Xnorm = standardize(meanCenter(X)) print('Preprossessert X:') print(Xnorm) #Oppgave b [T, P, E] = pca(Xnorm, a=2) #T inneholder koordinatene til datapunktene i svaret, og hva en nxa-matrise- print(T) #P inneholder retningene på de a aksene i m dimensjoner vi velger. det inneholder også koor til målretningene i svaret. P er en mxa-matrise(så den transponerte er axm) print(P) print('c):') plt.figure(0) plt.scatter(T[:, 0], T[:, 1]) for label, x, y in zip(Fylker, T[:, 0], T[:, 1]): plt.annotate(label,