{"id":423,"date":"2016-04-17T23:58:21","date_gmt":"2016-04-17T21:58:21","guid":{"rendered":"http:\/\/tomaszkacmajor.pl\/?p=423"},"modified":"2016-04-30T18:09:26","modified_gmt":"2016-04-30T16:09:26","slug":"support-vector-machine","status":"publish","type":"post","link":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/","title":{"rendered":"Support Vector Machine"},"content":{"rendered":"<p>Ze wzgl\u0119du na to, \u017ce przy operacji <a href=\"http:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/eliminacja-tla-obrazu\/\" target=\"_blank\">oddzielania t\u0142a<\/a> od obrazu w projekcie <a href=\"http:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/19\/flover-project-4\/\" target=\"_blank\">Flover<\/a> u\u017cywam algorytmu Support Vector Machine (SVM), postaram si\u0119 go dzisiaj przyst\u0119pnie opisa\u0107. To bardzo popularna metoda znana ze swojej skuteczno\u015bci w dziedzinie Machine Learning. Ma za zadanie jak najlepiej <strong>odseparowa\u0107<\/strong> od siebie elementy r\u00f3\u017cnego typu ze zbioru ucz\u0105cego, czyli umie\u015bci\u0107 je w <strong>optymalnie<\/strong> oddzielonych grupach.<br \/>\n<!--more--><\/p>\n<h3> Jak to wyt\u0142umaczy\u0107 pi\u0119ciolatkowi?<\/h3>\n<p>O modelu SVM, kt\u00f3ry w t\u0142umaczeniu troch\u0119 dziwnie brzmi: Maszyna Wektor\u00f3w No\u015bnych, s\u0105 nawet ca\u0142e ksi\u0105\u017cki (linki na dole), lecz niestety zazwyczaj w takich formalnych opisach znajduje si\u0119 bardzo du\u017co matematyki. Zastanawia\u0142em si\u0119 jak ten temat w miar\u0119 \u0142atwo przekaza\u0107. Bardzo podoba mi si\u0119 <a href=\"https:\/\/www.reddit.com\/r\/MachineLearning\/comments\/15zrpp\/please_explain_support_vector_machines_svm_like_i\" target=\"_blank\">pytanie<\/a> zadane na <a href=\"https:\/\/www.reddit.com\/r\/MachineLearning\/\" target=\"_blank\">Reddicie<\/a> w dziale Machine Learning: Wyja\u015bnijcie mi prosz\u0119 Support Vector Machine, \u017cebym zrozumia\u0142 gdybym by\u0142 pi\u0119colatkiem. Proste przyk\u0142ady s\u0105 najlepsze, zatem przytocz\u0119 nast\u0119puj\u0105c\u0105 odpowied\u017a:<\/p>\n<p>Wyobra\u017amy sobie, \u017ce na stole s\u0105 poustawiane pi\u0142ki o dw\u00f3ch kolorach. Czerwone po jednej stronie sto\u0142u a niebieskie po drugiej. Naszym zadaniem jest takie po\u0142o\u017cenie kijka na stole, \u017ceby oddziela\u0142 te dwie grupy. Trzeba to tak zrobi\u0107, aby odleg\u0142o\u015b\u0107 mi\u0119dzy kijkiem a ka\u017cd\u0105 pi\u0142k\u0105 by\u0142a mo\u017cliwie najwi\u0119ksza. A wi\u0119c to proste! Jednak po chwili kto\u015b dok\u0142ada niebiesk\u0105 kulk\u0119 w miejsce czerwonych. No to teraz nie znajdziemy na \u015bwiecie takiego kijka, kt\u00f3ry by nam rozdzieli\u0142 te dwie grupy. Musia\u0142by by\u0107 niesamowicie wygi\u0119ty. Ale na szcz\u0119\u015bcie mo\u017cemy zrobi\u0107 pewn\u0105 sztuczk\u0119: wywr\u00f3cimy st\u00f3\u0142, a gdy wszystkie pi\u0142ki b\u0119d\u0105 w powietrzu przetniemy je kartk\u0105 papieru ruchem sprawnego wojownika Ninja. W ten spos\u00f3b rozdzielimy pi\u0142ki na dwie grupy. Powa\u017cni doro\u015bli ludzie na pi\u0142ki m\u00f3wi\u0105 dane, na kijek i kartk\u0119 &#8211; klasyfikator albo hiperp\u0142aszczyzna, na u\u0142o\u017cenie kijka w najwi\u0119kszej odleg\u0142o\u015bci od pi\u0142ek &#8211; optymalizacja, a na wywr\u00f3cenie sto\u0142u &#8211; transformacja za pomoc\u0105 funkcji j\u0105drowych.<\/p>\n<h3>Przenoszenie danych do wy\u017cszych wymiar\u00f3w<\/h3>\n<p>Przedstawiony problem jest bardzo og\u00f3lny i sama klasyfikacja mo\u017ce by\u0107 wykonywana na wiele r\u00f3\u017cnych sposob\u00f3w. Support Vector Machine cechuje si\u0119, tym \u017ce pr\u00f3buje oddzieli\u0107 dane <strong>funkcj\u0105 liniow\u0105<\/strong>, a je\u015bli to nie wychodzi przenosi dane do wy\u017cszych wymiar\u00f3w (wywraca st\u00f3\u0142) i wtedy jeszcze raz pr\u00f3buje znale\u017a\u0107 tak\u0105 funkcj\u0119. Poni\u017cej \u015bwietna wizualizacja tego procesu.<\/p>\n<div style=\"max-width:420px\" class=\"aligncenter\">\n<iframe loading=\"lazy\" width=\"640\" height=\"390\" src=\"https:\/\/www.youtube.com\/embed\/3liCbRZPrZA\" frameborder=\"0\" allowfullscreen><\/iframe>\n<\/div>\n<p style=\"padding: 7px;\">\n<h3>Optymalne oddzielenie grup<\/h3>\n<p>Wracaj\u0105c do naszego dwuwymiarowego problemu, nale\u017cy podkre\u015bli\u0107, \u017ce linia, kt\u00f3ra oddziela dane musi znajdowa\u0107 si\u0119 w optymalnym miejscu. Odleg\u0142o\u015bci pomi\u0119dzy lini\u0105 a najbli\u017cszymi punkami ze zbior\u00f3w powinny by\u0107 jak najmniejsze. Te odleg\u0142o\u015bci to w\u0142a\u015bnie <strong>Support Vectors<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/optimal-hyperplane-300x296.png\" alt=\"Support Vector Machine\" width=\"250\" height=\"240\" class=\"aligncenter size-medium wp-image-456\" \/><\/p>\n<p>Oczywi\u015bcie wszystkie te zasady mo\u017cna prze\u0142o\u017cy\u0107 na wy\u017csze wymiary. Przecie\u017c zazwyczaj spotykamy si\u0119 z wektorami cech jakiego\u015b obiektu (np. superpiksela), kt\u00f3re s\u0105 wielowymiarowe. Gdy mamy do czynienia z danymi, kt\u00f3re nie mo\u017cna podzieli\u0107 u\u017cywaj\u0105c funkcji liniowej w danej przestrzeni mamy dwie opcje. O wyborze, kt\u00f3r\u0105 zastosowa\u0107 decyduj\u0105 odpowiednie parametry algorytmu. Albo zignorujemy niekt\u00f3re punkty uznaj\u0105c je za nieistotnych outsider\u00f3w w grupie albo przenosimy dane do jeszcze wy\u017cszych wymiar\u00f3w na co m\u00f3wi si\u0119 nawet <strong>kernel trick<\/strong> \ud83d\ude42 Faktycznie, aby tego dokona\u0107, dane musz\u0105 by\u0107 odpowiednio przetransformowane przy u\u017cyciu tzw. funkcji j\u0105drowych (<strong>kernel functions<\/strong>). Niekt\u00f3re z nich to np. funkcja wielowymiarowa, funkcja Gaussa, hiperboliczna&#8230; Ale o tym ju\u017c mo\u017ce kiedy indziej.<\/p>\n<h3> Implementacja <\/h3>\n<p>Poni\u017cej przedstawiam kod uruchamiaj\u0105cy nauk\u0119 klasyfikatora SVM wykorzystuj\u0105cy bibliotek\u0119 Accord.MachineLearning.<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/    wcze\u015bniej zainicjalizowane i zape\u0142nione tablice wej\u015bcia i wyj\u015bcia klasyfikatora\r\n\/\/    double&#x5B;]&#x5B;] features;\r\n\/\/    int&#x5B;] outputs;\r\n\r\n\/\/ Wyb\u00f3r funkcji j\u0105drowej wykorzystywanej w SVM\r\nIKernel kernel = new Gaussian(sigmaParam);\r\n\r\n\/\/ Stworzenie klasyfikatora SVM dla danych wej\u015bciowych\r\nKernelSupportVectorMachine machine = new KernelSupportVectorMachine(kernel, features&#x5B;0].Length);\r\n\r\n\/\/ Inicjalizacja algorytmu nauki \r\nSequentialMinimalOptimization smo = new SequentialMinimalOptimization(machine, features, outputs);\r\n\r\n\/\/ Ustawienie parametr\u00f3w algorytmu - Complexity oznacza dok\u0142adno\u015b\u0107 algorytmu\r\nsmo.Complexity = 85;\r\n\r\n\/\/ Uruchomienie algorytmu nauki \r\ndouble error = smo.Run();\r\n<\/pre>\n<p>Uzyskanie odpowiedzi dla nowego wektora double[] FeatureVec b\u0119dzie wygl\u0105da\u0142o nast\u0119puj\u0105co:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nint answer = machine.Compute(FeatureVec)\r\n<\/pre>\n<p style=\"padding: 7px;\">\n<h3>Zalety SVM<\/h3>\n<ul>\n<li>Znajduje maksymalne odleg\u0142o\u015bci (marginesy) pomi\u0119dzy grupami punkt\u00f3w<\/li>\n<li>Efektywne obliczeniowo &#8211; z\u0142o\u017cono\u015b\u0107 ro\u015bnie tylko liniowo wraz z liczb\u0105 wymiar\u00f3w<\/li>\n<li>Rozwi\u0105zuje problemy liniowe jak i nieliniowe<\/li>\n<\/ul>\n<p style=\"padding: 7px;\">\n<p>\u0179r\u00f3d\u0142a:<br \/>\nJeden z bardziej przyst\u0119pnych wyk\u0142ad\u00f3w na YT (od 2:27) &#8211; <a href=\"https:\/\/www.youtube.com\/watch?v=YsiWisFFruY\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=YsiWisFFruY<\/a><br \/>\nWyk\u0142ady o SVM: <a href=\"http:\/\/videolectures.net\/site\/search\/?q=support+vector+machine\" target=\"_blank\">http:\/\/videolectures.net\/site\/search\/?q=support+vector+machine<\/a><br \/>\nKsi\u0105\u017cki:<br \/>\n&#8211; <a href=\"http:\/\/www.amazon.com\/gp\/search?index=books&#038;linkCode=qs&#038;keywords=9780131471399\" target=\"_blank\">Neural Networks and Learning Machines<\/a> &#8211; polecam &#8211; opisuje wiele metod Machine Learning, SVM r\u00f3wnie\u017c<br \/>\n&#8211; <a href=\"http:\/\/www.amazon.com\/Introduction-Support-Machines-Kernel-based-Learning\/dp\/0521780195\" target=\"_blank\">An Introduction to Support Vector Machines&#8230;<\/a><br \/>\n&#8211; <a href=\"http:\/\/www.amazon.com\/Learning-Kernels-Regularization-Optimization-Computation\/dp\/0262194759\/ref=pd_sim_14_1?ie=UTF8&#038;dpID=41ktHaa8oKL&#038;dpSrc=sims&#038;preST=_AC_UL160_SR128%2C160_&#038;refRID=1DN3V1DKKFDS6K2ENYH9\" target=\"_blank\">Learning with Kernels: Support Vector Machines&#8230;<\/a><br \/>\nZdj\u0119cia: <a href=\"http:\/\/docs.opencv.org\/2.4\/doc\/tutorials\/ml\/introduction_to_svm\/introduction_to_svm.html\" target=\"_blank\">http:\/\/docs.opencv.org\/2.4\/doc\/tutorials\/ml\/introduction_to_svm\/introduction_to_svm.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ze wzgl\u0119du na to, \u017ce przy operacji oddzielania t\u0142a od obrazu w projekcie Flover u\u017cywam algorytmu Support Vector Machine (SVM), postaram si\u0119 go dzisiaj przyst\u0119pnie opisa\u0107. To bardzo popularna metoda znana ze swojej skuteczno\u015bci w dziedzinie Machine Learning. Ma za zadanie jak najlepiej odseparowa\u0107 od siebie elementy r\u00f3\u017cnego typu ze zbioru ucz\u0105cego, czyli umie\u015bci\u0107 je [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":451,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[12,11,8,10,14,15],"class_list":["post-423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-flover-project","tag-daj-sie-poznac","tag-flover","tag-image-processing","tag-image-segmentation","tag-machine-learning","tag-svm"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Support Vector Machine - tomaszkacmajor.pl<\/title>\n<meta name=\"description\" content=\"Support Vector Machine ma za zadanie jak najlepiej odseparowa\u0107 od siebie elementy r\u00f3\u017cnego typu, czyli umie\u015bci\u0107 je w optymalnie oddzielonych grupach.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Support Vector Machine - tomaszkacmajor.pl\" \/>\n<meta property=\"og:description\" content=\"Support Vector Machine ma za zadanie jak najlepiej odseparowa\u0107 od siebie elementy r\u00f3\u017cnego typu, czyli umie\u015bci\u0107 je w optymalnie oddzielonych grupach.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/\" \/>\n<meta property=\"og:site_name\" content=\"tomaszkacmajor.pl\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ProggBlogg\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-17T21:58:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-04-30T16:09:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1366\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"tomasz.kacmajor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tkacmajor\" \/>\n<meta name=\"twitter:site\" content=\"@tkacmajor\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tomasz.kacmajor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/\",\"url\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/\",\"name\":\"Support Vector Machine - tomaszkacmajor.pl\",\"isPartOf\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg\",\"datePublished\":\"2016-04-17T21:58:21+00:00\",\"dateModified\":\"2016-04-30T16:09:26+00:00\",\"author\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c\"},\"description\":\"Support Vector Machine ma za zadanie jak najlepiej odseparowa\u0107 od siebie elementy r\u00f3\u017cnego typu, czyli umie\u015bci\u0107 je w optymalnie oddzielonych grupach.\",\"breadcrumb\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#primaryimage\",\"url\":\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg\",\"contentUrl\":\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg\",\"width\":1366,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/tomaszkacmajor.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Support Vector Machine\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/#website\",\"url\":\"https:\/\/tomaszkacmajor.pl\/\",\"name\":\"tomaszkacmajor.pl\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/tomaszkacmajor.pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c\",\"name\":\"tomasz.kacmajor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g\",\"caption\":\"tomasz.kacmajor\"},\"url\":\"https:\/\/tomaszkacmajor.pl\/index.php\/author\/tomasz-kacmajor\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Support Vector Machine - tomaszkacmajor.pl","description":"Support Vector Machine ma za zadanie jak najlepiej odseparowa\u0107 od siebie elementy r\u00f3\u017cnego typu, czyli umie\u015bci\u0107 je w optymalnie oddzielonych grupach.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/","og_locale":"en_US","og_type":"article","og_title":"Support Vector Machine - tomaszkacmajor.pl","og_description":"Support Vector Machine ma za zadanie jak najlepiej odseparowa\u0107 od siebie elementy r\u00f3\u017cnego typu, czyli umie\u015bci\u0107 je w optymalnie oddzielonych grupach.","og_url":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/","og_site_name":"tomaszkacmajor.pl","article_publisher":"https:\/\/www.facebook.com\/ProggBlogg\/","article_published_time":"2016-04-17T21:58:21+00:00","article_modified_time":"2016-04-30T16:09:26+00:00","og_image":[{"width":1366,"height":768,"url":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg","type":"image\/jpeg"}],"author":"tomasz.kacmajor","twitter_card":"summary_large_image","twitter_creator":"@tkacmajor","twitter_site":"@tkacmajor","twitter_misc":{"Written by":"tomasz.kacmajor","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/","url":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/","name":"Support Vector Machine - tomaszkacmajor.pl","isPartOf":{"@id":"https:\/\/tomaszkacmajor.pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#primaryimage"},"image":{"@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#primaryimage"},"thumbnailUrl":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg","datePublished":"2016-04-17T21:58:21+00:00","dateModified":"2016-04-30T16:09:26+00:00","author":{"@id":"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c"},"description":"Support Vector Machine ma za zadanie jak najlepiej odseparowa\u0107 od siebie elementy r\u00f3\u017cnego typu, czyli umie\u015bci\u0107 je w optymalnie oddzielonych grupach.","breadcrumb":{"@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#primaryimage","url":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg","contentUrl":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/04\/red_and_blue_balls-996227.jpg","width":1366,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/04\/17\/support-vector-machine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/tomaszkacmajor.pl\/"},{"@type":"ListItem","position":2,"name":"Support Vector Machine"}]},{"@type":"WebSite","@id":"https:\/\/tomaszkacmajor.pl\/#website","url":"https:\/\/tomaszkacmajor.pl\/","name":"tomaszkacmajor.pl","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tomaszkacmajor.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c","name":"tomasz.kacmajor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g","caption":"tomasz.kacmajor"},"url":"https:\/\/tomaszkacmajor.pl\/index.php\/author\/tomasz-kacmajor\/"}]}},"_links":{"self":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts\/423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/comments?post=423"}],"version-history":[{"count":20,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts\/423\/revisions"}],"predecessor-version":[{"id":470,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts\/423\/revisions\/470"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/media\/451"}],"wp:attachment":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/media?parent=423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/categories?post=423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/tags?post=423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}