<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe%2FSVM2</id>
	<title>Uczenie maszynowe i sztuczne sieci neuronowe/SVM2 - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe%2FSVM2"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/SVM2&amp;action=history"/>
	<updated>2026-04-23T16:06:30Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/SVM2&amp;diff=7655&amp;oldid=prev</id>
		<title>Jarekz o 17:16, 21 mar 2018</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/SVM2&amp;diff=7655&amp;oldid=prev"/>
		<updated>2018-03-21T17:16:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Wersja z 17:16, 21 mar 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l24&quot; &gt;Linia 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 24:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import numpy as np&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import numpy as np&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from sklearn.metrics import classification_report, confusion_matrix, f1_score&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from sklearn.metrics import classification_report, confusion_matrix, f1_score&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;from sklearn import tree&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from sklearn.cross_validation import train_test_split&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from sklearn.cross_validation import train_test_split&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from scipy.io import loadmat&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from scipy.io import loadmat&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/SVM2&amp;diff=7654&amp;oldid=prev</id>
		<title>Jarekz o 17:14, 21 mar 2018</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/SVM2&amp;diff=7654&amp;oldid=prev"/>
		<updated>2018-03-21T17:14:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Wersja z 17:14, 21 mar 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot; &gt;Linia 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Opisane poniżej podejście można wykorzystać dla dowolnych klasyfikatorów binarnych, które chcemy zastosować w przypadku wieloklasowym. Załóżmy, że mamy problem z podziałem na ''N_klas''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Opisane poniżej podejście można wykorzystać dla dowolnych klasyfikatorów binarnych, które chcemy zastosować w przypadku wieloklasowym. Załóżmy, że mamy problem z podziałem na ''N_klas''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Generalnie w takiej sytuacji możliwe są dwa podejścia:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Generalnie w takiej sytuacji możliwe są dwa podejścia:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;;one-versus-all ('ova'): tworzonych jest ''N_klas'' klasyfikatorów, każdy trenowany jest do rozróżniania danej klasy od wszystkich pozostałych. Wygrywa ten, który daje najwyższy poziom ufności co do swojej decyzji.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;one-versus-one ('ovo'):  tworzonych jest ''N_klas'' * (''N_klas'' -1)/2 klasyfikatorów i każdy trenowany jest dla rozróżniania innej pary klas. Każdy z klasyfikatorów &amp;quot;głosuje&amp;quot; za jedną z dwóch klas. Wygrywa klasa, która uzyska najwięcej głosów.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;one-versus-one ('ovo'):  tworzonych jest ''N_klas'' * (''N_klas'' -1)/2 klasyfikatorów i każdy trenowany jest dla rozróżniania innej pary klas. Każdy z klasyfikatorów &amp;quot;głosuje&amp;quot; za jedną z dwóch klas. Wygrywa klasa, która uzyska najwięcej głosów.  Czasem (np. w scikit-learn) dodawana jest jeszcze znormalizowana suma poziomów ufności - zmniejsza to szansę na powstawanie sytuacji, kiedy więcej niż jedna klasa ma taki sam wynik głosowania.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;;one-versus-rest : tworzonych jest ''N_klas'' klasyfikatorów, każdy trenowany jest do rozróżniania danej klasy od wszystkich pozostałych. Wygrywa ten, który daje najwyższy poziom ufności co do swojej decyzji.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Czasem (np. w scikit-learn) dodawana jest jeszcze znormalizowana suma poziomów ufności - zmniejsza to szansę na powstawanie sytuacji, kiedy więcej niż jedna klasa ma taki sam wynik głosowania.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Probem, którym się zajmiemy to rozpoznawanie ręcznie pisanych cyfr. Pierwszą rzeczą z jaką musimy sobie poradzić to reprezentacja cyfr tak aby dało się z nich zbudować ciąg uczący.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Probem, którym się zajmiemy to rozpoznawanie ręcznie pisanych cyfr. Pierwszą rzeczą z jaką musimy sobie poradzić to reprezentacja cyfr tak aby dało się z nich zbudować ciąg uczący.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/SVM2&amp;diff=5031&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw/SVM2  W tym ćwiczeniu zapoznamy się z klasyfikację za pomocą SVM, w przypadku gdy trzeba wybrać spośród więce...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/SVM2&amp;diff=5031&amp;oldid=prev"/>
		<updated>2016-03-29T15:17:53Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;&lt;a href=&quot;/edu/index.php/Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw&quot; title=&quot;Uczenie maszynowe i sztuczne sieci neuronowe cw&quot;&gt;Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw&lt;/a&gt;/SVM2  W tym ćwiczeniu zapoznamy się z klasyfikację za pomocą SVM, w przypadku gdy trzeba wybrać spośród więce...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw]]/SVM2&lt;br /&gt;
&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z klasyfikację za pomocą SVM, w przypadku gdy trzeba wybrać spośród więcej niż 2 klas.&lt;br /&gt;
Opisane poniżej podejście można wykorzystać dla dowolnych klasyfikatorów binarnych, które chcemy zastosować w przypadku wieloklasowym. Załóżmy, że mamy problem z podziałem na ''N_klas''.&lt;br /&gt;
Generalnie w takiej sytuacji możliwe są dwa podejścia:&lt;br /&gt;
;one-versus-all ('ova'): tworzonych jest ''N_klas'' klasyfikatorów, każdy trenowany jest do rozróżniania danej klasy od wszystkich pozostałych. Wygrywa ten, który daje najwyższy poziom ufności co do swojej decyzji.&lt;br /&gt;
;one-versus-one ('ovo'):  tworzonych jest ''N_klas'' * (''N_klas'' -1)/2 klasyfikatorów i każdy trenowany jest dla rozróżniania innej pary klas. Każdy z klasyfikatorów &amp;quot;głosuje&amp;quot; za jedną z dwóch klas. Wygrywa klasa, która uzyska najwięcej głosów.  Czasem (np. w scikit-learn) dodawana jest jeszcze znormalizowana suma poziomów ufności - zmniejsza to szansę na powstawanie sytuacji, kiedy więcej niż jedna klasa ma taki sam wynik głosowania.&lt;br /&gt;
&lt;br /&gt;
Probem, którym się zajmiemy to rozpoznawanie ręcznie pisanych cyfr. Pierwszą rzeczą z jaką musimy sobie poradzić to reprezentacja cyfr tak aby dało się z nich zbudować ciąg uczący.&lt;br /&gt;
&lt;br /&gt;
W surowej postaci dostalibyśmy obrazek, tzn. macierz pikseli &amp;lt;math&amp;gt; n \times m&amp;lt;/math&amp;gt;. W naszym przypadku pierwotne obrazki były skanowane i rozdzielane na poszczególne cyfry przez otaczanie każdej cyfry pudełkiem centrowanym na środku masy piksli, a nastepnie znormalizowane do rozmiarów &amp;lt;math&amp;gt;20 \times 20 &amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dane z których będziemy korzystać stanowią obrazek przetworzony do formatu jednowymiarowego przez ułżenie kolejnych wierszy. Dane te pochodzą z bazy danych ręcznie pisanych cyfr MNIST (http://yann.lecun.com/exdb/mnist/).&lt;br /&gt;
&lt;br /&gt;
W pliku: [http://www.fuw.edu.pl/~jarekz/SIECI/cyfry.mat cyfry.mat] jest dostępna wersja matlabowa tych danych. Proszę zapisać wskazywany plik w katalogu roboczym.&lt;br /&gt;
Poniższy kod umożliwia zapoznanie się z tym zbiorem danych.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
from sklearn.metrics import classification_report, confusion_matrix, f1_score&lt;br /&gt;
from sklearn import tree&lt;br /&gt;
from sklearn.cross_validation import train_test_split&lt;br /&gt;
from scipy.io import loadmat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
# podglądanie obrazków cyfr&lt;br /&gt;
# funkcja pomocnicza &lt;br /&gt;
#&lt;br /&gt;
def plot_gallery(images, titles, h, w, n_row=3, n_col=4):&lt;br /&gt;
    plt.figure(figsize=(1.8 * n_col, 2.4 * n_row))&lt;br /&gt;
    plt.subplots_adjust(bottom=0, left=.01, right=.99, top=.90, hspace=.05)&lt;br /&gt;
    for i in range(n_row * n_col):&lt;br /&gt;
        plt.subplot(n_row, n_col, i + 1)&lt;br /&gt;
        plt.imshow(images[i].reshape((h, w)).T, cmap=plt.cm.gray)&lt;br /&gt;
        plt.title(titles[i], size=12)&lt;br /&gt;
        plt.xticks(())&lt;br /&gt;
        plt.yticks(())&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
# wczytywanie danych&lt;br /&gt;
dane = loadmat('cyfry.mat')&lt;br /&gt;
#przepisanie danych do osobnych tablic:&lt;br /&gt;
X = dane['X']&lt;br /&gt;
y = dane['y']&lt;br /&gt;
for i in range(X.shape[0]):&lt;br /&gt;
    X[i,:] = X[i,:]/np.std(X[i,:])&lt;br /&gt;
y[np.where(y==10)]=0 # przekodoeanie cyfry 0 tak, żeby w wektorze y też odpowiadąło jej 0 (w oryginalnym zbiorze danych było 10)&lt;br /&gt;
&lt;br /&gt;
# wysokość i szerokość obrazka z cyfrą &lt;br /&gt;
h = 20&lt;br /&gt;
w = 20&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
# Wypisz dane o zbiorze cyfr &lt;br /&gt;
print(&amp;quot;dane zawierają %d cyfr po %d pixli&amp;quot; % (X.shape[0], X.shape[1]))&lt;br /&gt;
&lt;br /&gt;
# Pokaż kilka przykładowych cyfr:&lt;br /&gt;
plot_gallery(X[0:5000:200,:], y[0:5000:200], h, w, n_row=5, n_col=5)&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dalszą część rozwiązania proszę zaimplementować w oparciu o dokumentację: &lt;br /&gt;
http://scikit-learn.org/stable/modules/svm.html&lt;br /&gt;
&lt;br /&gt;
Należy wykonać następujące kroki:&lt;br /&gt;
* podzielić zbiór na dane testowe i treningowe w proporcji 5:1, można użyć:  http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.train_test_split.html, lub napisać własny kod do dzielenia&lt;br /&gt;
* stworzyć instancję klasyfikatora SVC, można tu wybrać różne funkcje jądra i parametr regularyzacji&lt;br /&gt;
* nauczyć klasyfikator na danych treningowych&lt;br /&gt;
* zbadań macierz pomyłek (confusion matrix) i raport klasyfikacji dla różnych funkcji jądrowych i różnych parametrów regularyzacji&lt;br /&gt;
&lt;br /&gt;
[[Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw]]/SVM2&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>