Upload
women-in-technology
View
211
Download
0
Embed Size (px)
Citation preview
Od surowych danych do gotowego modelu -uczenie maszynowe w pigułce
Agnieszka Pocha
Uniwersytet Jagielloński
28.04.2015
Plan
Wprowadzenie
Obróbka danychAnalizaWstępne przetwarzanie
Uczymy modele!
Jak zacząć?
Podsumowanie
Czym zajmuje się uczenie maszynowe?
D
wczytywanie danych
I tekstoweI csvI arkusze kalkulacyjneI libsvmI zserializowane obiektyI XMLI JSON
zbalansowanie klas (klasyfikacja)
n_cats = y[y==cat].shape [0]n_birds = y[y==bird]. shape [0]cat_plt = plt.bar([cat], n_cats , color=cat_colour)bird_plt = plt.bar([bird], n_birds , color=bird_colour)plt.legend(handles =[cat_plt , bird_plt],
labels =[’cats’, ’birds ’])plt.show()
metody histogramowe
metody histogramowe
X_b = X[y==bird]X_c = X[y==cat]
random_index = np.random.randint(0, n_features)
plt.figure(figsize =(15, 9))vals_b , bins_b = np.histogram(X_b[:, random_index ])vals_c , bins_c = np.histogram(X_c[:, random_index ])
cats_hist = plt.bar(vals_c , bins_c [:-1], color=cat_colour)
birds_hist = plt.bar(vals_b , bins_b [:-1], color=bird_colour)
skalowanie, centrowanie, wybielanie
klątwa wymiarowości
redukcja wymiarów
I analiza głównych składowych (PCA)
redukcja wymiarów
I manifold learning
macierz korelacji
corr_matrix = np.corrcoef(X)fig , ax = plt.subplots(figsize =(10, 10))corr_plot = ax.imshow(corr_matrix)cbar = fig.colorbar(corr_plot , ticks=[-1, -0.5, -0.25,
0, 0.25, 0.5, 1], orientation=’vertical ’)
Uczmy modele!
from sklearn.neighbors import KNeighborsClassifiermodel = KNeighborsClassifier(n_neighbors =6)model.fit(X, y)print model.score(X, y)
dostaliśmy: 0.666015625
overfitting
overfitting
from sklearn.cross_validation import StratifiedKFoldskf = StratifiedKFold(y, n_folds =2)for train_index , test_index in skf:
X_tr , X_te = X[train_index], X[test_index]y_tr , y_te = y[train_index], y[test_index]model = KNeighborsClassifier(n_neighbors =6)model.fit(X_tr , y_tr)print model.score(X_te , y_te)
dostaliśmy 0.5791015625 i 0.580078125
wybór hiperparametrów
I grid search (przeszukiwanie po siatce)I random search (przeszukiwanie losowe)I procesy gaussowskie (modelowanie funkcji θ → error)
wybór hiperparametrów
wybór hiperparametrów
skf = StratifiedKFold(y, n_folds =2)results = {}for train_index , test_index in skf:
X_tr , X_te = X[train_index], X[test_index]y_tr , y_te = y[train_index], y[test_index]for n_nghs in [2, 3, 9, 15, 30, 50]:
clf = KNeighborsClassifier(n_neighbors=n_nghs)clf.fit(X_tr , y_tr)score = clf.score(X_te , y_te)if n_neighbours not in results.keys():
results[n_neighbours] = []results[n_nghs ]. append(score)
for key in results.keys():results[key] = np.mean(results[key])
param = sorted(results.keys())score = [results[key] for key in param]plt.bar(param , score)plt.show()
With all the knowledge combined
Pierwsze podejście
KNN n neighbors=6, surowe dane, 2 foldy, 1 batch, 0.58
3 foldy, 5 batchów, surowe dane
KNN, sąsiadów=3, 0.671
3 foldy, 5 batchów, dane po redukcji wymiarów do 500 (PCA)
SVM, c =1000, jądro rbf, gamma = 0.0001, 0.752
Lasy losowe, liczba drzew = 100, maksymalna liczba cech = 22,0.733
Co warto umieć na wstępie?
I algebra liniowaI rachunek prawdopodobieństwa i statystykaI programowanie
I pythonI numpyI scipyI scikit-learnI pandas
I inne
Jak zacząć?
I kursy on-lineI coursera
I Machine Learning z Andrew NgI edXI Khan Academy (podstawowa matematyka)I Stanford
I książkiI C.M. Bishop Pattern Recognition and Machine LearningI T. Hastie, R. Tibshirani, J. Friedman The Elements ofStatistical Learning. Data Mining, Inference, and Prediction
I K.P. Murphy Machine Learning. A Probabilistic PerspectiveI internet
I http://kaggle.comI http://stats.stackexchange.com/I http://fastml.com
Podsumowanie
I czym zajmuje się uczenie maszynoweI zbalansowanie klas, miaryI metody histogramowe badania danychI skalowanie, centrowanie, wybielanie danychI klątwa wymiarowości, redukcja wymiarówI overfittingI wybór hiperparametrów
Obrazki
I dokumentacja scikit-learnaI draw.io
I https://kaggle2.blob.core.windows.net/competitions/kaggle/3649/media/cifar-10.png
I manifold learning: https://upload.wikimedia.org/wikipedia/commons/f/fd/Lle_hlle_swissroll.png
I klątwa: http://america.pink/images/1/1/2/7/0/9/6/en/1-curse-dimensionality.jpg
Pytania?
Dziękuję za uwagę.