Klasyfikacja za pomocą algorytmu wektorów wspierających (SVM)
|
|
- Przybysław Witek
- 6 lat temu
- Przeglądów:
Transkrypt
1 Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw/SVM1 Spis treści 1 Klasyfikacja za pomocą algorytmu wektorów wspierających (SVM) 1.1 Materiały 1.2 Ćwiczenie 1: Dane separowalne liniowo 1.3 Ćwiczenie 2: jądro Gaussowskie 1.4 Ćwiczenie 3: skomplikowany podział nieliniowy 1.5 Ćwiczenie 4: automatyzacja dobierania parametrów C i sigma 1.6 Dodatek: implementacja w oparciu o bibliotekę LIBSVM Klasyfikacja za pomocą algorytmu wektorów wspierających (SVM) Materiały Na tych ćwiczeniach zapoznamy się z zastosowaniem SVM do klasyfikacji. Poniżej znajduje się moduł dostarczający kilku funkcji, z których dziś będziemy korzystać. Proszę zapisać go w bieżącym katalogu. Kod modułu svm_modul.py # -*- coding: utf-8 -*- import numpy as np import pylab as py ##################################################################### # definicje funkcji pomocniczych, których nie musisz modyfikować ##################################################################### def rysujdanegrup(x, y, marker, xlabel, ylabel,legend_list): '''X - macierz wartości wejściowych zorganizowana tak, że kolejne przykłady są w wierszach, kolumny to kolejne wynmiary wejścia, y - wektor określający przynależność do grupy, indeksy tego wektora odpowiadają wireszom macierzy X, marker - zestaw markerów do oznaczania elementów grup, markerów powinno być tyle ile jest grup''' p=[] for i,g in enumerate(np.unique(y)): g = int(g)
2 tmp =py.plot(x[np.where(y==g),],x[np.where(y==g),1],marker[i]) p.append(tmp[]) py.legend(p,legend_list) # Dodajemy napisy py.xlabel(xlabel) py.ylabel(ylabel) def rysujpodzial(model, X): # wytworzymy siatkę punktów pokrywających obszar danych: N = 100 # ilość punktów siatki w jednym wymiarze os_x = np.linspace(x.min(),x.max(),n) klasa = np.zeros((n,n)) for ix1, x1 in enumerate(os_x): for ix2, x2 in enumerate(os_x): XX = np.array([x1,x2]).reshape(1,2) klasa[ix1,ix2] = svmpredict(model, XX) # dla każdego punktu siatki obliczamy jego klasę x1_grid,x2_grid = np.meshgrid(os_x,os_x) py.contourf(x1_grid, x2_grid, klasa.t,2) def gaussiankernel(xi,xj,sigma=0.1): z = np.dot((xi-xj).t,(xi-xj)) S = 2*sigma*sigma Z= z/s return np.exp(-z) def svmtrain(x, Y, C, kernelfunction, tol = 1e-3, max_passes = 5, sigma=0.1): '''VMTRAIN Trenuje klasyfikator SVM za pomocą uproszczonego algorytmu SMO. X - macierz wejściowa przykładów z ciągu uczącego wiersze - przyklady, kolumny - cechy Y - wektor etykiet klas {-1,1} C - regularyzacja SVM tol - tolerancja na odstępstwa od wrunków KTT max_passes - ile iteracji bez zmian mnożników Lagrangaea wykonać zanim uznamy, że już nie ma co poprawiać kernelfunction - funkcja jądra, zaimplementowane są: - gaussiankernel - linearkernel sigma - standardowe odchylenie dla jądra gaussowskiego funkcja zwraca parametry doapsowanego modelu w słowniku model Uwaga: To jest wersja uproszczona algorytmu wzorowana na
3 pdf Nie jest ani specjalnie elegancka ani szybka. Do praktycznych zastosowań zaleca się stosowanie zoptymalizowanych bibliotek: LIBSVM ( SVMLight ( lub sklearn ''' # Pobieramy rozmiary m,n = X.shape #m - ilość przykładów, n - wymiar wejścia # Zmienne alphas = np.zeros(m) b = E = np.zeros(m) passes = eta = L = H = # Pre-compute the Kernel Matrix since our dataset is small # (in practice, optimized SVM packages that handle large datasets # gracefully will _not_ do this) # # We have implemented optimized vectorized version of the Kernels here so # that the svm training will run faster. print 'Obliczam macierz jądra' if kernelfunction =='linearkernel': # to jądro można policzyć od razu dla wszystkich przykładów K = np.dot(x,x.t) else: # Jak nie możemy wymyśleć wektoryzacji obliczeń to # obliczamy każdy element macierzy jądra osobno K = np.zeros((m,m)) for i in range(m): for j in range(i,m): K[i,j] = gaussiankernel(x[i,:].t, X[j,:].T,sigma) K[j,i] = K[i,j] #the matrix is symmetric
4 print 'Trenuję...' dots = 12 while passes < max_passes: num_changed_alphas = for i in range(m): #dla każdego przykładu z ciągu uczącego # obliczamy błąd predykcji dla wektora i E[i] = b + np.sum (alphas*y*k[:,i]) - Y[i] # jeśli jest co poprawiać: if (( (Y[i]*E[i] < -tol) & (alphas[i] < C)) ((Y[i]*E[i] > tol) & (alphas[i] > ))): select randomly. # In practice, there are many heuristics one can use to # the i and j. In this simplified code, we select them j = np.floor(m * np.random.rand()) while j == i: # Make sure i \neq j j = np.floor(m * np.random.rand()) # Obliczamy błąd predykcji dla wektora j. E[j] = b + np.sum (alphas*y*k[:,j]) - Y[j] # Save old alphas alpha_i_old = alphas[i] alpha_j_old = alphas[j] # Oblicz przycięcia do pudełka [0,C] if (Y[i] == Y[j]): L = np.max((, alphas[j] + alphas[i] - C)) H = np.min((c, alphas[j] + alphas[i])) else: L = np.max((, alphas[j] - alphas[i])) H = np.min((c, C + alphas[j] - alphas[i])) if (L == H): # continue to next i. continue # Compute eta by (15). eta = 2 * K[i,j] - K[i,i] - K[j,j] if (eta >= ): # continue to next i. continue # Compute and clip new value for alpha j using (16) and (17). alphas[j] = alphas[j] - (Y[j] * (E[i] - E[j])) / eta # Clip alphas[j] = np.min ((H, alphas[j]))
5 alphas[j] = np.max ((L, alphas[j])) #Check if change in alpha is significant if (np.abs(alphas[j] - alpha_j_old) < tol): # continue to next i. # replace anyway alphas[j] = alpha_j_old continue # Determine value for alpha i using (16). alphas[i] = alphas[i] + Y[i]*Y[j]*(alpha_j_old - alphas[j]) # Compute b1 and b2 using (20) and (21) respectively. b1 = b - E[i] - Y[i] * (alphas[i] - alpha_i_old) * K[i,j] - Y[j] * (alphas[j] - alpha_j_old) * K[i,j].T b2 = b - E[j] - Y[i] * (alphas[i] - alpha_i_old) * K[i,j] - Y[j] * (alphas[j] - alpha_j_old) * K[j,j].T # Compute b by (19). if ( ( < alphas[i]) & (alphas[i] < C)): b = b1 elif ( < alphas[j]) & (alphas[j] < C): b = b2 else: b = (b1+b2)/2 num_changed_alphas = num_changed_alphas + 1 if (num_changed_alphas == ): passes = passes + 1 else: passes = print num_changed_alphas print ' Gotowe! \n\n' # Save the model idx = alphas > model = {} model['x'] = X[idx,:] model['y'] = Y[idx] model['kernelfunction'] = kernelfunction model['b'] = b model['alphas']= alphas[idx] model['w'] = (np.dot((alphas*y).t, X)).T model['sigma'] = sigma print 'ilość wektorów wspierających: ', len(model['alphas']) return model
6 def svmpredict(model,x): '''model - model otrzymany z funkcji svmtrain X - macierz m x n, w której wierszach są przykłady do sklasyfikowania (m) każdy przykład ma wymiar n funkcja zwraca wektor pred - i-ty element to predykcja dla i-tego przykładu ''' # pobieramy rozmiary: m,n = X.shape #print 'm,n',m,n # przygotowujemy tablice: pred = np.zeros(m) # predyktory margines = np.zeros(m) # wartości marginesów if model['kernelfunction'] == 'linearkernel': margines = np.dot(x, model['w']) + model['b'] elif model['kernelfunction'] =='gaussiankernel': for i in range(m): #ta pętla iteruje po przykładach z macierzy X for j in range(len(model['alphas'])): # ta pętlla iteruje po wektorach wspierających margines[i] += model['alphas'][j]*model['y'][j]* gaussiankernel(x[i,:],model['x'][j,:],model['sigma']) margines[i] += model['b'] else: print 'niezaimplementowane jądro '+ model['kernelfunction'] pred[margines >= ] = 1 pred[margines < ] = -1 return pred Potrzebne będą nam też następujące zestawy danych: Plik:Dane1.txt, Plik:Dane2.txt, Plik:Dane3.txt. Proszę pobrać te pliki i zapisać je w bieżącym katalogu. Ćwiczenie 1: Dane separowalne liniowo Poniższy kod prezentuje zastosowanie SVM do problemu, który jest separowalny liniowo. Wykonując poniższy kod proszę zwrócić uwagę na punkt należący do klasy1 o współrzędnych (0.09, 4). Jak pamiętamy z wykładu parametr C to współczynnik regularyzacji SVM, który karze za naruszanie marginesów. Proszę wykonać kod dla C o wartościach {1,2,5,10,20,30,60,120} i zaobserwować wyniki. # -*- coding: utf-8 -*-
7 #importujemy potrzebne moduły i klasy import numpy as np import pylab as py from svm_modul import * #================================================================== # Program #================================================================== # wczytywanie danych dane = np.loadtxt('dane1.txt') # dane zorganizowane są w trzech kolumnach N_przyk, N_wej = dane.shape X = dane[:,:2] # pierwsze dwie kolumny to wejście y = dane[:,2] # trzecia kolumna to etykiety klas # narysujmy te dane rysujdanegrup(x, y, marker=('or','xb'), xlabel='x0', ylabel='x1',legend_list=('klasa0','klasa1')) py.show() # trenujemy model model = svmtrain(x, y, C=100, kernelfunction = 'linearkernel', tol = 1e-3, max_passes = 20,sigma = 10) # prezentujemy podział przestrzeni wejść reprezentowany przez model rysujdanegrup(x, y, marker=('or','xb'), xlabel='x0', ylabel='x1',legend_list=('klasa0','klasa1')) rysujpodzial(model,x) py.show() Ćwiczenie 2: jądro Gaussowskie W poprzednim programie proszę zmodyfikować wywołanie svmtrain: podmienić funkcję jądra na 'gaussiankernel'. ustawić C = 10 zmieniać sigma na wartości: {0.1, 0.2, 0.4, 0.8, 1, 2, 4, 8} Ćwiczenie 3: skomplikowany podział nieliniowy Przy pomocy kodu z ćwiczenia 2 proszę dobrać parametry C i sigma aby otrzymać sensownie wyglądający podział przestrzeni dla danych zawartych w pliku dane2.txt.
8 Ćwiczenie 4: automatyzacja dobierania parametrów C i sigma W wielu prawdziwych zastosowaniach chcielibyśmy aby nasz wybór parametrów był optymalny a jednocześnie możliwie obiektywny. Powszechnie stosowaną metodą jest przeszukanie przestrzeni parametrów (C,sigma). Generuje się siatkę wartości (C,sigma) i dla każdego punktu siatki: estymuje się model ocenia się jakość generalizacji Do oceny jakości w każdym punkcie siatki można zastosować albo zbiór monitorujący albo metody typu leave-one-out. Uwaga: podział przestrzeni często wykonuje się w skali logarytmicznej. Ćwiczenie wykonamy dla zbioru uczącego z pliku dane3.txt. Musimy ten zbiór podzielić na dane do trenowania i dane do testowania np. w proporcji 3:1, Można to zrobić tak: # wczytywanie danych dane = np.loadtxt('dane3.txt') # dane zorganizowane są w trzech kolumnach N_przyk, N_wej = dane.shape X = dane[:,:2] # pierwsze dwie kolumny to wejście y = dane[:,2] # trzecia kolumna to etykiety klas #podział na zbiór uczący i testujący grupa0, = np.where(y==-1) grupa1, = np.where(y==1) # mieszamy kolejność indexów np.random.shuffle(grupa0) np.random.shuffle(grupa1) # kopiujemy dane do zbioru uczącego (pierwsze 75% grupy0 i grupy1) Xu = X[np.concatenate((grupa0[: int(0.75*len(grupa0))],grupa1[:int(0.75*len(grupa0))]))] yu = y[np.concatenate((grupa0[: int(0.75*len(grupa0))],grupa1[:int(0.75*len(grupa0))]))] # kopiujemy dane do zbioru testowego (końcowe 25% grupy0 i grupy1) Xt = X[np.concatenate((grupa0[int(0.75*len(grupa0)):], grupa1[int(0.75*len(grupa0)):]))] yt = y[np.concatenate((grupa0[int(0.75*len(grupa0)):], grupa1[int(0.75*len(grupa0)):]))]
9 # narysujmy te dane rysujdanegrup(xu, yu, marker=('xr','xb'), xlabel='x0', ylabel='x1',legend_list=('klasa0','klasa1')) rysujdanegrup(xt, yt, marker=('or','ob'), xlabel='x0', ylabel='x1',legend_list=('klasa0_test','klasa1_test')) py.show() Mając taki podział danych możemy dopasować model SVM do części uczącej: model = svmtrain(xu, yu, C=10, kernelfunction = 'gaussiankernel', tol = 1e-3, max_passes = 20,sigma = 0.5) A następnie ocenić jego jakość na części testowej (funkcja svmpredict dostarczana jest przez moduł svm_modul.py): TPR = np.sum(yt == svmpredict(model,xt))/float(len(yt)) Proszę napisać program, który skanuje przestrzeń (C,sigma): C w zakresie od 0.1 do 100, sigma w zakresie od 0.1 do 10. Do wygenerowania zakresu ze skalą logarytmiczną można wykorzystać np. takie polecenie: zakresc = np.logspace(np.log2(0.1),np.log2(100),8, base=2) znajduje najlepsze parametry rysuje podział przestrzeni dla najlepszych parametrów. Dodatek: implementacja w oparciu o bibliotekę LIBSVM Do praktycznych zastosowań zaleca się stosowanie zoptymalizowanych bibliotek, np. LIBSVM ( Poniżej prezentujemy przykłady implementacji ćwiczenia 3 i ćwiczenia 4 w oparciu o tą bibliotekę. Aby móc wykonać te programy potrzebna jest skompilowana biblioteka libsvm i moduły pythonowe svm.py oraz svmutil. Cały zestaw wraz z instrukcją komilacji można pobrać z Uwaga: w bibliotece tej jest nieco inna konwencja notacji jądra Gaussowskiego:, tzn. parametr cwiczenie3 # -*- coding: utf-8 -*-
10 #importujemy potrzebne moduły i klasy import numpy as np import pylab as py from svm import * from svmutil import * def rysujdanegrup(x, y, marker, xlabel, ylabel,legend_list): '''X - macierz wartości wejściowych zorganizowana tak, że kolejne przykłady są w wierszach, kolumny to kolejne wynmiary wejścia, y - wektor określający przynależność do grupy, indeksy tego wektora odpowiadają wireszom macierzy X, marker - zestaw markerów do oznaczania elementów grup, markerów powinno być tyle ile jest grup''' p=[] for i,g in enumerate(np.unique(y)): g = int(g) tmp =py.plot(x[np.where(y==g),],x[np.where(y==g),1],marker[i]) p.append(tmp[]) py.legend(p,legend_list) # Dodajemy napisy py.xlabel(xlabel) py.ylabel(ylabel) def rysujpodzial(model, X): # wytworzymy siatkę punktów pokrywających obszar danych: N = 100 # ilość punktów siatki w jednym wymiarze os_x = np.linspace(x.min(),x.max(),n) klasa = np.zeros((n,n)) for ix1, x1 in enumerate(os_x): for ix2, x2 in enumerate(os_x): XX = [[x1,x2]]#np.array([x1,x2]).reshape(1,2) #print XX p_label, p_acc, p_val =svm_predict([], XX, model, '-b 1') klasa[ix1,ix2] = p_label[] klasę #svmpredict(model, XX) # dla każdego punktu siatki obliczamy jego x1_grid,x2_grid = np.meshgrid(os_x,os_x) py.contourf(x1_grid, x2_grid, klasa.t,2) #================================================================== # Program #================================================================== # wczytywanie danych
11 dane = np.loadtxt('dane2.txt') # dane zorganizowane są w trzech kolumnach N_przyk, N_wej = dane.shape X = dane[:,:2].tolist() # pierwsze dwie kolumny to wejście y = dane[:,2].tolist() # trzecia kolumna to etykiety klas prob = svm_problem(y, X, iskernel=false) param = svm_parameter('-t 2 -c 10 -g 50 -b 1 -q') ''''options': -s svm_type : set type of SVM (default 0) 0 -- C-SVC 1 -- nu-svc 2 -- one-class SVM 3 -- epsilon-svr 4 -- nu-svr -t kernel_type : set type of kernel function (default 2) 0 -- linear: u'*v 1 -- polynomial: (gamma*u'*v + coef0)^degree 2 -- radial basis function: exp(-gamma* u-v ^2) 3 -- sigmoid: tanh(gamma*u'*v + coef0) 4 -- precomputed kernel (kernel values in training_set_file) -d degree : set degree in kernel function (default 3) -g gamma : set gamma in kernel function (default 1/num_features) -r coef0 : set coef0 in kernel function (default 0) -c cost : set the parameter C of C-SVC, epsilon-svr, and nu-svr (default 1) -n nu : set the parameter nu of nu-svc, one-class SVM, and nu-svr (default 0.5) -p epsilon : set the epsilon in loss function of epsilon-svr (default 0.1) -m cachesize : set cache memory size in MB (default 100) -e epsilon : set tolerance of termination criterion (default 0.001) -h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1) -b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0) -wi weight : set the parameter C of class i to weight*c, for C-SVC (default 1) -v n: n-fold cross validation mode -q : quiet mode (no outputs) ''' m = svm_train(prob, param) p_label, p_acc, p_val = svm_predict(y, X, m, '-b 1') ACC, MSE, SCC = evaluations(y, p_label) print ACC, MSE, SCC
12 # prezentujemy podział przestrzeni wejść reprezentowany przez model rysujdanegrup(np.array(x), np.array(y), marker=('or','xb'), xlabel='x0', ylabel='x1',legend_list=('klasa0','klasa1')) rysujpodzial(m,np.array(x)) py.show() cwiczenie4 # -*- coding: utf-8 -*- #importujemy potrzebne moduły i klasy import numpy as np import pylab as py from svm import * from svmutil import * def rysujdanegrup(x, y, marker, xlabel, ylabel,legend_list): '''X - macierz wartości wejściowych zorganizowana tak, że kolejne przykłady są w wierszach, kolumny to kolejne wynmiary wejścia, y - wektor określający przynależność do grupy, indeksy tego wektora odpowiadają wireszom macierzy X, marker - zestaw markerów do oznaczania elementów grup, markerów powinno być tyle ile jest grup''' p=[] for i,g in enumerate(np.unique(y)): g = int(g) tmp =py.plot(x[np.where(y==g),],x[np.where(y==g),1],marker[i]) p.append(tmp[]) py.legend(p,legend_list) # Dodajemy napisy py.xlabel(xlabel) py.ylabel(ylabel) def rysujpodzial(model, X): # wytworzymy siatkę punktów pokrywających obszar danych: N = 100 # ilość punktów siatki w jednym wymiarze os_x = np.linspace(x.min(),x.max(),n) klasa = np.zeros((n,n)) for ix1, x1 in enumerate(os_x): for ix2, x2 in enumerate(os_x): XX = [[x1,x2]]#np.array([x1,x2]).reshape(1,2) #print XX p_label, p_acc, p_val =svm_predict([], XX, model, '-b 1') klasa[ix1,ix2] = p_label[]
13 klasę #svmpredict(model, XX) # dla każdego punktu siatki obliczamy jego x1_grid,x2_grid = np.meshgrid(os_x,os_x) py.contourf(x1_grid, x2_grid, klasa.t,2) #================================================================== # Program #================================================================== # wczytywanie danych dane = np.loadtxt('dane3.txt') # dane zorganizowane są w trzech kolumnach N_przyk, N_wej = dane.shape X = dane[:,:2] # pierwsze dwie kolumny to wejście y = dane[:,2] # trzecia kolumna to etykiety klas #podział na zbiór uczący i testujący grupa0, = np.where(y==-1) grupa1, = np.where(y==1) # mieszamy kolejność indexów np.random.shuffle(grupa0) np.random.shuffle(grupa1) # kopiujemy dane do zbioru uczącego (pierwsze 75% grupy0 i grupy1) Xu = X[np.concatenate((grupa0[: int(0.75*len(grupa0))],grupa1[:int(0.75*len(grupa0))]))] yu = y[np.concatenate((grupa0[: int(0.75*len(grupa0))],grupa1[:int(0.75*len(grupa0))]))] # kopiujemy dane do zbioru testowego (końcowe 25% grupy0 i grupy1) Xt = X[np.concatenate((grupa0[int(0.75*len(grupa0)):], grupa1[int(0.75*len(grupa0)):]))] yt = y[np.concatenate((grupa0[int(0.75*len(grupa0)):], grupa1[int(0.75*len(grupa0)):]))] # narysujmy te dane rysujdanegrup(xu, yu, marker=('xr','xb'), xlabel='x0', ylabel='x1',legend_list=('klasa0','klasa1')) rysujdanegrup(xt, yt, marker=('or','ob'), xlabel='x0', ylabel='x1',legend_list=('klasa0_test','klasa1_test')) py.show() # trenujemy model yul = yu.tolist()
14 Xul = Xu.tolist() ytl = yt.tolist() Xtl = Xt.tolist() prob = svm_problem(yul, Xul, iskernel=false) Ng = 20 zakresc = np.logspace(np.log2(0.1),np.log2(10),20, base=2) zakress = np.logspace(np.log2(0.1),np.log2(10),10, base=2) bestc = bests = besttpr = TPR=np.zeros((20,10)) for i,c in enumerate(zakresc): for j,s in enumerate(zakress): param_string = '-t 2 -q -b 1 -e c '+str(c)+' -g '+str(s) param = svm_parameter(param_string) m = svm_train(prob, param) p_label, p_acc, p_val = svm_predict(ytl, Xtl, m, '-b 1') TPR[i,j] = np.sum(np.array(ytl)==np.array(p_label))/float(len(ytl)) if TPR[i,j]>bestTPR: besttpr = TPR[i,j] bestmodel = m bestc = C bests = S print C,S,TPR[i,j] # prezentujemy podział przestrzeni wejść reprezentowany przez model rysujdanegrup(x, y, marker=('or','xb'), xlabel='x0', ylabel='x1',legend_list=('klasa0','klasa1')) rysujpodzial(bestmodel,x) py.title('c: '+str(bestc)+' S: '+str(bests)) py.figure() py.pcolor(zakresc,zakress,(tpr.t)) py.xlabel('c') py.ylabel('s') py.colorbar() py.show() Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw/SVM1
Celem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych.
Spis treści 1 Wstęp 1.1 Importy 2 Zbiór uczący 3 Klasyfikacja 3.1 Rysunki dodatkowe 4 Polecenia dodatkowe Wstęp Celem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych. Importy
Instrukcje. Spis treści. Hipoteza. Parametry
Spis treści 1 Instrukcje 1.1 Hipoteza 1.2 Parametry 1.3 Wyniki 2 Kod 3 Walidacja 3.1 Zastosowanie w naszym przykładzie 3.1.1 Krzywa ROC Instrukcje W tym ćwiczeniu zbudujemy klasyfikator bazujący na regresji
Zadania z rysowania i dopasowania funkcji
Spis treści 1 Zadania z rysowania i dopasowania funkcji 1.1 Znajdowanie miejsca zerowego funkcji 1.2 Wczytywanie danych i wykres 1.3 Dopasowywanie krzywej do danych i wykres 1.3.1 Wskazówki Zadania z rysowania
Klasyfikator liniowy Wstęp Klasyfikator liniowy jest najprostszym możliwym klasyfikatorem. Zakłada on liniową separację liniowy podział dwóch klas między sobą. Przedstawia to poniższy rysunek: 5 4 3 2
Algorytmy, które estymują wprost rozkłady czy też mapowania z nazywamy algorytmami dyskryminacyjnymi.
Spis treści 1 Wstęp: generatywne algorytmy uczące 2 Gaussowska analiza dyskryminacyjna 2.1 Gaussowska analiza dyskryminacyjna a regresja logistyczna 3 Naiwny Klasyfikator Bayesa 3.1 Wygładzanie Laplace'a
Wykresy i interfejsy użytkownika
Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka
Algorytm k-means jest zaimplementowany w module scipy.cluster.vq (vq: vector quantization) ([dokumentacja]). Mamy tam funkcję
Spis treści 1 Algorytm k-means 1.1 Przykładowy kod. 2 Segmentacja obrazu algorytmem k-means 3 Algorytm EM: implementacja 3.1 Funkcje pomocnicze 3.2 Szkielet algorytmu 3.3 Program Algorytm k-means Algorytm
Rozpoznawanie obrazów
Rozpoznawanie obrazów Laboratorium Python Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba, J. Kaczmar Cel zadania Celem zadania jest implementacja liniowego zadania
Wprowadzenie do Python
Wprowadzenie do Python Marcin Orchel 1 Środowisko Python Zalecane korzystanie z dystrybucji Anaconda. W systemie linux może być już dostępny Python. Sprawdzenie wersji Pythona, python -V. Uruchomienie
Python. Wprowadzenie. Jolanta Bachan
Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=
Programowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
Kombinacja jądrowych estymatorów gęstości w klasyfikacji wstępne wyniki
Kombinacja jądrowych estymatorów gęstości w klasyfikacji wstępne wyniki Mateusz Kobos, 10.12.2008 Seminarium Metody Inteligencji Obliczeniowej 1/46 Spis treści Działanie algorytmu Uczenie Odtwarzanie/klasyfikacja
Ćwiczenie 1. Wprowadzenie do programu Octave
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do
Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z liniowym zadaniem najmniejszych
Algorytm grupowania danych typu kwantyzacji wektorów
Algorytm grupowania danych typu kwantyzacji wektorów Wstęp Definicja problemu: Typowe, problemem często spotykanym w zagadnieniach eksploracji danych (ang. data mining) jest zagadnienie grupowania danych
Personal Home Page PHP: Hypertext Preprocessor
Języki, które już znacie Wykład9PodstawyPHP,str1 język polski język angielski język C język preprocesora C język bash-a język HTML kolejny język: PHP Język PHP Wykład9PodstawyPHP,str2 Personal Home Page
Zadanie: Filtr adaptywny
Spis treści 1 Zadanie: Filtr adaptywny 1.1 Przygotuj sygnały: 1.2 Symulacja sieci 1.3 Wykresy 1.4 Szkielet rozwiązania: 1.5 Pytania Zadanie: Filtr adaptywny W tym zadaniu symulujemy działanie filtra, który
Zastosowania funkcji jądrowych do rozpoznawania ręcznie pisanych cyfr.
Zastosowania funkcji jądrowych do rozpoznawania ręcznie pisanych cyfr. Warszawa, 10 Marca 2016 Plan prezentacji. Definicja funkcji jądrowej. Plan prezentacji. Definicja funkcji jądrowej. Opis problemu
Oracle Data Mining 10g
Oracle Data Mining 10g Zastosowanie algorytmu Support Vector Machines do problemów biznesowych Piotr Hajkowski Oracle Consulting Agenda Podstawy teoretyczne algorytmu SVM SVM w bazie danych Klasyfikacja
- wszystkie elementy - wszystkie elementy
Tablice: indeksy całkowite >=0 tworzenie: TABLICA[0]=45 TABLICA[1]=23 TABLICA[2]=78 lub TABLICA=(45 23 78) lub TABLICA=($@) odwołanie echo ${TABLICA[3] echo ${TABLICA[*] echo ${TABLICA[@] Długość zmiennej:
Spis treści. Optymalizacja jednowymiarowa
Spis treści 1 Optymalizacja jednowymiarowa 2 Optymalizacja wielowymiarowa 2.1 Zadanie - rozkład Cauchy'ego 2.2 Rozwiązanie 2.3 Zadanie - Data Container 2.4 Rozwiązanie Optymalizacja jednowymiarowa Omawianie
tum.de/fall2018/ in2357
https://piazza.com/ tum.de/fall2018/ in2357 Prof. Daniel Cremers From to Classification Categories of Learning (Rep.) Learning Unsupervised Learning clustering, density estimation Supervised Learning learning
Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym
1 Wykład 6 Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym ELIMINACJA GAUSSA Z WYBOREM CZĘŚCIOWYM ELEMENTÓW PODSTAWOWYCH 2 Przy pomocy klasycznego algorytmu eliminacji
Metody klasyfikacji danych - część 1 p.1/24
Metody klasyfikacji danych - część 1 Inteligentne Usługi Informacyjne Jerzy Dembski Metody klasyfikacji danych - część 1 p.1/24 Plan wykładu - Zadanie klasyfikacji danych - Przeglad problemów klasyfikacji
7. Maszyny wektorów podpierajacych SVMs
Algorytmy rozpoznawania obrazów 7. Maszyny wektorów podpierajacych SVMs dr inż. Urszula Libal Politechnika Wrocławska 2015 1 1. Maszyny wektorów podpierajacych - SVMs Maszyny wektorów podpierających (ang.
Wstęp do informatyki Ćwiczenia. Piotr Fulmański
Wstęp do informatyki Ćwiczenia Piotr Fulmański Piotr Fulmański 1 e-mail 1: fulmanp@math.uni.lodz.pl Wydział Matematyki i Informatyki, Uniwersytet Łódzki Banacha 22, 90-238, Łódź Polska Data ostaniej modyfikacji:
Klasyfikacja Support Vector Machines
Klasyfikacja Support Vector Machines LABORKA Piotr Ciskowski przykład 1 KLASYFIKACJA KWIATKÓW IRYSA przykład 1. klasyfikacja kwiatków irysa (versicolor-virginica) żródło: pomoc MATLABa: http://www.mathworks.com/help/stats/svmclassify.html
A Zadanie
where a, b, and c are binary (boolean) attributes. A Zadanie 1 2 3 4 5 6 7 8 9 10 Punkty a (maks) (2) (2) (2) (2) (4) F(6) (8) T (8) (12) (12) (40) Nazwisko i Imiȩ: c Uwaga: ta część zostanie wypełniona
Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a
Modulacja i kodowanie Labolatorium Kodowanie źródłowe Kod Huffman a W tym ćwiczeniu zajmiemy się kodowaniem źródłowym (source coding). 1. Kodowanie źródłowe Głównym celem kodowanie źródłowego jest zmniejszenie
do MATLABa programowanie WYKŁAD Piotr Ciskowski
Wprowadzenie do MATLABa programowanie WYKŁAD Piotr Ciskowski instrukcje sterujące instrukcja warunkowa: if instrukcja wyboru: switch instrukcje iteracyjne: for, while instrukcje przerwania: continue, break,
System operacyjny Linux
Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje
Pakiety Matematyczne - R Zestaw 2.
Pakiety Matematyczne - R Zestaw 2. Część przykładów pochodzi z helpa do R i z książki: R.Biecek, Przewodnik po pakiecie R, GIS 2014, strona www: http://www.biecek.pl, Instrukcje warunkowe Składnia instrukcji
Elementy metod numerycznych - zajęcia 9
Poniższy dokument zawiera informacje na temat zadań rozwiązanych w trakcie laboratoriów. Elementy metod numerycznych - zajęcia 9 Tematyka - Scilab 1. Labolatoria Zajęcia za 34 punktów. Proszę wysłać krótkie
Klasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Niezawodność diagnostyka systemów laboratorium. Ćwiczenie 2
dr inż. Jacek Jarnicki doc. PWr Niezawodność diagnostyka systemów laboratorium Ćwiczenie 2 1. Treść ćwiczenia Generowanie realizacji zmiennych losowych i prezentacja graficzna wyników losowania. Symulacja
Ćwiczenia z przetwarzania tablic 2D
Ćwiczenia z przetwarzania tablic 2D Wyświetlanie tablic 2D Jako wstęp do przetwarzania obrazów w pythonie przećwiczmy podstawowe operacje na dwuwymiarowych tablicach numpy w postaci których będziemy takie
Ćwiczenie 1. Wprowadzenie do programu Octave
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do
Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 2 κ-nn i Naive Bayes autorzy: M. Zięba, J.M. Tomczak, A. Gonczarek, S. Zaręba Cel zadania Celem zadania jest implementacja klasyfikatorów
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw
Laboratorium 11. Regresja SVM.
Laboratorium 11 Regresja SVM. 1. Uruchom narzędzie Oracle Data Miner i połącz się z serwerem bazy danych. 2. Z menu głównego wybierz Activity Build. Na ekranie powitalnym kliknij przycisk Dalej>. 3. Z
W ostatnim wykładzie doszliśmy do tego, że problem znalezienia klasyfikatora optymalnego pod względem marginesów można wyrazić w następujący sposób:
Spis treści 1 Maszyny Wektorów Wspierających 2 1.1 SVM w formaliźmie Lagranga 1.2 Przejście do pstaci dualnej 1.2.1 Wyznaczenie parametrów modelu: 1.2.2 Klasyfikacja: 2 Funkcje jądrowe 2.1 Mapowanie do
Ćwiczenie 12. Metody eksploracji danych
Ćwiczenie 12. Metody eksploracji danych Modelowanie regresji (Regression modeling) 1. Zadanie regresji Modelowanie regresji jest metodą szacowania wartości ciągłej zmiennej celu. Do najczęściej stosowanych
Kompresja pamięci w jądrze Linuksa
Uniwersytet Warszawski piotr.sarna@students.mimuw.edu.pl 7 lutego 2015 Plan prezentacji 1 Wprowadzenie pamięć niedościgła 2 zswap zcache zram zsmalloc vs zbud 3 LZO LZ4 Crypto API pamięć niedościgła Idea
Ćwiczenie 6. Transformacje skali szarości obrazów
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 6. Transformacje skali szarości obrazów 1. Obraz cyfrowy Obraz w postaci cyfrowej
UCZENIE MASZYNOWE III - SVM. mgr inż. Adam Kupryjanow
UCZENIE MASZYNOWE III - SVM mgr inż. Adam Kupryjanow Plan wykładu Wprowadzenie LSVM dane separowalne liniowo SVM dane nieseparowalne liniowo Nieliniowy SVM Kernel trick Przykłady zastosowań Historia 1992
Optymalizacja systemów
Optymalizacja systemów Laboratorium - problem detekcji twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, P. Klukowski Cel zadania Celem zadania jest zapoznanie się z gradientowymi algorytmami optymalizacji
Dariusz Brzeziński Instytut Informatyki, Politechnika Poznańska
Dariusz Brzeziński Instytut Informatyki, Politechnika Poznańska Wstęp Biblioteki Pandas Scikit-learn Plotnine Jupyter Zadanie Eksploracja danych w Pythonie 2 Popularny język programowania Prosta składnia
Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX
UNIWERSYTETU BIBLIOTEKA IEGO UNIWERSYTETU IEGO Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX 1. Make a new connection Open the System Preferences by going to the Apple menu
Testowanie modeli predykcyjnych
Testowanie modeli predykcyjnych Wstęp Podczas budowy modelu, którego celem jest przewidywanie pewnych wartości na podstawie zbioru danych uczących poważnym problemem jest ocena jakości uczenia i zdolności
Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 2 Detekcja twarzy autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się algorytmem gradientu prostego
Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Wprowadzenie do programu RapidMiner Studio 7.6, część 4 Michał Bereta
Wprowadzenie do programu RapidMiner Studio 7.6, część 4 Michał Bereta www.michalbereta.pl W tej części: Zachowanie wytrenowanego modelu w celu późniejszego użytku Filtrowanie danych (brakujące etykiety
Politechnika Warszawska
Politechnika Warszawska Programowa realizacja sieci neuronowych Zbigniew Szymański, Stanisław Jankowski grudzień 03 Instytut Informatyki Nowowiejska 5 / 9, 00-665 Warszawa Programowa realizacja sieci neuronowych
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: THREADS Mariusz Rudnicki 2016 1. Przygotowanie platformy i środowiska IDE. Przed uruchomieniem własnego kodu zwiększ priorytet procesu qconn
Wstęp do obliczeń równoległych na GPU
Spis treści 1 Wstęp do obliczeń równoległych na GPU 1.1 Zadanie 1.2 Profilowanie 1.2.1 Zadanie Wstęp do obliczeń równoległych na GPU W tej części ćwiczeń stworzymy pierwszy program wykorzystujący bibliotekę
Krok po kroku... (czyli jak stworzyć i wydrukować krzyżówkę)
- Program do tworzenia krzyżówek. - Krzyżówki mogą być przygotowywane w formie drukowanej lub elektronicznej. - Program jest bezpłatny, jeśli ćwiczenia przygotowywane za jego pomocą są udostępniane odbiorcą
Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała
Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, 43-305 Bielsko-Biała NIP 937-22-97-52 tel. +48 33 488 89 39 zwcad@zwcad.pl www.zwcad.pl Aplikacja do rysowania wykresów i oznaczania
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
System operacyjny Linux
Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 7 Język awk Wprowadzenie Schemat programu Konstrukcja wzorców Konstrukcja wyrażeń regularnych Struktury kontrolne Predefiniowane
Pobieranie argumentów wiersza polecenia
Pobieranie argumentów wiersza polecenia 2. Argumenty wiersza polecenia Lista argumentów Lista argumentów zawiera cały wiersz poleceń, łącznie z nazwą programu i wszystkimi dostarczonymi argumentami. Przykłady:
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
(kod ten służy wprowadzeniu definicji mediany, nie jest to optymalna ani nawet szczególnie dobra implementacja obliczania mediany w praktyce!
Spis treści 1 TI:WTBD/Kolokwium Poprawkowe 1.1 zadanie 1 1.1.1 1.2 zadanie 2 1.2.1 1.3 zadanie 3 1.3.1 TI:WTBD/Kolokwium Poprawkowe zadanie 1 Medianę sekwencji liczb można zdefiniować za pomocą następującego
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek
Strategie ewolucyjne Gnypowicz Damian Staniszczak Łukasz Woźniak Marek Strategie ewolucyjne, a algorytmy genetyczne Podobieństwa: Oba działają na populacjach rozwiązań Korzystają z zasad selecji i przetwarzania
METODY INŻYNIERII WIEDZY
METODY INŻYNIERII WIEDZY WALIDACJA KRZYŻOWA dla ZAAWANSOWANEGO KLASYFIKATORA KNN ĆWICZENIA Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej
Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML
Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Wyrażenia regularne c:\> dir *.exe $ rm *.tmp Wyrażenia regularne 'alamakota' '(hop!)*' { '',
Język PL/SQL Procedury i funkcje składowane
Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone
Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII
Spis treści Od autora..................................................... Obliczenia inżynierskie i naukowe.................................. X XII Ostrzeżenia...................................................XVII
Struktura bazy danych
Procedury składowane, funkcje i wyzwalacze Struktura bazy danych Tabela Oddziały ID Nazwa Adres 10 POZNAN Kwiatowa 3 20 WARSZAWA al. Jerozolimskie 22 30 KRAKOW Planty 14 40 WROCLAW Nad Odra 16 50 GDANSK
W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby
Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie
Dokumentacja. Kalibracja parametrów modelu Hestona za rozszerzonego filtra Kalmana. Mikołaj Bińkowski Wiktor Gromniak
Dokumentacja Kalibracja parametrów modelu Hestona za pomoca rozszerzonego filtra Kalmana Mikołaj Bińkowski Wiktor Gromniak Spis treści 1 Wstęp 2 2 Struktura katalogów 2 3 Zależności 2 4 Funkcje 3 4.1 heston_calibr_kalman..........................
Spis treści. Wstęp. Regresja
Spis treści 1 Wstęp 2 Regresja 2.1 Regresja liniowa 2.1.1 Przykład: Dopasowanie prostej do punktów (zakładamy jednakową wariancję Y dla każdego X) 2.1.2 Ocena jakości dopasownia 2.1.2.1 Współczynnik 2.1.2.2
Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab
Programowanie: grafika w SciLab Slajd 1 Programowanie: grafika w SciLab Programowanie: grafika w SciLab Slajd 2 Plan zajęć 1. Wprowadzenie 2. Wykresy 2-D 3. Wykresy 3-D 4. Rysowanie figur geometrycznych
Warsztaty dla nauczycieli
WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne
Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL
Obsługa błędów w SQL i transakcje Zacznijmy od najprostszego przykładu: CREATE PROCEDURE podziel1 Obsługa błędów w SQL Powyższa procedura w większości przypadków zadziała prawidłowo, lecz na przykład poniższe
Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze
Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej
Rozpoznawanie obrazów
Rozpoznawanie obrazów Laboratorium Python Zadanie nr 2 κ-nn i Naive Bayes autorzy: M. Zięba, J.M. Tomczak, A. Gonczarek, S. Zaręba, J. Kaczmar Cel zadania Celem zadania jest implementacja klasyfikatorów
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.
Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Generator liczb losowych o rozkładzie Rayleigha. Generator liczb losowych o rozkładzie Rayleigha. 1. Cel ćwiczenia
Bioinformatyka: Wykład 2. Algorytm Smitha Watermana implementacja w języku Python
Bioinformatyka: Wykład 2 Algorytm Smitha Watermana implementacja w języku Python Przyrównanie sekwencji Algorytm Smitha-Watermana dla pary sekwencji P i Q o długościach odpowiednio M i N. Zbuduj macierz
Laboratorium Metod Optymalizacji
Laboratorium Metod Optymalizacji Grupa nr... Sekcja nr... Ćwiczenie nr 4 Temat: Programowanie liniowe (dwufazowa metoda sympleksu). Lp. 1 Nazwisko i imię Leszek Zaczyński Obecność ocena Sprawozdani e ocena
Laboratorium 4. Naiwny klasyfikator Bayesa.
Laboratorium 4 Naiwny klasyfikator Bayesa. 1. Uruchom narzędzie Oracle Data Miner i połącz się z serwerem bazy danych. 2. Z menu głównego wybierz Activity Build. Na ekranie powitalnym kliknij przycisk
Rozpoznawanie obrazów
Rozpoznawanie obrazów Laboratorium Python Zadanie nr 3 Regresja logistyczna autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba, J. Kaczmar Cel zadania Celem zadania jest zaimplementowanie modelu
Przetwarzanie sygnałów
Spis treści Przetwarzanie sygnałów Ćwiczenie 1 Wprowadzenie do programu Octave 1 Operatory 1 1.1 Operatory arytmetyczne...................... 1 1.2 Operatory relacji.......................... 1 1.3 Operatory
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji
Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.
Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python. Pliki z rozwiązaniami projektu (wszystkie polecenia
PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub
PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static
Podstawowe operacje graficzne.
Podstawowe operacje graficzne. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z możliwościami graficznymi środowiska GNU octave, w tym celu: narzędziami graficznymi, sposobami konstruowania wykresów
Komputerowe przetwarzanie obrazu Laboratorium 5
Komputerowe przetwarzanie obrazu Laboratorium 5 Przykład 1 Histogram obrazu a dobór progu binaryzacji. Na podstawie charakterystyki histogramu wybrano dwa różne progi binaryzacji (120 oraz 180). Proszę
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Python. Skąd taka nazwa? Kurs systemu UNIX 1
Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do
Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,
Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe
Programowanie obiektowe
Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy
Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski
Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy
//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];
4.3. Przykłady wykorzystania funkcji bibliotecznych 73 MATLAB % definiowanie funkcji function [dx]=vderpol(t,y) global c; dx=[y(2); c*(1-y(1)^2)*y(2)-y(1)]; SCILAB // definiowanie układu function [f]=vderpol(t,y,c)