{"id":26012,"date":"2021-09-21T19:29:04","date_gmt":"2021-09-21T17:29:04","guid":{"rendered":"https:\/\/ai4dummies.pl\/?page_id=26012"},"modified":"2021-10-21T12:43:10","modified_gmt":"2021-10-21T10:43:10","slug":"teoria-z-excel","status":"publish","type":"page","link":"https:\/\/ai4dummies.pl\/?page_id=26012","title":{"rendered":"Teoria z Excel"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<ul class=\"wp-block-list\" id=\"architektura\"><li><a href=\"#celbloga\" data-type=\"internal\" data-id=\"#celbloga\">Wst\u0119p<\/a><\/li><li><a href=\"#podstawoweinformacje\" data-type=\"internal\" data-id=\"#podstawoweinformacje\">Dane jak je rozumiemy<\/a><\/li><li><a href=\"#datamining\" data-type=\"internal\" data-id=\"#datamining\">Kopanie danych<\/a><\/li><li><a href=\"#jakwidzimy\" data-type=\"internal\" data-id=\"#jakwidzimy\">Jak widzimy dane<\/a><\/li><li><a href=\"#machinelearning\" data-type=\"internal\" data-id=\"#machinelearning\">Uczenie maszynowe ML<\/a><\/li><li><a href=\"#biblioteki\" data-type=\"internal\" data-id=\"#biblioteki\">Biblioteki<\/a><\/li><li><a href=\"#wsteppodstawowe\" data-type=\"internal\" data-id=\"#wsteppodstawowe\">ML Podstawy<\/a><\/li><li><a href=\"#architekt\" data-type=\"internal\" data-id=\"#architekt\">Architektura<\/a><\/li><li><a href=\"#klasyfikacja\" data-type=\"internal\" data-id=\"#klasyfikacja\">Klasyfikacja<\/a><\/li><li><a href=\"#klastrowanie\" data-type=\"internal\" data-id=\"#klastrowanie\">Klastrowanie<\/a><\/li><li><a href=\"#dyskryminacja\" data-type=\"internal\" data-id=\"#dyskryminacja\">Dyskryminacja &#8211; LDA<\/a><\/li><li><a href=\"#siecineuronowe\" data-type=\"internal\" data-id=\"#siecineuronowe\">Sieci neuronowe<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"1280\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/network-technology-digitization-6605645-1.png\" alt=\"\" class=\"wp-image-26074\"\/><\/figure>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"celbloga\">Cel bloga<\/h1>\n\n\n\n<p>Celem tego kursu jest <strong>wprowadzenie do praktyki eksploracji danych i uczenia maszynowego<\/strong>. Zawarte materia\u0142y nale\u017cy traktowa\u0107 jako pierwszy krok do tej tematyki z zastosowaniem w praktyce prostych powszechnych narz\u0119dzi jak Excel, a dla bardziej zainteresowanych przedstawiona b\u0119dzie mo\u017cliwo\u015b\u0107 zastosowania nabytej wiedzy w Java z wykorzystaniem algorytm\u00f3w r\u00f3\u017cnych bibliotek ze szczeg\u00f3lnym uwzgl\u0119dnieniem biblioteki WEKA. B\u0119dzie te\u017c troch\u0119 matematyki, ale w zakresie jedynie koniecznym do zrozumienia danej metody rozwi\u0105zuj\u0105cej konkretny problem.<\/p>\n\n\n\n<p>Eksploracja danych jest po\u0142\u0105czeniem stosowanych statystyk, logiki, sztucznej inteligencji, uczenia maszynowego i system\u00f3w zarz\u0105dzania danymi. Nie jest wymagane du\u017ce do\u015bwiadczenie w tych dziedzinach, aby korzysta\u0107 z materia\u0142\u00f3w zawartych w tym blogu. Wi\u0119kszo\u015b\u0107 oferowanych \u017ar\u00f3de\u0142 i kurs\u00f3w do nauki Data Mining lub Machine Learning proponuje wykorzystanie takich program\u00f3w jak RapidMiner, a dla Machine Learning programowanie w j\u0119zyku Pyton. Na tym blogu nie idziemy pod pr\u0105d, ale algorytm zrozumiemy wtedy, gdy zainicjujemy go krok po kroku, wi\u0119c w miar\u0119 mo\u017cliwo\u015bci b\u0119dziemy korzysta\u0107 z Excel lub wizualizacji WEKA. Je\u015bli chodzi o Machine Learning to bazujemy na Java, g\u0142\u00f3wny pow\u00f3d, to mo\u017cliwo\u015b\u0107 wykorzystania dost\u0119pnych zestaw\u00f3w algorytm\u00f3w WEKA jako mo\u017cliwo\u015b\u0107 stosowania w aplikacjach Javy i SPRING\u2019a.<\/p>\n\n\n\n<p>Co b\u0119dzie potrzebne:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Zainstalowany pakiet MSOffice z arkuszem kalkulacyjnym Excel, niestety p\u0142atny, ale mo\u017cna skorzysta\u0107 ze starych wersji<\/li><li>Zainstalowana Java 1.8 lub wy\u017csza plus edytor np. darmowa wersja IntellJ IDEA Educational, reszt\u0119 potrzebnych bibliotek do\u0142\u0105czymy korzystaj\u0105c z Maven<\/li><li>Zainstalowany pakiet algorytm\u00f3w WEKA Waikato University Hamilton, New Zealand, pakiet jest darmowy. Do pr\u00f3b kontrolnych poza JAVA.<\/li><\/ul>\n\n\n\n<p>Ponadto mo\u017cemy praktycznie przyj\u0105\u0107 za pewnik dwa dogmaty:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Wszystko co sam wymy\u015blisz pewnie ju\u017c tu jest <a href=\"https:\/\/stackoverflow.com\/\">https:\/\/stackoverflow.com\/<\/a><\/li><li>Je\u015bli jest biblioteka konkretnych algorytm\u00f3w ML\/AI napisana w innym j\u0119zyku to jest tak\u017ce jej odpowiednik dla Java. Algorytmy uczenia maszynowego s\u0105 cz\u0119sto najpierw tworzone w laboratoriach uniwersyteckich, w wielu j\u0119zykach, takich jak skrypty Shell, Python, R, MATLAB, Scala lub C ++, aby utworzy\u0107 now\u0105 koncepcj\u0119 i teoretycznie przeanalizowa\u0107 jej w\u0142a\u015bciwo\u015bci. Java jest to de facto j\u0119zyk korporacyjny, co mo\u017cna przypisa\u0107 statycznemu typowaniu, solidnej obs\u0142udze IDE, dobrze zdefiniowanej strukturze wzorc\u00f3w,i metod testowania, a tak\u017ce posiada przyzwoity model obs\u0142ugi w\u0105tk\u00f3w oraz wsp\u00f3\u0142bie\u017cne biblioteki struktur danych o wysokiej wydajno\u015bci. Konkretny algorytm mo\u017ce przej\u015b\u0107 d\u0142ug\u0105 drog\u0119 do ko\u0144cowej refaktoryzacji, ale mo\u017cemy przyj\u0105\u0107 za pewnik, \u017ce pr\u0119dzej czy p\u00f3\u017aniej pojawi si\u0119 w Java.<\/li><\/ul>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"podstawoweinformacje\">Podstawowe informacje o danych<\/h1>\n\n\n<p>Podzia\u0142 danych jest stosunkowo prosty. Dane dzielimy zasadniczo na dwa podstawowe modele tj. dane podstawowe oraz dane drugorz\u0119dne.<\/p>\n<h2>Dane podstawowe<\/h2>\n<p>Dane podstawowe s\u0105 to dane kt\u00f3re wyst\u0119puj\u0105 w swojej rzeczywistej postaci (takiej w jakiej je pozyskano) be\u017c \u017cadnych modyfikacji dostosowuj\u0105cych do dalszych oblicze\u0144 i analiz. Dane podstawowe zbierane s\u0105 za pomoc\u0105 r\u00f3\u017cnych metod kt\u00f3rych przyk\u0142ady przedstawiono poni\u017cej:<\/p>\n<h3>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wywiad<\/h3>\n<p>Dane zbierane w trakcie tego procesu pochodz\u0105 z wywiadu z odbiorcami docelowymi przez osob\u0119 zwan\u0105 ankieter, a osoba, kt\u00f3ra odpowiada na wywiad, jest znana jako osoba przeprowadzaj\u0105ca wywiad.<\/p>\n<h3>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ankieta<\/h3>\n<p>Ankieta to w zasadzie proces badawczy, w kt\u00f3rym zadaje si\u0119 list\u0119 odpowiednich pyta\u0144, a odpowiedzi s\u0105 zapisywane w formie tekstu, d\u017awi\u0119ku lub wideo.<\/p>\n<h3>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Eksperyment<\/h3>\n<p>Eksperyment to spos\u00f3b zbierania danych poprzez przeprowadzanie eksperyment\u00f3w, bada\u0144 i \u015bledztw oraz odpowiednim zapisywaniu obserwacji i atrybut\u00f3w obserwacji. Stosuje si\u0119 r\u00f3\u017cne metody prowadzenia eksperyment\u00f3w, istotne jest jednak to jakie warto\u015bci s\u0105 elementami obserwacji i atrybut\u00f3w. Mog\u0105 to by\u0107 np. warto\u015bci tekstowe, obiektowe, liczbowe, logiczne mieszane.<\/p>\n<h2>Dane wt\u00f3rne<\/h2>\n<p>To szczeg\u00f3lny typ danych kt\u00f3re zosta\u0142y zebrane i innych powod\u00f3w zosta\u0142y zarejestrowane i mog\u0142y by\u0107 poddane pewnym modyfikacjom koniecznym do ich analizy lub wynikaj\u0105cymi ze specyfiki ich \u017ar\u00f3d\u0142a generowania. Og\u00f3lnie dane wt\u00f3rne dzielimy na:<\/p>\n<h3>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dane organizacyjne<\/h3>\n<p>Og\u00f3lnie mo\u017cna przyj\u0105\u0107, \u017ce s\u0105 to dane wynikaj\u0105ce z dzia\u0142alno\u015bci zwi\u0105zanej z jakim\u015b przedsi\u0119wzi\u0119ciem. Mog\u0105 to by\u0107 zapisy rynkowe, zapisy sprzeda\u017cy, transakcje, dane klient\u00f3w, zasoby ksi\u0119gowe itp. Nale\u017cy przy tym zauwa\u017cy\u0107, \u017ce koszt i czasoch\u0142onno\u015b\u0107 przy pozyskiwaniu danych ze \u017ar\u00f3de\u0142 organizacyjnych jest stosunkowo niskie, wynika to po prostu z faktu, i\u017c s\u0105 one z regu\u0142y konieczno\u015bci\u0105 lub wymogiem przy realizacji szeroko rozumianego przedsi\u0119wzi\u0119cia, np. bank prowadzi informacje o klientach w ramach polityki kredytowe itp.<\/p>\n<h3>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dane zewn\u0119trzne<\/h3>\n<p>Ten typ danych jest elementem pochodnym dzia\u0142alno\u015bci organizacyjnej wynikaj\u0105cym z samej dzia\u0142alno\u015bci lub elementem niezb\u0119dnym do realizacji dzia\u0142alno\u015bci. Przyk\u0142adowe to np. odczyty licznik\u00f3w pr\u0105du maj\u0105ce wp\u0142yw na koszty dzia\u0142alno\u015bci, ale faktur\u0119 otrzymujemy z od dystrybutora energii zgodnie z jego taryfikatorem. Mog\u0105 to te\u017c by\u0107 statystyczne dane rz\u0105dowe [GUS] maj\u0105ce wp\u0142yw na marketing firmy lub przedmiot dzia\u0142alno\u015bci.<\/p>\n<h2>Podstawowe kategorie \u017ar\u00f3de\u0142 wydobywanych danych<\/h2>\n<h3>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sety \u2013 zestawy danych p\u0142askich lub pliki p\u0142askie<\/h3>\n<p>Przyk\u0142adem setu s\u0105 np. dane pomiarowe jakiego\u015b eksperymentu w postaci pliku CSV gdzie w mamy atrybuty w postaci kolumn, argumenty i warto\u015b\u0107 wyniku\/wynik\u00f3w dla argumentu. Set nie posiada \u017cadnych relacji do innych tabel. Dane mog\u0105 mie\u0107 posta\u0107 tekstow\u0105 liczbow\u0105 lub logiczn\u0105 i mo\u017cna je wyodr\u0119bni\u0107 za pomoc\u0105 algorytm\u00f3w eksploracji, kt\u00f3re przyjmiemy do ich zastosowania. Przyk\u0142ad \u2013 algorytm po wczytaniu pliku kasuje wiersze z wynikiem \u201e0\u201d poniewa\u017c jest to wynik b\u0142\u0119du transmisji jakich\u015b danych<\/p>\n<h3>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Relacyjne bazy danych<\/h3>\n<p>Bazy danych kt\u00f3re posiadaj\u0105 tabele powi\u0105zane relacjami. Najcz\u0119\u015bciej pos\u0142uguj\u0105ce si\u0119 standardowym API&nbsp; w postaci &nbsp;&#8222;sequel&#8221; (Structured Query Language). W takich bazach kopanie danych nie jest \u0142atwe, wymaga bowiem znajomo\u015bci SQL. Nale\u017cy pami\u0119ta\u0107, \u017ce jest to tzw. zbi\u00f3r danych zorganizowanych zar\u00f3wno danych w tabeli pod wzgl\u0119dem uporz\u0105dkowania wed\u0142ug ID tabeli jak i r\u00f3wnie\u017c zdefiniowanych relacji pomi\u0119dzy tabelami. Nale\u017cy zauwa\u017cy\u0107, \u017ce relacyjne bazy danych s\u0105 relatywnie do\u015b\u0107 \u201eci\u0119\u017ckim\u201d tematem do kopania danych ze wzgl\u0119du na swoj\u0105 relacyjn\u0105 struktur\u0119 i bardzo cz\u0119sto taki zestaw danych poddaje si\u0119 przetworzeniu do postaci \u201esetu\u201d gdzie w wiersze stanowi\u0105 tzw. obserwacje a w kolumny atrybuty<\/p>\n<h3>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hurtownie danych ang. DataWarehouse<\/h3>\n<p>Hurtownie danych to nic innego jak zbiory danych zintegrowanych z wielu \u017ar\u00f3de\u0142, kt\u00f3ry b\u0119dzie s\u0142u\u017cy\u0142 zapytaniom i podejmowaniu decyzji. Zasadniczo wyr\u00f3\u017cniamy trzy typy hurtowni danych: hurtownia danych jako przedsi\u0119biorstwa [Enterprise DataWarehouse] , hurtownia danych skompilowana do mniejszego rozmiaru zdefiniowanych wcze\u015bniej danych zwana magazynem danych [Data Mart] i hurtownia wirtualna [Virtual Warehouse]<\/p>\n<h3>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dane Transakcyjne lokowane w bazach danych np. eXtremeDB<\/h3>\n<p>Do\u015b\u0107 wa\u017cny element zbior\u00f3w danych. Cz\u0119stym elementem kreowania tego typu danych jest wykorzystanie np. w SPRINGu wzorca ACID &#8211; klasy transakcji. Oznacza to zapis do bazy danych elementu transakcji, uporz\u0105dkowanego wg znacznika czasu i daty (szereg\u00f3w czasowych) z cechami <em>Jednoznaczno\u015bci, Sp\u00f3jno\u015bci, Izolacji, Trwa\u0142o\u015bci<\/em><\/p>\n<ul>\n<li><strong>A<\/strong>tomic<\/li>\n<li><strong>C<\/strong>onsistency<\/li>\n<li><strong>I<\/strong>solation<\/li>\n<li><strong>D<\/strong>urability<\/li>\n<\/ul>\n<p>w powi\u0105zaniu z obiektem transakcji jak operacja gie\u0142dowa, bankowa, przyj\u0119cia wydania z magazynu. To co nale\u017cy zapami\u0119ta\u0107 to zasad\u0119, \u017ce na tym samym obiekcie nie mo\u017cna wykonywa\u0107 wielu transakcji w tym samym czasie. Przyk\u0142ad: na budowie w biurze A osoba chce pobra\u0107 np. to samo narz\u0119dzie co inna osoba w biurze B. Nie mo\u017cna wypo\u017cyczy\u0107 tej samej rzeczy w tym samym czasie przez dwie r\u00f3\u017cne osoby. Tak wi\u0119c np. je\u015bli biuro A by\u0142o pierwsze w w\u0105tku biuro B b\u0119dzie czeka\u0142o na wynik transakcji i zobaczy jedynie status po operacji, \u017ce narz\u0119dzie jest ju\u017c wypo\u017cyczone lub nie (je\u015bli np. odst\u0105piono od wypo\u017cyczenia w biurze A)<\/p>\n<h3>5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Multimedialne bazy danych np Netflix<\/h3>\n<p>Wszelkie zbiory danych multimedialnych jak filmy, nagrania muzyczne wraz z ich systemem ewidencji danych klient\u00f3w, pobra\u0144 &nbsp;itd. Wa\u017cnym elementem tych baz s\u0105 dane ewidencyjne i obrotu multimedi\u00f3w pozwalaj\u0105ce na kopanie danych w celu przyj\u0119cia w\u0142a\u015bciwej strategii marketingowej czy kompletacji ofertowej.<\/p>\n<h3>6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Topograficzno-Przestrzenne bazy danych np. OpenStreet<\/h3>\n<p>Przyk\u0142adem takich danych jest og\u00f3lnie dost\u0119pna baza spo\u0142eczno\u015bciowa OpenStreet. Istotne dla kopania danych s\u0105 nie tylko dane topograficzne, ale zawarte w r\u00f3\u017cnych warstwach dane o elementach obiekt\u00f3w budowlanych, zmianach przestrzennych w czasie, POI itd.<\/p>\n<h3>7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sie\u0107 strony WWW<\/h3>\n<p>Najbardziej dynamiczne i heterogeniczne repozytorium. Odnosi si\u0119 do World Wide Web to zbi\u00f3r dokument\u00f3w i zasob\u00f3w, takich jak audio, wideo, tekst itp., kt\u00f3re s\u0105 identyfikowane przez jednolite lokalizatory zasob\u00f3w (URL) za po\u015brednictwem przegl\u0105darek internetowych, po\u0142\u0105czone za pomoc\u0105 stron HTML i dost\u0119pne za po\u015brednictwem sieci internetowej.<\/p>\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"datamining\">Data Mining, Kopanie Danych, Eksploracja Danych, KDD &#8211; Knowledge Discovery from Databases<\/h1>\n\n\n\n<p>Eksploracja danych to dyscyplina zwi\u0105zana z pozyskiwaniem danych, ich przygotowaniem (czyszczenie, szorowanie) i metodycznym przeszukiwaniu wzorc\u00f3w wraz z ich analiz\u0105. Przez wi\u0119kszo\u015b\u0107 czasu nawet nie zauwa\u017camy, \u017ce to si\u0119 dzieje. Przyk\u0142adowo, ilekro\u0107 rejestrujemy si\u0119 w celu uzyskania karty sklepowej w sklepie spo\u017cywczym, dokonujemy zakupu za pomoc\u0105 karty kredytowej lub surfujemy po Internecie, generujemy dane. Dla przypadku wspomnianego powy\u017cej beneficjentami naszych dzia\u0142a\u0144 jest market, kt\u00f3ry rejestruje nasze dane personalne i dane o zakupionym towarze, bank, kt\u00f3ry dowiaduje si\u0119 co kupujemy, gdzie kupujemy i kiedy kupujemy a Gogle skrz\u0119tnie profiluj\u0105 nasze poczynania w sieci. Dane te s\u0105 przechowywane w du\u017cych zbiorach na pot\u0119\u017cnych serwerach nale\u017c\u0105cych do firm, z kt\u00f3rymi na co dzie\u0144 mamy do czynienia. W tych zbiorach danych le\u017c\u0105 wzorce &#8211; wska\u017aniki naszych zainteresowa\u0144, naszych nawyk\u00f3w i naszych zachowa\u0144. Eksploracja danych pozwala ludziom zlokalizowa\u0107 i zinterpretowa\u0107 te wzorce, pomagaj\u0105c im podejmowa\u0107 bardziej \u015bwiadome decyzje i lepiej obs\u0142ugiwa\u0107 swoich klient\u00f3w. To powiedziawszy, istniej\u0105 r\u00f3wnie\u017c obawy dotycz\u0105ce praktyki eksploracji danych. W szczeg\u00f3lno\u015bci grupy nadzoruj\u0105ce ochron\u0119 prywatno\u015bci g\u0142o\u015bno opowiadaj\u0105 si\u0119 za organizacjami gromadz\u0105cymi ogromne ilo\u015bci danych, z kt\u00f3rych niekt\u00f3re mog\u0105 mie\u0107 bardzo osobisty charakter.<\/p>\n\n\n\n<p>O kopaniu danych jako dyscyplinie informatycznej zacz\u0119to m\u00f3wi\u0107, kiedy w 1999 roku kilka du\u017cych firm, w tym producent samochod\u00f3w Daimler-Benz, ubezpieczyciel OHRA, producent sprz\u0119tu i oprogramowania NCR Corp. oraz producent oprogramowania statystycznego SPSS, Inc. rozpocz\u0119\u0142y wsp\u00f3\u0142prac\u0119 w celu sformalizowania i ujednolicenia podej\u015bcia do eksploracji danych. Efektem ich pracy by\u0142 CRISP-DM, standardowy proces CRoss-Industry dla eksploracji danych.<\/p>\n\n\n\n<p>Mimo \u017ce uczestnicy tworzenia CRISP-DM z pewno\u015bci\u0105 mieli \u017cywotne interesy w okre\u015blonych narz\u0119dziach programowych i sprz\u0119towych, proces zosta\u0142 zaprojektowany niezale\u017cnie od konkretnego narz\u0119dzia. Zosta\u0142 napisany w taki spos\u00f3b, aby mia\u0142 charakter koncepcyjny &#8211; co\u015b, co mo\u017cna by\u0142o zastosowa\u0107 niezale\u017cnie od okre\u015blonego narz\u0119dzia lub rodzaju danych. Proces sk\u0142ada si\u0119 z sze\u015bciu etap\u00f3w lub faz. W poni\u017cszym rysunku przedstawiono za\u0142o\u017cenia procesu. [zaczerpni\u0119to:&nbsp; https:\/\/en.wikipedia.org\/wiki\/Crossindustry_standard_process_for_data_mining ]<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/image1.png\" alt=\"\" class=\"wp-image-25793\" width=\"366\" height=\"366\"\/><figcaption>Cross Industry standard process<\/figcaption><\/figure><\/div>\n\n\n\n<p>Nie ma potrzeby by zna\u0107 na pami\u0119\u0107 struktur\u0119 modelu, ale warto zaznajomi\u0107 si\u0119 z jego elementami opisanymi poni\u017cej<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Business (Organizational) Understanding \u2013 zrozumienie potrzeb biznesowych<\/h3>\n\n\n\n<p>To jest absolutna baza do dalszych dzia\u0142a\u0144. Mo\u017cesz wydobywa\u0107 dane dniami i nocami, ale je\u015bli nie wiesz, czego chcesz si\u0119 dowiedzie\u0107, je\u015bli nie zdefiniowa\u0142e\u015b \u017cadnych pyta\u0144, na kt\u00f3re trzeba odpowiedzie\u0107, wtedy wysi\u0142ki zwi\u0105zane z eksploracj\u0105 danych b\u0119d\u0105 mniej owocne. Zacznij od pomys\u0142\u00f3w na wysokim poziomie: co sprawia, \u017ce \u200b\u200bmoi klienci tak bardzo narzekaj\u0105. Jak mog\u0119 zwi\u0119kszy\u0107 mar\u017c\u0119 zysku na jednostk\u0119? Jak mog\u0119 przewidzie\u0107 i naprawi\u0107 wady produkcyjne, a tym samym unikn\u0105\u0107 wysy\u0142ki wadliwego produktu? Je\u015bli zrozumiesz swojego klienta i jego oczekiwania to masz 50% sukcesu w zrozumieniu jakich danych potrzebujesz<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data Understanding \u2013 zrozumienie danych<\/h3>\n\n\n\n<p>Po skorelowaniu i scentralizowaniu danych w organizacji pojawia si\u0119 wiele pyta\u0144. Sk\u0105d pochodz\u0105 dane? Kto je zebra\u0142 i czy istnia\u0142a standardowa metoda zbierania? Co oznaczaj\u0105 r\u00f3\u017cne kolumny i wiersze danych? Czy istniej\u0105 akronimy lub skr\u00f3ty, kt\u00f3re s\u0105 nieznane lub niejasne? Bardzo cz\u0119sto konieczne jest przeprowadzenie pewnych bada\u0144 na etapie przygotowywania danych w ramach dzia\u0142a\u0144 zwi\u0105zanych z eksploracj\u0105 danych. Czasami b\u0119dziesz musia\u0142 spotka\u0107 si\u0119 z ekspertami merytorycznymi z r\u00f3\u017cnych dziedzin, aby dowiedzie\u0107 si\u0119, sk\u0105d pochodz\u0105 okre\u015blone dane, w jaki spos\u00f3b zosta\u0142y zebrane oraz w jaki spos\u00f3b zosta\u0142y zakodowane i przechowywane. Niedok\u0142adne lub niekompletne dane mog\u0105 by\u0107 gorsze ni\u017c nic w dzia\u0142alno\u015bci eksploracji danych, poniewa\u017c decyzje oparte na cz\u0119\u015bciowych lub b\u0142\u0119dnych danych mog\u0105 by\u0107 decyzjami cz\u0119\u015bciowymi lub b\u0142\u0119dnymi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data preparation \u2013 przygotowanie danych<\/h3>\n\n\n\n<p>Dane maj\u0105 wiele kszta\u0142t\u00f3w i format\u00f3w. Niekt\u00f3re dane s\u0105 liczbowe, niekt\u00f3re s\u0105 w akapitach tekstu, a inne w formie obrazkowej, takiej jak wykresy, wykresy i mapy. Niekt\u00f3re dane s\u0105 anegdotyczne lub narracyjne, takie jak komentarze do ankiety dotycz\u0105cej satysfakcji klienta lub transkrypcja zezna\u0144 \u015bwiadka. Nie nale\u017cy jednak odrzuca\u0107 danych, kt\u00f3re nie znajduj\u0105 si\u0119 w wierszach lub kolumnach liczb &#8211; czasami nietradycyjne formaty danych mog\u0105 by\u0107 najbardziej bogate w informacje. Przygotowanie danych obejmuje szereg czynno\u015bci. Cz\u0119sto taki proces nazywany jest czyszczenie danych lub szorowanie danych. Mog\u0105 one obejmowa\u0107 \u0142\u0105czenie dw\u00f3ch lub wi\u0119cej zestaw\u00f3w danych razem, redukowanie zbior\u00f3w danych tylko do tych zmiennych, kt\u00f3re s\u0105 interesuj\u0105ce w danym \u0107wiczeniu eksploracji danych, czyszczenie danych z anomalii, takich jak obserwacje odstaj\u0105ce lub brakuj\u0105ce dane, lub ponowne formatowanie danych w celu zachowania sp\u00f3jno\u015bci.<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-red-color\"><strong>Przyk\u0142ad<\/strong><\/span>: W pewnej ankiecie opr\u00f3cz innych danych jak np. wykszta\u0142cenie, wiek itd. Jest pytanie o p\u0142e\u0107.  Przedmiotem naszych bada\u0144 jest korelacja grup wiekowych vs wykszta\u0142cenie vs lokalizacja. W tym przypadku nie ma znaczenia czy zaznaczono p\u0142e\u0107 i taki atrybut (kolumn\u0119) mo\u017cemy pomin\u0105\u0107, ale gdyby takie zestawienie nie dotyczy\u0142o lokalizacji, ale podzia\u0142u na p\u0142e\u0107 to rezygnacja z tego atrybutu nie ma sensu natomiast wymaga analizy czy pomijamy sygna\u0142 (wiersz) z pustym polem p\u0142e\u0107 czy nie i jak\u0105 warto\u015b\u0107 b\u0142\u0119du pope\u0142niamy. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Modeling \u2013 modelowanie<\/h3>\n\n\n\n<p>Model, przynajmniej w eksploracji danych, to nic innego jak komputerowa reprezentacja obserwacji ze \u015bwiata rzeczywistego. Modele to zastosowanie algorytm\u00f3w do wyszukiwania, identyfikowania i wy\u015bwietlania wszelkich wzorc\u00f3w lub komunikat\u00f3w w danych. Istniej\u0105 dwa podstawowe rodzaje lub typy modeli w eksploracji danych: te, kt\u00f3re klasyfikuj\u0105 [classification] i te, kt\u00f3re przewiduj\u0105 [prediction]. <br><strong>O klasyfikacji <\/strong>m\u00f3wimy wtedy, kiedy dany model przypisuje pewna warto\u015b\u0107 obserwacji do konkretnej grupy.<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-red-color\"><strong>Przyk\u0142ad<\/strong><\/span>: W uk\u0142adach cyfrowych TTL poziom napi\u0119cia wyj\u015bciowego to przedzia\u0142 0-0,8V jest klasyfikowany jako logiczne \u201ezero\u201d, a poziom napi\u0119cia wyj\u015bciowego w przedziale 2,4-5,0V jest sklasyfikowany jako logiczne \u201e1\u201d. To co pomi\u0119dzy to stan nieustalony. Je\u015bli na wej\u015bcie uk\u0142adu scalonego kt\u00f3ry jest komparatorem (np. AD8469) podamy sygna\u0142 ci\u0105g\u0142y to na wyj\u015bciu uk\u0142adu otrzymamy tylko mo\u017cliwe dwa stany napi\u0119cia tj. poziom &#8222;0&#8221; -&gt; 0-0,8[V] lub poziom &#8222;1&#8221; -&gt; 2,4-5,0[V]. Og\u00f3lnie mo\u017cemy to sprowadzi\u0107 do postaci:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie1.png\" alt=\"\" class=\"wp-image-25800\" width=\"334\" height=\"47\"\/><\/figure><\/div>\n\n\n\n<p><strong>O predykcji <\/strong>m\u00f3wimy wtedy, kiedy dany model odwzorowuje w spos\u00f3b ci\u0105g\u0142y pewne zachowanie.<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-red-color\">Przyk\u0142ad:<\/span> Pomierzyli\u015bmy pr\u0105d p\u0142yn\u0105cy przez rezystor dla kilku napi\u0119\u0107 np. 1V-&gt;1A; 2V-&gt;2A; 3V-&gt;3A. Nie znamy zale\u017cno\u015bci (wzoru) pomi\u0119dzy pr\u0105dem, napi\u0119ciem sta\u0142ym i rezystancj\u0105 rzeczywista, ale chcieliby\u015bmy wiedzie\u0107 jaka b\u0119dzie odpowied\u017a modelu na argument o warto\u015bci 10V. Og\u00f3lnie model po obliczeniach przyjmie warto\u015bci r\u00f3wnania dla predykcji liniowej w postaci og\u00f3lnej:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie2.png\" alt=\"\" class=\"wp-image-25801\" width=\"89\" height=\"30\"\/><\/figure><\/div>\n\n\n\n<p>&nbsp;co odpowiada w naszym przypadku r\u00f3wnaniu prawa Ohma I= <span class=\"has-inline-color has-vivid-red-color\"><strong>(1\/R)<\/strong><\/span>*<span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>U<\/strong><\/span><\/p>\n\n\n\n<p>Istnieje pewne pokrywanie si\u0119 mi\u0119dzy typami tych modeli wykorzystywanych do eksploracji danych. Na przyk\u0142ad drzewa decyzyjne. Drzewa decyzyjne to model predykcyjny u\u017cywany do okre\u015blania, kt\u00f3re atrybuty danego zestawu danych s\u0105 najsilniejszymi wska\u017anikami danego wyniku. Wynik jest zwykle wyra\u017cany jako prawdopodobie\u0144stwo, \u017ce obserwacja znajdzie si\u0119 w okre\u015blonej kategorii. Dlatego drzewa decyzyjne maj\u0105 charakter predykcyjny, ale pomagaj\u0105 nam r\u00f3wnie\u017c klasyfikowa\u0107 nasze dane.<\/p>\n\n\n\n<p>Modele mog\u0105 by\u0107 proste lub z\u0142o\u017cone. Mog\u0105 zawiera\u0107 tylko pojedynczy proces lub strumie\u0144 albo mog\u0105 zawiera\u0107 podprocesy. Niezale\u017cnie od ich uk\u0142adu modele s\u0105 tam, gdzie eksploracja danych przechodzi od przygotowania i zrozumienia do opracowania i interpretacji<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Evaluation \u2013 ocena<\/h3>\n\n\n\n<p>Wszystkie analizy danych mog\u0105 zawiera\u0107 fa\u0142szywe alarmy. Jednak nawet je\u015bli model nie daje fa\u0142szywych alarm\u00f3w, model mo\u017ce nie znale\u017a\u0107 \u017cadnych interesuj\u0105cych wzorc\u00f3w w danych. Mo\u017ce to by\u0107 spowodowane tym, \u017ce model nie jest dobrze skonfigurowany do znajdowania wzorc\u00f3w, mo\u017cesz u\u017cywa\u0107 z\u0142ej techniki lub po prostu w danych mo\u017ce nie by\u0107 nic interesuj\u0105cego do znalezienia przez model. Faza oceny CRISP-DM ma pom\u00f3c w okre\u015bleniu, jak cenny jest Tw\u00f3j model i co mo\u017cesz chcie\u0107 z nim zrobi\u0107.<\/p>\n\n\n\n<p>Oceny mo\u017cna dokona\u0107 za pomoc\u0105 wielu technik, zar\u00f3wno matematycznych, jak i logicznych. Jednak poza tymi \u015brodkami ocena modelu musi r\u00f3wnie\u017c obejmowa\u0107 aspekt ludzki. W miar\u0119 zdobywania do\u015bwiadczenia i wiedzy specjalistycznej w swojej dziedzinie b\u0119d\u0105 mieli wiedz\u0119 operacyjn\u0105, kt\u00f3ra mo\u017ce nie by\u0107 mierzalna w sensie matematycznym, ale jest niezb\u0119dna do okre\u015blenia warto\u015bci modelu eksploracji danych. Korzystamy zar\u00f3wno wynik\u00f3w oblicze\u0144 opartych na danych, jak i instynktownych technik oceny w celu okre\u015blenia przydatno\u015bci modelu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deployment \u2013 wdro\u017cenie<\/h3>\n\n\n\n<p>To ostatni etap prac. Czynno\u015bci w tej fazie obejmuj\u0105 konfiguracj\u0119 automatyzacji modelu, spotkania z konsumentami wynik\u00f3w modelu, integracj\u0119 z istniej\u0105cymi systemami zarz\u0105dzania lub informacji operacyjnych, przekazywanie nowej wiedzy z u\u017cytkowania modelu z powrotem do modelu w celu poprawy jego dok\u0142adno\u015bci i wydajno\u015bci oraz monitorowanie i mierzenie wyniki stosowania modelu. Aby skutecznie wdra\u017ca\u0107 modele eksploracji danych, nale\u017cy zachowa\u0107 r\u00f3wnowag\u0119. Dzi\u0119ki jasnemu komunikowaniu funkcji i u\u017cyteczno\u015bci modelu zainteresowanym stronom, dok\u0142adnemu testowaniu i sprawdzaniu modelu, a nast\u0119pnie planowaniu i monitorowaniu jego wdra\u017cania, modele eksploracji danych mo\u017cna skutecznie wprowadzi\u0107 do przep\u0142ywu organizacyjnego.<\/p>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"jakwidzimy\">Jak widzimy dane i jak je okre\u015blamy<\/h1>\n\n\n\n<p>Poniewa\u017c b\u0119dziemy porusza\u0107 pomi\u0119dzy r\u00f3\u017cnymi zbiorami danych om\u00f3wimy nazewnictwo, z kt\u00f3rym spotkamy si\u0119 podczas naszej pracy. W r\u00f3\u017cnych \u015brodowiskach danych mog\u0105 by\u0107 one okre\u015blane r\u00f3\u017cnymi nazwami.<\/p>\n\n\n\n<p>W relacyjnej bazie danych wiersze b\u0119d\u0105 nazywane krotkami lub rekordami, a kolumny &#8211; polami.<br>W hurtowniach danych i zestawach danych wiersze s\u0105 czasami nazywane faktami, obserwacjami, przyk\u0142adami lub przypadkami, a kolumny s\u0105 czasami nazywane zmiennymi, argumentami lub atrybutami. Aby zachowa\u0107 sp\u00f3jno\u015b\u0107, b\u0119dziemy u\u017cywa\u0107 terminologii obserwacji wierszy i atrybut\u00f3w kolumn.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data Set<\/h3>\n\n\n\n<p>W poni\u017cszym przyk\u0142adzie przedstawiono pomiarowy plik CSV. Sk\u0142ada si\u0119 on z dw\u00f3ch atrybut\u00f3w, z kt\u00f3rych jeden to argument drugi to zmienna.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie3.png\" alt=\"\" class=\"wp-image-25802\" width=\"488\" height=\"679\"\/><\/figure><\/div>\n\n\n\n<p>Poszczeg\u00f3lne dane w wierszach s\u0105 odseparowane przecinkami. Warto\u015bci dziesi\u0119tne s\u0105 podane z separatorem kropki. Warto zwr\u00f3ci\u0107 uwag\u0119 na ten fakt uwag\u0119, gdy\u017c cz\u0119sto dla os\u00f3b poczatkuj\u0105cych jest to powodem wielu pomy\u0142ek. W przyk\u0142adowej zale\u017cno\u015bci zaznaczonej na rysunku jako argument i zmienna zale\u017cna dla wzorcowej temperatury w komorze klimatycznej: &nbsp;-150<sup>o<\/sup>C, zmierzona rezystancja czujnika temperatury wynosi\u0142a 39,72\u03a9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Relacyjna Baza Danych<\/h3>\n\n\n\n<p>Relacyjna baza danych to zorganizowana grupa informacji w ramach okre\u015blonej struktury. Kontenery bazy danych, w \u015brodowisku bazy danych nazywane s\u0105 tabelami. Wi\u0119kszo\u015b\u0107 u\u017cywanych obecnie baz danych to relacyjne bazy danych &#8211; s\u0105 one zaprojektowane przy u\u017cyciu wielu tabel, kt\u00f3re s\u0105 ze sob\u0105 powi\u0105zane w logiczny spos\u00f3b. Relacyjne bazy danych zazwyczaj zawieraj\u0105 dziesi\u0105tki lub nawet setki tabel, w zale\u017cno\u015bci od wielko\u015bci organizacji. Za\u0142\u0105czony poni\u017cej przyk\u0142ad bazy danych utworzony na potrzeby wypo\u017cyczalni samochod\u00f3w pokazuje z\u0142o\u017cono\u015b\u0107 tabel i relacji<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"751\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie4.png\" alt=\"\" class=\"wp-image-25806\"\/><\/figure><\/div>\n\n\n\n<p>Jest to diagram gdzie ka\u017cda z tabel posiada w\u0142asne kolumny z atrybutami wg nazw.  Jak widoczne w tabeli ka\u017cda z tabel zawiera dziesi\u0105tki wierszy z danymi natomiast linie \u0142\u0105cz\u0105ce tabel wskazuj\u0105 jakie s\u0105 relacje (zale\u017cno\u015bci) pomi\u0119dzy danymi w tabelach. Przyk\u0142adowa tabela testowa:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"342\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie5.png\" alt=\"\" class=\"wp-image-25805\"\/><\/figure>\n\n\n\n<p>Na pierwszej pozycji od lewej jest kolumna identyfikatora idAUTO \u0142atwo zauwa\u017cy\u0107, \u017ce ta tabela przechowuje relacj\u0119 do tabeli z identyfikatorem idLOKALIZACJA_PARKING to jest w\u0142a\u015bnie relacja. Wi\u0119kszo\u015b\u0107 relacyjnych baz danych, kt\u00f3re s\u0105 zaprojektowane do obs\u0142ugi du\u017cej liczby odczyt\u00f3w i zapis\u00f3w (aktualizacji i pobierania informacji), jest okre\u015blanych jako systemy OLTP (przetwarzanie transakcji online). Systemy OLTP s\u0105 bardzo wydajne w przypadku czynno\u015bci o du\u017cym wolumenie, takich jak kasowanie, zapis, gdzie np. wiele pozycji jest rejestrowanych za pomoc\u0105 skaner\u00f3w kod\u00f3w kreskowych lub pobieranych z odczyt\u00f3w urz\u0105dze\u0144 IoT w bardzo kr\u00f3tkim czasie. Jednak u\u017cywanie baz danych OLTP do analizy jest generalnie ma\u0142o wydajne, poniewa\u017c aby pobra\u0107 dane z wielu tabel jednocze\u015bnie, nale\u017cy napisa\u0107 zapytanie zawieraj\u0105ce \u0142\u0105czenia. Zapytanie jest prost\u0105 metod\u0105 pobierania danych z tabel bazy danych do przegl\u0105dania wynik\u00f3w danych w zestawieniach, kt\u00f3re w danej chwili interesuj\u0105 analityka. Zapytania s\u0105 zwykle pisane w j\u0119zyku zwanym SQL (Structured Query Language; wymawiane jako \u201esequel\u201d).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hurtownia danych<\/h3>\n\n\n\n<p>Hurtownia danych to rodzaj du\u017cej bazy danych , kt\u00f3ra zosta\u0142a zdenormalizowana i zarchiwizowana z bazy danych relacyjnej SQL. Denormalizacja to proces celowego \u0142\u0105czenia niekt\u00f3rych tabel w jedn\u0105 tabel\u0119, mimo \u017ce mo\u017ce to spowodowa\u0107 zduplikowanie danych w niekt\u00f3rych kolumnach (lub innymi s\u0142owy, atrybut\u00f3w). Denormalizacja to schematy wielowymiarowe, specjalnie zaprojektowane do modelowania system\u00f3w hurtowni danych. G\u0142\u00f3wnym celem denormalizacji jest uproszczenie tabel zapyta\u0144 do okre\u015blonych cel\u00f3w biznesowych w po\u0142\u0105czeniu z odpowiednimi algorytmami czego nie da si\u0119 osi\u0105gn\u0105\u0107 w \u0142atwy spos\u00f3b metodami w standardzie SQL Schematy zosta\u0142y zaprojektowane z my\u015bl\u0105 o unikalnych potrzebach bardzo du\u017cych baz danych zoptymalizowanych do cel\u00f3w analitycznych (OLAP). Wyr\u00f3\u017cniamy g\u0142\u00f3wnie trzy typy schemat\u00f3w hurtowni danych:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Schemat gwiazdy (Star Schema)<\/li><li>Schemat p\u0142atka \u015bniegu (Snowflake Schema)<\/li><li>Schemat galaktyki (Galaxy Schema)<\/li><\/ul>\n\n\n\n<p>Og\u00f3lnie mo\u017cna powiedzie\u0107, \u017ce wyb\u00f3r schematu zale\u017cy od tego co chcemy przetwarza\u0107. G\u0142\u00f3wne wymagania s\u0105 nast\u0119puj\u0105ce:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Jakie s\u0105 potrzeby biznesowe<\/li><li>Jaki poziom ziarnisto\u015bci musimy za\u0142o\u017cy\u0107 \u2013 ile i jakich szczeg\u00f3\u0142\u00f3w potrzebujemy<\/li><li>Ile potrzebujemy wymiar\u00f3w &#8211; czyli ile tabel z jakimi danymi<\/li><li>Jakie miary (wska\u017aniki) s\u0105 nam potrzebne w wynikach<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Schemat gwiazdy &#8211; z przyk\u0142adem<\/h4>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>Schemat gwiazdy w hurtowni danych, w kt\u00f3rej \u015brodek gwiazdy mo\u017ce mie\u0107 jedn\u0105 tabel\u0119 obserwacji i kilka powi\u0105zanych tabel atrybut\u00f3w. Jest znany jako schemat gwiazdy, poniewa\u017c jego struktura przypomina gwiazd\u0119. Model danych Star Schema to najprostszy typ schematu Data Warehouse. Przyk\u0142adowo chcemy przeanalizowa\u0107 nasza baz\u0119 wypo\u017cyczalni pod k\u0105tem klient , model wypo\u017cyczanego samochodu, czas wypo\u017cyczenia oraz jaki przynosi zysk w naszej wypo\u017cyczalni.<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zaczynamy &#8211; przegl\u0105daj\u0105c zestawienie zbiorcze z bazy SQL przyjrzyjmy si\u0119 jakie tabele zawieraj\u0105 dane niezb\u0119dne do pozyskania naszych wska\u017anik\u00f3w:<\/em><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"760\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie6.png\" alt=\"\" class=\"wp-image-25810\"\/><\/figure><\/div>\n\n\n\n<p><em><u>Cel biznesowy<\/u> to zmiana parku naszych samochod\u00f3w oraz wprowadzenie pewnego w\u0105tku drzewa decyzyjnego w oprogramowaniu kt\u00f3ry pomo\u017ce obs\u0142udze w decyzji kt\u00f3remu klientowi da\u0107 priorytet strategiczny a kt\u00f3remu \u201epodzi\u0119kowa\u0107\u201d w sytuacji kolizji oczekiwa\u0144.<\/em><\/p>\n\n\n\n<p><em><u>Ziarnisto\u015b\u0107<\/u> potrzebujemy dane o klient-&gt; samoch\u00f3d-&gt;przych\u00f3d<\/em><\/p>\n\n\n\n<p><em><u>Atrybuty <\/u>potrzebujemy tabeli o klientach, wypo\u017cyczeniach, samochodach, przychodach, promocjach<\/em><\/p>\n\n\n\n<p><em><u>Wska\u017aniki<\/u> ID Klienta, przych\u00f3d<\/em><\/p>\n\n\n\n<p><em>Centrum gwiazdy \u2013 co jest obserwacj\u0105 lub pro\u015bciej co jest kluczem pozosta\u0142ych tabel w bazie SQL wypo\u017cyczalni powy\u017cej? Jest to tabela wypo\u017cyczenia. Zatem, nasza gwiazda powinna wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/em><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie7.png\" alt=\"\" class=\"wp-image-25807\" width=\"209\" height=\"253\"\/><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Schemat p\u0142atek \u015bniegu<\/h4>\n\n\n\n<p>P\u0142atek \u015bniegu jest ewolucj\u0105 gwiazdy. W zasadzie tego typu schemat jest pochodna tradycyjnej bazy danych kt\u00f3r\u0105 zdenormalizowano, ale optymalizacja wymusza konieczno\u015b\u0107 dodatkowych tabel. G\u0142\u00f3wn\u0105 zalet\u0105 schematu p\u0142atka \u015bniegu jest to, \u017ce zajmuje mniej miejsca na dysku ni\u017c odpowiadaj\u0105ca mu baza danych SQL. Do schematu gwiazdy dodawany jest \u0142atwiejszy do zaimplementowania wymiar. Z powodu dodatkowego odniesienia wielu tabel wydajno\u015b\u0107 zapyta\u0144 jest zdecydowanie zmniejszona, schemat pogl\u0105dowy poni\u017cej.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie8.png\" alt=\"\" class=\"wp-image-25811\" width=\"296\" height=\"272\"\/><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Schemat galaktyka<\/h4>\n\n\n\n<p><em>Schemat galaktyki zawiera dwie tabele obserwacji, kt\u00f3re maj\u0105 wsp\u00f3lne tabele wymiar\u00f3w. Jest r\u00f3wnie\u017c nazywany schematem konstelacji obserwacji. Ten schemat jest postrzegany jako zbi\u00f3r gwiazd, st\u0105d nazwa Galaxy Schema.<\/em><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie9.png\" alt=\"\" class=\"wp-image-25812\" width=\"398\" height=\"288\"\/><\/figure><\/div>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"machinelearning\">Machine Learning \u2013 uczenie maszynowe<\/h1>\n\n\n\n<p>S\u0105 trzy g\u0142\u00f3wne sposoby uczenia si\u0119, jak pokazano na poni\u017cszej li\u015bcie:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Supervised learning \u2013 uczenie nadzorowane<\/li><li>Unsupervised learning \u2013 uczenie nienadzorowane<\/li><li>Reinforcement learning \u2013 uczenie wzmocnione<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Uczenie nadzorowane<\/h2>\n\n\n\n<p>Bior\u0105c pod uwag\u0119 zestaw przyk\u0142adowych danych wej\u015bciowych x i ich wynik\u00f3w y, uczenie nadzorowane ma na celu nauczenie odwzorowania jako funkcja odwzorowania f, kt\u00f3ra przekszta\u0142ca wej\u015bcia na wyj\u015bcia w postaci funkcji<\/p>\n\n\n\n<p><span style=\"color: #ff0000;\">Przyk\u0142ad: <\/span>Wykrywanie oszustw zwi\u0105zanych z kartami kredytowymi, gdzie algorytm uczenia si\u0119 jest zestawiony z transakcjami kart\u0105 kredytow\u0105 (macierz X) oznaczonymi jako normalne lub podejrzane (wektor Y). Algorytm ucz\u0105cy si\u0119 tworzy model decyzyjny, kt\u00f3ry oznacza niewidoczne transakcje jako normalne lub podejrzane (jest to funkcja f). Oczywi\u015bcie by tak\u0105 funkcje wyznaczy\u0107 musimy posiada\u0107 zestawu danych z hurtowni danych. W tym wypadku dwa zestawy danych tj. zestaw transakcji, kt\u00f3re bank kolekcjonuje w swoich zasobach i zestaw danych kt\u00f3re s\u0105 oznaczone w tym banku lub w hurtowni mi\u0119dzy wieloma bankami jako oszustwo.<\/p>\n\n\n\n<p><strong>Wyr\u00f3\u017cniamy dwa g\u0142\u00f3wne typy uczenia nadzorowanego<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Regresja &#8211; zmienna wyj\u015bciowa jest ci\u0105g\u0142a np. czas rezystancja temperatura<\/li><li>Klasyfikacja &#8211; zmienna wyj\u015bciowa przyjmuje konkretn\u0105 sklasyfikowan\u0105 warto\u015b\u0107 np. True , False, bia\u0142y, czarny<\/li><\/ul>\n\n\n\n<p>Zastosowanie:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Predykcja (prognoza) u\u017cywamy zestawu zmiennych obja\u015bniaj\u0105cych(argument\u00f3w), aby przewidzie\u0107 warto\u015b\u0107 jakiej\u015b zmiennej odpowiedzi (np. dla termometru oporowego wykonali\u015bmy pomiary temp-&gt;rezystancja dla -5<sup>o<\/sup>C; 0<sup>o<\/sup>C; 5<sup>o<\/sup>C; 20<sup>o<\/sup>C po obliczeniu zale\u017cno\u015bci R=f(temp) u\u017cywaj\u0105c modelu [wzoru], mo\u017cemy poda\u0107 rezystancj\u0119 termometru oporowego dla temperatury np. 100oC dla kt\u00f3rej nie wykonano pomiaru rzeczywistego)<\/li><li>Wnioskowanie (inference) u\u017cywamy by okre\u015bli\u0107 w jaki spos\u00f3b zmienia si\u0119 zmienna odpowiedzi, gdy zmienia si\u0119 warto\u015b\u0107 zmiennych obja\u015bniaj\u0105cych (np. zrobili\u015bmy pomiary jak dla punktu powy\u017cej, ale mamy teraz do dyspozycji omomierz i chcemy si\u0119 dowiedzie\u0107 jaka mierzymy temperatur\u0119 na podstawie wskaza\u0144 omomierza)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Uczenie nienadzorowane<\/h2>\n\n\n\n<p>W przeciwie\u0144stwie do nadzorowanego, nienadzorowane algorytmy uczenia si\u0119 nie przyjmuj\u0105 podanych etykiet wynik\u00f3w, ale skupiaj\u0105 si\u0119 na poznaniu struktury danych, na przyk\u0142ad na grupowaniu podobnych danych wej\u015bciowych w klastry. Uczenie bez nadzoru mo\u017ce zatem odkry\u0107 ukryte wzorce w danych.<\/p>\n\n\n\n<p><span style=\"color: #ff0000;\">Przyk\u0142ad: <\/span>Algorytm rekomendacji oparty na przedmiotach, podmiotach w kt\u00f3rym algorytm wykrywa podobne przedmioty kupione razem; na przyk\u0142ad osoby, kt\u00f3re kupi\u0142y ksi\u0105\u017ck\u0119 A kupowa\u0142y r\u00f3wnie\u017c ksi\u0105\u017ck\u0119 B.<\/p>\n\n\n\n<p>Oznacza to, \u017ce nasz algorytm rozpoznaje grupy klient\u00f3w, kt\u00f3rzy mog\u0105 mie\u0107 podobne zainteresowania. Grupuje tych klient\u00f3w w kategorie i proponuje zakup przedmiot\u00f3w kt\u00f3re w tej kategorii by\u0142y r\u00f3wnie\u017c przedmiotem zakup\u00f3w. Kupi\u0142e\u015b ksi\u0105\u017ck\u0119 kucharsk\u0105 na temat potraw z ryb. Jak widzi to algorytm:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Zalicza podmiot do kategorii gotowanie i proponuje inne ksi\u0105\u017cki kucharskie i do\u0142\u0105cza reklamy market\u00f3w z \u017cywno\u015bci\u0105 itd.<\/li><li>Zalicza podmiot do kategorii w\u0119dkarstwo proponuje ksi\u0105\u017cki dot. w\u0119dkowanie i do\u0142\u0105cza reklamy sklep\u00f3w w\u0119dkarskich itd.<\/li><li>Zalicza podmiot jako zainteresowany wypoczynkiem nad wod\u0105, potrawami z ryb, owoc\u00f3w morza i do\u0142\u0105cza reklamy na temat zorganizowanych podr\u00f3\u017cy nad morza i akweny wodne oraz reklamuje odpowiednio skonfigurowane dane o hotelach<\/li><\/ol>\n\n\n\n<p>Podsumowuj\u0105c, algorytm uczenia si\u0119 bez nadzoru mo\u017ce by\u0107 u\u017cyty, gdy mamy list\u0119 zmiennych (X1, X2, X3,\u2026, Xp) i chcieliby\u015bmy po prostu znale\u017a\u0107 podstawow\u0105 struktur\u0119 lub wzorce w danych. Wyr\u00f3\u017cniamy dwa g\u0142\u00f3wne typy uczenia nienadzorowanego<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Grupowanie (Clustering) u\u017cywaj\u0105c tego typu algorytm\u00f3w, pr\u00f3bujemy znale\u017a\u0107 \u201eskupiska\u201d obserwacji w zbiorze danych, kt\u00f3re s\u0105 do siebie podobne.<\/li><li>Skojarzenie (Association) u\u017cywaj\u0105c tego typu algorytm\u00f3w, pr\u00f3bujemy znale\u017a\u0107 \u201eregu\u0142y\u201d, kt\u00f3rych mo\u017cna by u\u017cy\u0107 do narysowania skojarze\u0144.<\/li><\/ul>\n\n\n\n<p>Zastosowanie<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Grupowanie jest cz\u0119sto u\u017cywane, gdy chcemy zidentyfikowa\u0107 klastry klient\u00f3w o podobnych nawykach zakupowych, aby\u015bmy mogli stworzy\u0107 okre\u015blone strategie marketingowe skierowane do okre\u015blonych klastr\u00f3w<\/li><li>Skojarzenie, najcz\u0119\u015bciej stosowane by opracowa\u0107 algorytm asocjacyjny, kt\u00f3ry m\u00f3wi, \u017ce \u201eje\u015bli klient kupi produkt X, jest wysoce prawdopodobne, \u017ce kupi r\u00f3wnie\u017c produkt Y\u201d na podstawie zebranych danych \u201eobserwacji\u201d z koszyka zakup\u00f3w.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie Algorytm\u00f3w nadzorowanych vs nienadzorowanych<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">&nbsp;<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie11-1.png\" alt=\"\" class=\"wp-image-25820\" width=\"788\" height=\"478\"\/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Uczenie wzmocnione Reinfoced Learning<\/h2>\n\n\n\n<p>Uczenie si\u0119 ze wzmocnieniem odnosi si\u0119 do procesu uczenia si\u0119 z zupe\u0142nie innego punktu widzenia. Wprowadza status agenta. Agent, kt\u00f3rym mo\u017ce by\u0107 robot, bot lub program komputerowy. Oprogramowanie oddzia\u0142uje na utworzone pliki i dynamiczne wprowadza dane o \u015brodowisku, w kt\u00f3rym funkcjonuje do osi\u0105gni\u0119cia okre\u015blonego celu. \u015arodowisko jest opisane za pomoc\u0105 zestawu danych, w kt\u00f3rym agent przyjmuje okre\u015blone stany i w zwi\u0105zku z tym agent mo\u017ce podejmowa\u0107 r\u00f3\u017cne dzia\u0142ania, aby przej\u015b\u0107 z jednego stanu do drugiego. Stany mog\u0105 przyjmowa\u0107 r\u00f3\u017cne warto\u015bci np. stan celu, a je\u015bli agent osi\u0105gnie ten stan, otrzymuje du\u017c\u0105 nagrod\u0105 jako warto\u015b\u0107 \u201etrue\u201d. W innych stanach nagroda jest mniejsza np. \u201enull\u201d, nie istnieje, a nawet \u201efalse\u201d. Celem uczenia si\u0119 ze wzmocnieniem jest znalezienie optymalnej polityki lub funkcji mapowania, kt\u00f3ra okre\u015bla dzia\u0142ania, jakie nale\u017cy podj\u0105\u0107 w ka\u017cdym ze stan\u00f3w, bez nauczyciela, kt\u00f3ry wyra\u017anie powiedzia\u0142by, czy to prowadzi do stanu celu, czy nie.<\/p>\n\n\n\n<p><span style=\"color: #ff0000;\">Przyk\u0142ad: <\/span>Labirynt. Mo\u017cemy stosowa\u0107 wiele algorytm\u00f3w do przeszukiwania labiryntu, ale nam chodzi o inna analiz\u0119. Potraktujmy naszego agenta jak \u017cyw\u0105 istot\u0119, kt\u00f3ra szuka drogi do celu. Nasze zadanie to<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Znale\u017a\u0107 cel w pierwszym kroku<\/li><li>Znale\u017a\u0107 najkr\u00f3tsz\u0105 drog\u0119.<\/li><\/ol>\n\n\n\n<p>Mamy \u015bwiadomo\u015b\u0107, \u017ce maszeruj\u0105c po labiryncie musimy przyj\u0105\u0107 system oznaczania swoich dr\u00f3g typu \u201etu by\u0142em\u201d, \u201eposzed\u0142em w ten korytarz\u201d, \u201ecofn\u0105\u0142em si\u0119 tutaj i id\u0119 do innego korytarza\u201d itd. W ten spos\u00f3b wprowadzam do programu okre\u015blone stany agenta a zapami\u0119tuj\u0119 je zapisuj\u0105c do pliku\/plik\u00f3w. To nic innego jak algorytm ucz\u0105cy si\u0119 kt\u00f3ry tworzy polityk\u0119, okre\u015bla dzia\u0142anie, kt\u00f3re ma by\u0107 podejmowane w okre\u015blonych konfiguracjach przeszukiwanych korytarzy. W ko\u0144cu nasz agent znalaz\u0142 cel i jest nagroda. Nasz algorytm zapami\u0119tuje drog\u0119, ale czy jest ona optymalna?&nbsp; Niestety nasz agent b\u0119dzie musia\u0142 powt\u00f3rzy\u0107 przeszukiwanie z uwzgl\u0119dnieniem korytarzy, kt\u00f3rych jeszcze nie odwiedzi\u0142, poniewa\u017c by\u0107 mo\u017ce jest inna kr\u00f3tsza droga. Odkrywane kolejne drogi wzmacniaj\u0105 nasze optimum. Na ko\u0144cu naszych oblicze\u0144 zestawiamy wszystkie drogi i wyliczamy najkr\u00f3tsz\u0105, nasz cel jest osi\u0105gni\u0119ty. Zapami\u0119tuj\u0105c algorytm mo\u017cemy wywo\u0142a\u0107 dla niego najkr\u00f3tsz\u0105 drog\u0119 odwo\u0142uj\u0105c si\u0119 do powi\u0105zanego z nim pliku, nasz agent ju\u017c wie jak ma si\u0119 zachowa\u0107 w przypadku tego labiryntu. (tej sytuacji\/polityki, kt\u00f3r\u0105 zasta\u0142).<\/p>\n\n\n\n<p>Schemat obiegu danych dla Reinfoced Learning<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie12.png\" alt=\"\" class=\"wp-image-25821\" width=\"715\" height=\"332\"\/><\/figure><\/div>\n\n\n\n<p>Wyr\u00f3\u017cniamy nast\u0119puj\u0105ce g\u0142\u00f3wne typy uczenia Reinforced Learning <\/p>\n\n\n\n<p>Grupa algorytm\u00f3w wolnych od modeli:<br><strong>Q-learning<\/strong> jest metod\u0105 spoza polityki, w kt\u00f3rej agent uczy si\u0119 warto\u015bci na podstawie akcji pochodz\u0105cej z innej polityki,<br><strong>SARSA<\/strong> jest metod\u0105 dzia\u0142aj\u0105c\u0105 w ramach polityki, w kt\u00f3rej agent uczy si\u0119 warto\u015bci na podstawie bie\u017c\u0105cego dzia\u0142ania i wyprowadzonego od nast\u0119pnej polityki. Oznacza to \u017ce SARSA prowadzi pewna polityk\u0119 kontroli w\u0142asnych dzia\u0142a\u0144<br>R\u00f3\u017cnic\u0119 pomi\u0119dzy algorytmami najbardziej obrazowo wyja\u015bnia tzw. nauka chodzenia po klifie w taki spos\u00f3b by z niego nie spa\u015b\u0107. Problem om\u00f3wiony jest szczeg\u00f3\u0142owo tutaj <a href=\"https:\/\/studywolf.wordpress.com\/2013\/07\/01\/reinforcement-learning-sarsa-vs-q-learning\">https:\/\/studywolf.wordpress.com\/2013\/07\/01\/reinforcement-learning-sarsa-vs-q-learning<\/a><\/p>\n\n\n\n<p class=\"has-ast-global-color-8-color has-text-color\">Grupa algorytm\u00f3w bazuj\u0105cych na modelu. W tej grupie przedstawicielem wiod\u0105cym jest algorytm:<br><strong>MCTS<\/strong> &nbsp;(Monte Carlo Tree Search) &#8211;&nbsp; jak sama nazwa wskazuje, to spos\u00f3b na przeszukiwanie drzewa. Wewn\u0105trz tego drzewa jego w\u0119z\u0142y reprezentuj\u0105 stany, a kraw\u0119d\u017a mi\u0119dzy w\u0119z\u0142ami reprezentuje wyb\u00f3r, kt\u00f3rego podj\u0105\u0142by si\u0119 przy przej\u015bciu z jednego stanu do drugiego. Algorytmy Monte Carlo to klasa algorytm\u00f3w probabilistycznych. Oznacza to, \u017ce algorytm zwykle zwraca tylko przybli\u017cenie rzeczywistego wyniku. Ale w kilku przypadkach udowodniono, \u017ce d\u0105\u017cy do rzeczywistego wyniku, gdy ilo\u015b\u0107 iteracji zmierza do niesko\u0144czono\u015bci.<\/p>\n\n\n\n<p>\u017beby zrozumie\u0107 sens drzewa Monte Carlo naj\u0142atwiej jest zacz\u0105\u0107 od zrozumienia analizy Monte Carlo. Samo podej\u015bcie Monte Carlo jest szeroko stosowane w elektronice i wykorzystywane jest w analizie obni\u017cenia koszt\u00f3w produkcji. Najpro\u015bciej przedstawi\u0107 to na przyk\u0142adzie dziury w p\u0142ocie. Mamy czarny p\u0142ot i dziur\u0119 w p\u0142ocie, kt\u00f3ra ma nieznany kszta\u0142t i na dodatek jest na czarnym tle. Z daleka nie widzimy ani dziury ani nie wiemy, gdzie ona jest.&nbsp; Ale wymy\u015blili\u015bmy, \u017ce postrzelamy sobie w ten p\u0142ot karabinkiem do paintball np. z czerwon\u0105 farb\u0105. Je\u015bli trafimy w p\u0142ot to farba si\u0119 rozleje. Je\u015bli trafimy w dziur\u0119 to kula z farba przeleci i nie pozostawi \u015bladu. Oczywi\u015bcie nasza farba do kontrast decyzyjny. Strzelaj\u0105c raz przy razie wykryjemy wszystkie dziury, a obstrzeliwuj\u0105c ka\u017cd\u0105 z nich dowiemy si\u0119 jakie maj\u0105 kszta\u0142ty. Wi\u0119cej informacji jest tutaj <a href=\"https:\/\/medium.com\/@pedrohbtp\/ai-monte-carlo-tree-search-mcts-49607046b204\">https:\/\/medium.com\/@pedrohbtp\/ai-monte-carlo-tree-search-mcts-49607046b204<\/a><\/p>\n\n\n\n<p>Podstawowa mapa algorytm\u00f3w klasy reinfoced learning.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie13.png\" alt=\"\" class=\"wp-image-25822\" width=\"758\" height=\"338\"\/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"biblioteki\">Biblioteki Machine Learning<\/h1>\n\n\n\n<p>Wiele bibliotek ML typu open souce mo\u017cna znale\u017a\u0107 na portalu <a href=\"https:\/\/mloss.org\/software\/\">https:\/\/mloss.org\/software\/<\/a>. Poni\u017csze zestawienie obejmuje biblioteki najbardziej znane i stosunkowo powszechnie u\u017cywane.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WEKA<\/h2>\n\n\n\n<p>Waikato Environment for Knowledge Analysis (WEKA) to biblioteka do uczenia maszynowego, kt\u00f3ra zosta\u0142a opracowana na Uniwersytecie Waikato w Nowej Zelandii i jest prawdopodobnie najbardziej znan\u0105 bibliotek\u0105 Java. Jest to biblioteka og\u00f3lnego przeznaczenia, kt\u00f3ra jest w stanie rozwi\u0105za\u0107 wiele r\u00f3\u017cnych zada\u0144 uczenia maszynowego, takie jak klasyfikacja, regresja i grupowanie. Posiada graficzny interfejs u\u017cytkownika, interfejs wiersza polece\u0144 i Java API. Weka jest dost\u0119pna pod adresem <a href=\"https:\/\/www.cs.waikato.ac.nz\/ml\/weka\/\">https:\/\/www.cs.waikato.ac.nz\/ml\/weka\/<\/a>. Graficzne interfejsy dobrze nadaj\u0105 si\u0119 do eksploracji danych, podczas gdy interfejs API j\u0119zyka Java umo\u017cliwia opracowywanie nowych schemat\u00f3w uczenia maszynowego i korzystanie z algorytm\u00f3w w tworzonych aplikacjach. Weka jest rozpowszechniana na podstawie licencji GNU (GNU GPL), co oznacza, \u017ce mo\u017cna j\u0105 kopiowa\u0107, rozpowszechnia\u0107 i modyfikowa\u0107. nawet rozpowszechnia\u0107 to komercyjnie, ale trzeba wtedy uzyska\u0107 licencj\u0119 komercyjn\u0105. Opr\u00f3cz kilku obs\u0142ugiwanych format\u00f3w plik\u00f3w, Weka oferuje w\u0142asny domy\u015blny format danych, ARFF, aby opisa\u0107 dane za pomoc\u0105 par atrybut-&gt;dane. Sk\u0142ada si\u0119 z dw\u00f3ch cz\u0119\u015bci. Pierwsza cz\u0119\u015b\u0107 zawiera nag\u0142\u00f3wek, kt\u00f3ry okre\u015bla wszystkie atrybuty i ich typy, np. nominalne, liczba, data i ci\u0105g. Druga cz\u0119\u015b\u0107 zawiera dane, w kt\u00f3rych odpowiada ka\u017cda linia do instancji. Ostatni atrybut w nag\u0142\u00f3wku jest niejawnie uznawany za zmienn\u0105 docelow\u0105 a brakuj\u0105ce dane s\u0105 oznaczone znakiem zapytania. Na podanej powy\u017cej stronie mo\u017cna znale\u017a\u0107 odno\u015bnik do dokumentacji produktu i organizacji inteface API Java WEKA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java-ML<\/h2>\n\n\n\n<p>Java Machine Learning Library (Java-ML) to zbi\u00f3r algorytm\u00f3w uczenia maszynowego i jest skierowany przede wszystkim do in\u017cynier\u00f3w oprogramowania i programist\u00f3w. Java-ML zawiera algorytmy do wst\u0119pnego przetwarzania danych, wyboru cech, klasyfikacji i grupowania. Ponadto zawiera kilka mostk\u00f3w do Weka, aby uzyska\u0107 bezpo\u015bredni dost\u0119p do algorytm\u00f3w Weka API Java-ML. Mo\u017cna go pobra\u0107 ze strony <a href=\"http:\/\/java-ml.sourceforge.net\/\">http:\/\/java-ml.sourceforge.net\/<\/a> . Java-ML to tak\u017ce biblioteka do uczenia maszynowego og\u00f3lnego przeznaczenia. W por\u00f3wnaniu do Weka oferuje bardziej sp\u00f3jne interfejsy i implementacje najnowszych algorytm\u00f3w, kt\u00f3rych nie ma w innych pakietach, takie jak na przyk\u0142ad dynamiczne dopasowanie czasu (DTW), random forest, itd. Java-ML jest r\u00f3wnie\u017c dost\u0119pna na licencji GNU GPL i obs\u0142uguje wszystkie typy plik\u00f3w, o ile zawieraj\u0105 one jedn\u0105 pr\u00f3bk\u0119 danych w ka\u017cdym wierszu i poszczeg\u00f3lne dane s\u0105 oddzielone symbolem, takim jak przecinek, \u015brednik lub tabulator.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apache Mahout<\/h2>\n\n\n\n<p>Projekt Apache Mahout ma na celu stworzenie skalowalnej biblioteki uczenia maszynowego. Jest zbudowany na skalowalnych, rozproszonych architekturach, takich jak Hadoop, przy u\u017cyciu paradygmatu MapReduce. MapReduce s\u0142u\u017cy do przetwarzania i generowania du\u017cych zbior\u00f3w danych z wykorzystaniem klastr\u00f3w. Mahout posiada interfejs konsoli i Java API jako skalowalne algorytmy do klastrowania, klasyfikacji i filtrowanie. Potrafi rozwi\u0105za\u0107 trzy problemy biznesowe:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Polecenie pozycji: polecanie rzeczy, takich jak osoby, kt\u00f3rym spodoba\u0142 si\u0119 ten film te\u017c si\u0119 podoba\u0142o<\/li><li>Grupowanie: sortowanie dokument\u00f3w tekstowych w grupy dokument\u00f3w powi\u0105zanych tematycznie<\/li><li>Klasyfikacja: wspiera w pozycjonowaniu, jaki temat przypisa\u0107 do dokumentu bez etykiety<\/li><\/ul>\n\n\n\n<p>Mahout jest rozpowszechniany na przyjaznej komercyjnie licencji Apache, co oznacza, \u017ce mo\u017cna go u\u017cywa\u0107, o ile zostanie do\u0142\u0105czona licencja Apache i wy\u015bwietlana jest w produkowanym programie Informacja o prawach autorskich. Biblioteka jest do pobrania ze strony <a href=\"https:\/\/mahout.apache.org\/\">https:\/\/mahout.apache.org\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apache Spark<\/h2>\n\n\n\n<p>Apache Spark, to platforma do przetwarzania danych na du\u017c\u0105 skal\u0119 Hadoop, ale w przeciwie\u0144stwie do Mahout nie jest powi\u0105zany z paradygmatem MapReduce. Zamiast tego u\u017cywa pami\u0119ci podr\u0119cznych w pami\u0119ci do wyodr\u0119bnienia roboczego zestawu danych, przetworzenia go i powt\u00f3rzenia zapytania. Jest to raportowane do dziesi\u0119ciu razy szybciej ni\u017c implementacja Mahouta, kt\u00f3ra dzia\u0142a bezpo\u015brednio z danymi przechowywanymi na dysku. Mo\u017cna go pobra\u0107 z <a href=\"https:\/\/spark.apache.org\/\">https:\/\/spark.apache.org\/<\/a> . Istnieje wiele modu\u0142\u00f3w zbudowanych na platformie Spark, na przyk\u0142ad GraphX \u200b\u200bdo przetwarzania wykres\u00f3w.&nbsp; Przesy\u0142anie strumieniowe do przetwarzania strumieni danych w czasie rzeczywistym i MLlib dla biblioteki uczenia maszynowego obejmuj\u0105ca klasyfikacj\u0119, regresj\u0119, wsp\u00f3lne filtrowanie, grupowanie, wymiarowo\u015b\u0107 redukcja i optymalizacja. Spark&#8217;s MLlib mo\u017ce u\u017cywa\u0107 \u017ar\u00f3d\u0142a danych opartego na Hadoop, na przyk\u0142ad Hadoop Distributed File System (HDFS) lub HBase, a tak\u017ce pliki lokalne. Obs\u0142ugiwane s\u0105 nast\u0119puj\u0105ce typy danych:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Lokalne wektory &#8211; s\u0105 przechowywane na jednym komputerze. G\u0119ste wektory s\u0105 przedstawiane jako tablica warto\u015bci podw\u00f3jnie wpisanych, na przyk\u0142ad (2,0, 0,0, 1,0, 0,0), podczas gdy wektor rzadki jest przedstawiany przez rozmiar wektora, tablic\u0119 indeks\u00f3w i tablic\u0119 warto\u015bci, na przyk\u0142ad [4, (0, 2), (2.0, 1.0)]. <ul><li>wektory w rzadkich reprezentacjach s\u0105: d\u0142ugie (d\u0142ugo\u015b\u0107 |V|= 20 000 &#8211; 50 000) i rzadkie (wi\u0119kszo\u015b\u0107 element\u00f3w to 0 czyli maja du\u017c\u0105 liczb\u0119 zer)<\/li><li>wektory w g\u0119stych reprezentacjach s\u0105: kr\u00f3tkie (d\u0142ugo\u015b\u0107 50-1000) i g\u0119ste (wi\u0119kszo\u015b\u0107 element\u00f3w to nie 0) <\/li><\/ul><\/li><li>Punkt oznaczony (labeled point) &#8211; kt\u00f3ry jest u\u017cywany do nadzorowanych algorytm\u00f3w uczenia si\u0119 i sk\u0142ada si\u0119 z lokalnego wektora jest oznaczony podw\u00f3jnie wpisanymi warto\u015bciami klas. Etykieta mo\u017ce by\u0107 indeksem klasy, wynik binarny lub lista wielu indeks\u00f3w klas (klasyfikacja wieloklasowa). Na przyk\u0142ad oznaczony g\u0119sty wektor jest przedstawiany jako [1,0, (2,0, 0,0, 1,0, 0,0)].<\/li><li>Macierze lokalne &#8211; kt\u00f3re przechowuj\u0105 g\u0119st\u0105 macierz na pojedynczej maszynie. Macierz lokalna zawiera indeksy wierszy i kolumn zapisywane w postaci liczb ca\u0142kowitych oraz warto\u015bci, przechowywane na jednym komputerze. MLlib obs\u0142uguje g\u0119ste macierze, kt\u00f3rych warto\u015bci wej\u015bciowe s\u0105 przechowywane w jednowymiarowej tablicy. Na przyk\u0142ad poni\u017csza g\u0119sta macierz<br><br><img loading=\"lazy\" decoding=\"async\" width=\"60\" height=\"44\" class=\"wp-image-25842\" style=\"width: 60px;\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie14.png\" alt=\"\"><br><br> Mo\u017ce by\u0107 zapisana jako jednowymiarowa tablica [1.0, 3.0, 5.0, 2.0, 4.0, 6.0] z indeksem wymiaru matrycy (3 2)<\/li><li>Rozproszone macierze &#8211; dzia\u0142aj\u0105 na danych przechowywanych w Resilient Distributed. Zestaw danych (RDD), kt\u00f3ry reprezentuje zbi\u00f3r element\u00f3w, na kt\u00f3rych mo\u017cna operowa\u0107 r\u00f3wnolegle. Istniej\u0105 trzy reprezentacje: <ul><li>macierz wierszy,<\/li><li>indeksowana macierz wierszy<\/li><li>macierz wsp\u00f3\u0142rz\u0119dnych <\/li><\/ul><\/li><\/ul>\n\n\n\n<p>wi\u0119cej informacji mo\u017cna znale\u017a\u0107 pod linkiem <a href=\"https:\/\/spark.apache.org\/docs\/2.2.0\/mllib-data-types.html\">https:\/\/spark.apache.org\/docs\/2.2.0\/mllib-data-types.html<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deeplearning4j<\/h2>\n\n\n\n<p>Deeplearning4j lub DL4J to biblioteka do g\u0142\u0119bokiego uczenia napisana w j\u0119zyku Java. Jest tak\u017ce dost\u0119pna jako platforma g\u0142\u0119bokiego uczenia na pojedynczym komputerze, kt\u00f3ra obejmuje i obs\u0142uguje r\u00f3\u017cne platformy struktury sieci neuronowych takie jak sieci neuronowe z wyprzedzeniem, RBM, konwolucyjne sieci neuronowe, sieci g\u0142\u0119bokich przekona\u0144, autokodery i inne. DL4J mo\u017ce rozwi\u0105zywa\u0107 r\u00f3\u017cne problemy, takie jak identyfikacja twarzy, g\u0142os\u00f3w, spamu lub oszustw w handlu elektronicznym. Deeplearning4j jest rozpowszechniany na licencji Apache 2.0. do pobrania tutaj <a href=\"https:\/\/deeplearning4j.org\/\">https:\/\/deeplearning4j.org\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mallet<\/h2>\n\n\n\n<p>Machine Learning for Language Toolkit (MALLET) to du\u017ca biblioteka algorytm\u00f3w i narz\u0119dzi do przetwarzania naturalnego j\u0119zyka. MALLET by\u0107 u\u017cywany w r\u00f3\u017cnych zadaniach, takich jak klasyfikacja dokument\u00f3w, grupowanie dokument\u00f3w, wyodr\u0119bnianie informacji i modelowanie temat\u00f3w. Zawiera interfejs wiersza polece\u0144, a tak\u017ce interfejs API j\u0119zyka Java dla kilku algorytm\u00f3w, takich jak Naiwny Bayes, HMM, utajone modele tematyczne Dirichleta, regresja logistyczna i warunkowa pola losowe. MALLET jest dost\u0119pny na zasadach Common Public License, co oznacza, \u017ce \u200b\u200bmo\u017cnago u\u017cywa\u0107 w zastosowaniach komercyjnych. Mo\u017cna go pobra\u0107 ze strony <a href=\"http:\/\/mallet.cs.umass.edu\/\">http:\/\/mallet.cs.umass.edu\/<\/a>. Instancja MALLET jest reprezentowana przez nazw\u0119, etykiet\u0119, dane i \u017ar\u00f3d\u0142o. Istniej\u0105 dwie metody importowania danych do formatu MALLET<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Instancja na plik<\/li><li>Wyst\u0105pienie w wierszu<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Encog Machine Learning Framework<\/h2>\n\n\n\n<p>Encog to framework do uczenia maszynowego w Javie \/ C #, kt\u00f3ry zosta\u0142 opracowany przez Jeffa Heatona, naukowca, specjalisty analizy danych. Obs\u0142uguje normalizacj\u0119 i przetwarzanie danych oraz szereg zaawansowanych algorytm\u00f3w taki jak SVM, sieci neuronowe, sieci bayesowskie, ukryte modele Markowa. Programowanie genetyczne i algorytmy genetyczne. Jest aktywnie rozwijany od 2008 roku. Obs\u0142uguje wielow\u0105tkowo\u015b\u0107, co zwi\u0119ksza wydajno\u015b\u0107 w systemach wielordzeniowych. Mo\u017cna go znale\u017a\u0107 pod adresem https: <a href=\"https:\/\/www.heatonresearch.com\/encog\/\">https:\/\/www.heatonresearch.com\/encog\/<\/a> .<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ELKI<\/h2>\n\n\n\n<p>ELKI jest bibliotek\u0105 do tworzenia aplikacji KDD obs\u0142ugiwanych przez struktury indeksowe, z naciskiem na uczenie si\u0119 bez nadzoru. Zapewnia r\u00f3\u017cne implementacje do analizy skupie\u0144 do wykrywania warto\u015bci odstaj\u0105cych. Zapewnia struktury indeks\u00f3w, takie jak R * -tree, w celu zwi\u0119kszenia wydajno\u015bci i skalowalno\u015bci. Do tej pory jest szeroko stosowany w obszarach badawczych przez student\u00f3w i wydzia\u0142y, a ostatnio zyska\u0142 zainteresowanie innych stron. ELKI u\u017cywa licencji AGPLv3 strona biblioteki <a href=\"https:\/\/elki-project.github.io\">https:\/\/elki-project.github.io<\/a><\/p>\n\n\n\n<p>Opis <strong>R*-tree<\/strong> <a href=\"https:\/\/en.wikipedia.org\/wiki\/R*_tree\">https:\/\/en.wikipedia.org\/wiki\/R*_tree<\/a><\/p>\n\n\n\n<p><strong>KDD <\/strong>&#8211; Knowledge Discovery from Databases &#8211; zwany tak\u017ce Data Mining &#8211; zbi\u00f3r technik obs\u0142ugi baz danych, statystyki i uczenia maszynowego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MOA<\/h2>\n\n\n\n<p>Massive Online Analysis (MOA) to profesjonalna kolekcja r\u00f3\u017cnych algorytm\u00f3w uczenia maszynowego, kt\u00f3re obejmuj\u0105 algorytmy klasyfikacji, regresji, grupowania, wykrywania warto\u015bci odstaj\u0105cych, wykrywania dryfu koncepcji i systemu rekomendacji oraz narz\u0119dzia do oceny. Wszystkie algorytmy s\u0105 przeznaczone do uczenia maszynowego na du\u017c\u0105 skal\u0119, z koncepcj\u0105 dryftu i obs\u0142uguj\u0105 du\u017ce strumienie danych w czasie rzeczywistym. Dzia\u0142a r\u00f3wnie\u017c i dobrze integruje si\u0119 z Weka. Jast dost\u0119pna jako licencja GNU i mo\u017cna ja pobra\u0107 ze strony <a href=\"https:\/\/moa.cms.waikato.ac.nz\">https:\/\/moa.cms.waikato.ac.nz<\/a><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"wsteppodstawowe\">Wst\u0119p do metod Machine Learning podstawowe poj\u0119cia<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Normalizacja danych (zdemoralizowane SQL)<\/h3>\n\n\n\n<p>Techniki normalizacji danych dostosowuj\u0105 zbi\u00f3r danych do formatu, kt\u00f3rego algorytm uczenia maszynowego oczekuje jako dane wej\u015bciowe, a nawet mog\u0105 pom\u00f3c algorytmowi w szybszej nauce i osi\u0105gni\u0119ciu lepszej wydajno\u015bci.<\/p>\n\n\n\n<p>Wiele zestaw\u00f3w narz\u0119dzi do uczenia maszynowego automatycznie normalizuje i standaryzuje dane. G\u0142\u00f3wne cele normalizacji to<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Organizacja danych tak, aby wygl\u0105da\u0142y podobnie we wszystkich rekordach i polach.<\/li><li>Zwi\u0119ksza sp\u00f3jno\u015b\u0107 typ\u00f3w wej\u015b\u0107, prowadz\u0105c do oczyszczania, generowania potencjalnych klient\u00f3w, segmentacji i wy\u017cszej jako\u015bci danych.<\/li><li>Eliminacja nieustrukturyzowanych danych i nadmiarowo\u015bci (duplikat\u00f3w) w celu zapewnienia logicznego przechowywania danych<\/li><\/ul>\n\n\n\n<p>Wyr\u00f3\u017cniamy nast\u0119puj\u0105ce formy normalizacji.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>1NF<\/strong><\/li><\/ol>\n\n\n\n<p>Najbardziej podstawow\u0105 form\u0105 normalizacji danych jest 1NFm, kt\u00f3ra zapewnia brak powtarzaj\u0105cych si\u0119 wpis\u00f3w w grupie. Aby ka\u017cdy wpis zosta\u0142 uznany za 1NF, musi mie\u0107 tylko jedn\u0105 pojedyncz\u0105 warto\u015b\u0107 dla ka\u017cdej kom\u00f3rki, a ka\u017cdy rekord musi by\u0107 unikalny.<\/p>\n\n\n\n<p><span style=\"color:#f10f07\" class=\"has-inline-color\">Przyk\u0142ad<\/span> w omawianej wcze\u015bniej bazie danych wypo\u017cyczalni samochod\u00f3w ka\u017cdy klient musi mie\u0107 unikalny zestaw danych. Idealna krotka spe\u0142niaj\u0105ca ten wym\u00f3g to imi\u0119 i nazwisko, adres, \u2026 i PESEL ten ostatni element jest absolutnie niepowtarzalny i w przypadku, kiedy przy normalizacji usuniemy IdKlienta (klucz) to dalej b\u0119dzie to niepowtarzalny rekord.<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\"><li><strong>2NF<\/strong><\/li><\/ol>\n\n\n\n<p>Aby by\u0107 w regule 2NF, dane musz\u0105 najpierw dotyczy\u0107 wszystkich wymaga\u0144 1NF. Nast\u0119pnie dane musz\u0105 mie\u0107 tylko jeden klucz podstawowy. Aby oddzieli\u0107 dane i mie\u0107 tylko jeden klucz podstawowy, wszystkie podzbiory danych, kt\u00f3re mo\u017cna umie\u015bci\u0107 w wielu wierszach, nale\u017cy umie\u015bci\u0107 w osobnych tabelach. Nast\u0119pnie mo\u017cna tworzy\u0107 relacje za pomoc\u0105 nowych etykiet kluczy obcych.<\/p>\n\n\n\n<p><span style=\"color:#ff0000\" class=\"has-inline-color\">Przyk\u0142ad<\/span> w naszej bazie wypo\u017cyczalni samochod\u00f3w g\u0142\u00f3wny klucz to Id Wypo\u017cyczenie (centrum gwiazdy). Do ka\u017cdego wypo\u017cyczenia dodasz Klienta bez jego klucza co oznacza, \u017ce w\u0142a\u015bnie utworzono relacj\u0119 z obcym kluczem. W jednym rekordzie (krotce) umieszczono zestaw dw\u00f3ch tabel bez konieczno\u015bci zadawania rozbudowanego pytania SQL<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\"><li><strong>3NF<\/strong><\/li><\/ol>\n\n\n\n<p>Aby dane znalaz\u0142y si\u0119 w regule 3NF, musz\u0105 najpierw spe\u0142nia\u0107 wszystkie wymagania 2NF. Nast\u0119pnie dane w tabeli musz\u0105 by\u0107 zale\u017cne tylko od klucza podstawowego. Je\u015bli klucz podstawowy zostanie zmieniony, wszystkie dane, na kt\u00f3re ma to wp\u0142yw, nale\u017cy umie\u015bci\u0107 w nowej tabeli.<\/p>\n\n\n\n<p><span style=\"color:#ff0000\" class=\"has-inline-color\">Przyk\u0142ad<\/span> nasza baza danych wypo\u017cyczalni wymaga konieczno\u015bci pogrupowania ze wzgl\u0119du np. na samochody spe\u0142niaj\u0105ce norm\u0119 poni\u017cej Euro3 i powy\u017cej Euro3 a jedyne czym dysponujemy to modele samochod\u00f3w. W tym przypadku musimy zmieni\u0107 nasz klucz podstawowy tj. Id Klient i utworzy\u0107 nowe tabele z podzia\u0142em, kt\u00f3ry nas interesuje do dalszych oblicze\u0144.<\/p>\n\n\n\n<p>Tak przygotowana baza danych mo\u017ce (a raczej powinna) podlega\u0107 kolejnym koniecznym modyfikacjom, kt\u00f3re zostan\u0105 tutaj jedynie wymienione:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Czyszczenie danych np. usuwanie danych powtarzaj\u0105cych si\u0119 \u2013 Data clearing<\/li><li>Uzupe\u0142nianie warto\u015bci brakuj\u0105cych &#8211; Filling missing values<\/li><li>Usuwanie warto\u015bci mocno odstaj\u0105cych \u2013 ewidentne b\u0142\u0119dy przypadkowe &#8211; Remove outliers<\/li><li>Dostosowanie danych &#8211; Data transformation<\/li><li>Usuniecie zb\u0119dnych danych &#8211; Data reduction<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Skalowanie, klasyfikacja danych<\/h3>\n\n\n\n<p>Za\u0142\u00f3\u017cmy ze posiadamy dost\u0119p do danych jak w zestawieniu poni\u017cej<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1390\" height=\"325\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie15.png\" alt=\"\" class=\"wp-image-25845\"\/><\/figure>\n\n\n\n<p>Nasz cel to stworzenie algorytmu, kt\u00f3ry zoptymalizuje produkcj\u0119 wektory to nasze kolumny instancje\/argumenty to wiersze.&nbsp; Wywo\u0142uj\u0105c jeden z element\u00f3w argumentu mamy dost\u0119p do wielu element\u00f3w z r\u00f3\u017cnych kolumn. To oznacza, \u017ce mo\u017cemy utworzy\u0107 wiele odwzorowa\u0144 y=f(x) w zale\u017cno\u015bci od tego jakimi zbiorami modeli chcemy dysponowa\u0107.<\/p>\n\n\n\n<p>To oznacza r\u00f3wnie\u017c, jak bardzo r\u00f3\u017cnie mo\u017cemy dobra\u0107 warto\u015bci atrybut\u00f3w i jak r\u00f3\u017cne zestawy zale\u017cno\u015bci mo\u017cemy uzyska\u0107. Na przyk\u0142ad numer detalu to kombinacja liczbowa, maszyna to tekst, materia\u0142 to tekst i liczba lub kombinacje tych dw\u00f3ch. Aby lepiej zrozumie\u0107 typy warto\u015bci, przyjrzyjmy si\u0119 poni\u017cszym definicjom:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Dane nominalne (jako\u015bciowe) &#8211; sk\u0142adaj\u0105 si\u0119 z danych, kt\u00f3re wzajemnie si\u0119 wykluczaj\u0105 i nie s\u0105 uporz\u0105dkowane. Przyk\u0142ady: kolor oczu, stan cywilny, rodzaj posiadanego samochodu itd. w naszym przyk\u0142adzie to \u2013 spos\u00f3b wykonania.<\/li><li>Dane porz\u0105dkowe &#8211; odpowiadaj\u0105 kategoriom, w kt\u00f3rych porz\u0105dek ma znaczenie, ale nie r\u00f3\u017cnica mi\u0119dzy warto\u015bciami, takimi jak poziom b\u00f3lu, oceny z list\u00f3w uczni\u00f3w, ocena jako\u015bci obs\u0142ugi, oceny film\u00f3w. Dan\u0105 porz\u0105dkow\u0105 jest np. numer detalu w tabeli powy\u017cej<\/li><li>Dane interwa\u0142owe (przedzia\u0142owe , r\u00f3wnomierne) &#8211; sk\u0142adaj\u0105 si\u0119 z danych, w kt\u00f3rych r\u00f3\u017cnica mi\u0119dzy dwiema warto\u015bciami osi\u0105ga warto\u015bci z przedzia\u0142u, ale nie ma poj\u0119cia miejsca pustego, na przyk\u0142ad standaryzowany wyniki egzaminu, temperatura w stopniach Fahrenheita lub jak w naszym przyk\u0142adzie czas produkcji detalu. Czas produkcji za ten sam detal b\u0119dzie oscylowa\u0142 wok\u00f3\u0142 jakiej\u015b \u015bredniej wytwarzania b\u0119dzie zawsze wi\u0119kszy od zera i osi\u0105ga\u0142 warto\u015b\u0107 X, ale wykonanie detalu nie mo\u017ce by\u0107 polem pustym.<\/li><li>Dane wsp\u00f3\u0142czynnika (wsp\u00f3\u0142czynnikowe, ilorazowe) &#8211; maj\u0105 wszystkie w\u0142a\u015bciwo\u015bci zmiennej interwa\u0142owej, a tak\u017ce jasn\u0105 definicja odwzorowania, charakteryzuje si\u0119 sta\u0142ymi stosunkami i bezwzgl\u0119dnym zerem, np. gdy zmienna argumentu jest pusta, to zmienna funkcji b\u0119dzie brakuj\u0105ca, ale znaj\u0105c model b\u0119dzie mo\u017cliwo\u015b\u0107 odwzorowania na podstawie innych pe\u0142nych danych zestawu. Zmienne takie jak ceny akcji, tygodniowe wydatki na \u017cywno\u015b\u0107 s\u0105 zmiennymi proporcjonalnymi.<\/li><\/ul>\n\n\n\n<p>Zatem skalowanie to w przypadku uczenia maszynowego to nie tylko efekt miary np. km\/h, temperatura, ale tak\u017ce typ danej w kontek\u015bcie sk\u0142adni i jej element\u00f3w cyfrowych i\/lub tekstowych. Dla przejrzysto\u015bci zagadnienia poni\u017csze zestawienie u\u0142atwia ocen\u0119 typu danej<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1221\" height=\"524\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie16.png\" alt=\"\" class=\"wp-image-25851\"\/><\/figure>\n\n\n\n<p>Przy czym dane nominalne i porz\u0105dkowe odpowiadaj\u0105 warto\u015bciom dyskretnym, natomiast dane interwa\u0142owe (przedzia\u0142u) i dane wsp\u00f3\u0142czynnikowe mog\u0105 r\u00f3wnie\u017c odpowiada\u0107 warto\u015bciom ci\u0105g\u0142ym.<\/p>\n\n\n\n<p>Nale\u017cy przy tym zauwa\u017cy\u0107, \u017ce w uczeniu nadzorowanym skalowanie pomiaru i warto\u015bci atrybut\u00f3w, kt\u00f3re chcemy przewidzie\u0107, dyktuje rodzaj algorytmu maszynowego, kt\u00f3rego mo\u017cna u\u017cy\u0107. Na przyk\u0142ad przewidywanie warto\u015bci dyskretnych z ograniczonego zbioru. Lista danych przyjmowana przez konkretny algorytm nazywana jest klasyfikacj\u0105 i mo\u017cna j\u0105 uzyska\u0107 za pomoc\u0105 drzew decyzyjnych, dla element\u00f3w dyskretnych, natomiast dla przewidywania warto\u015bci ci\u0105g\u0142ych (np. skala temperatury) nazywane s\u0105 regresj\u0105, kt\u00f3r\u0105 mo\u017cna osi\u0105gn\u0105\u0107 za pomoc\u0105 drzew modelowych lub modeli.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zestaw (zbi\u00f3r) danych<\/h3>\n\n\n\n<p>Skategoryzowanie danych to tylko krok w eksploracji danych. Nast\u0119pnym krokiem, zagadnieniem jest sprawdzenie, sk\u0105d pochodz\u0105 dane. Gromadzone dane mog\u0105 by\u0107 bardzo niezorganizowane i w bardzo r\u00f3\u017cnych formatach, co jest typowym wynikiem odczytu (zrzutu)&nbsp; z bazy\/baz\/tabel danych, Internetu, systemu plik\u00f3w lub innych dokument\u00f3w. Wi\u0119kszo\u015b\u0107 narz\u0119dzi do uczenia maszynowego wymaga prezentacji danych w okre\u015blonym formacie w celu wygenerowania w\u0142a\u015bciwego wyniku. Mamy dwie mo\u017cliwo\u015bci: obserwowa\u0107 dane z istniej\u0105cych \u017ar\u00f3de\u0142 lub generowa\u0107 dane za pomoc\u0105 ankiet, symulacji i eksperyment\u00f3w. Ka\u017cda z tych metod ma za zadanie zebranie i sformatowanie w\u0142a\u015bciwych danych do w\u0142a\u015bciwego algorytmu.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Wyszukiwanie i\/lub obserwacja danych<\/h4>\n\n\n\n<p>Jak wspomniano wcze\u015bnie g\u0142\u00f3wnym \u017ar\u00f3d\u0142em to strony WWW i dost\u0119p do danych jak danych GUS jak zbiory danych treningowych dost\u0119pnych poprzez Internet W tym przypadku najistotniejsza jest ich wiarygodno\u015b\u0107 G\u0142\u00f3wn\u0105 wad\u0105 gromadzonych danych jest to, \u017ce gromadzenie ich wymaga czasu i przestrzeni. Ponadto te dane obejmuj\u0105 tylko to, co si\u0119 wydarzy\u0142o; na przyk\u0142ad intencje i wewn\u0119trzne i zewn\u0119trzne motywacje nie s\u0105 gromadzone. Wreszcie takie dane mog\u0105 by\u0107 zaszumione, niekompletne, niesp\u00f3jne, a nawet mo\u017ce si\u0119 z czasem zmieni\u0107. Inn\u0105 opcj\u0105 jest zbieranie pomiar\u00f3w z czujnik\u00f3w takich jak bezw\u0142adno\u015bciowe i lokalizacyjne, czujniki w urz\u0105dzeniach mobilnych, czujniki \u015brodowiskowe i klucz do monitorowania agent\u00f3w oprogramowania wska\u017aniki efektywno\u015bci. Ten typ danych to s\u0105 najcenniejsze zbiory. Dane ruchowe operator\u00f3w, dane \u015brodowiskowe, kt\u00f3re wraz z po\u0142\u0105czeniem z bazami danych zak\u0142ad\u00f3w przemys\u0142owych umo\u017cliwiaj\u0105 wykrycie niezliczonej ilo\u015bci korelacji i zastosowa\u0144 ML oraz AI.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Tworzenie w\u0142asnych zbior\u00f3w danych<\/h4>\n\n\n\n<p>Alternatywnym podej\u015bciem jest wygenerowanie danych, na przyk\u0142ad za pomoc\u0105 ankiety. W projektowaniu ankiet musimy zwr\u00f3ci\u0107 uwag\u0119 na pr\u00f3bkowanie danych; czyli kim s\u0105 respondenci bior\u0105cy udzia\u0142 w ankiecie. Pozyskujemy dane tylko od tych respondent\u00f3w, kt\u00f3rzy s\u0105 dost\u0119pni i ch\u0119tni do odpowiedzi. Respondenci mog\u0105 r\u00f3wnie\u017c udzieli\u0107 odpowiedzi, kt\u00f3re s\u0105 zgodne z ich obrazem siebie i oczekiwaniami badacza.<\/p>\n\n\n\n<p>Alternatywnie dane mog\u0105 by\u0107 zbierane za pomoc\u0105 symulacji, w kt\u00f3rych ekspert dziedzinowy okre\u015bla model zachowania u\u017cytkownik\u00f3w na poziomie mikro. Na przyk\u0142ad symulacja t\u0142umu wymaga okre\u015blenia, jak r\u00f3\u017cne typy u\u017cytkownik\u00f3w b\u0119d\u0105 si\u0119 zachowywa\u0107 w t\u0142umie. Niekt\u00f3re przyk\u0142ady to pod\u0105\u017canie za t\u0142umem, szukanie ucieczki i tak dalej. Symulacj\u0119 mo\u017cna nast\u0119pnie przeprowadzi\u0107 w r\u00f3\u017cnych warunkach, aby zobaczy\u0107, co si\u0119 stanie. Symulacje s\u0105 odpowiednie do badania zjawisk makro i zachowa\u0144 emergentnych, jednak zazwyczaj trudno je zweryfikowa\u0107 empirycznie. Co wi\u0119cej, mozna projektowa\u0107 eksperymenty, aby dok\u0142adnie obj\u0105\u0107 wszystkie mo\u017cliwe wyniki, w kt\u00f3rych wszystkie zmienne s\u0105 sta\u0142e i manipulowa\u0107 tylko jedn\u0105 zmienn\u0105 na raz. Jest to najbardziej kosztowne podej\u015bcie, ale zazwyczaj zapewnia najlepsz\u0105 jako\u015b\u0107.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Uzupe\u0142nianie brakuj\u0105cych warto\u015bci<\/h3>\n\n\n\n<p>Algorytmy uczenia maszynowego generalnie nie dzia\u0142aj\u0105 dobrze z brakuj\u0105cymi warto\u015bciami. Rzadko spotykanymi wyj\u0105tkami s\u0105 drzewa decyzyjne, klasyfikator Naive Bayes i niekt\u00f3re algorytmy ucz\u0105ce si\u0119 na podstawie regu\u0142. To jest bardzo wa\u017cne, aby zrozumie\u0107 i przeanalizowa\u0107 zbi\u00f3r pod katem pustych p\u00f3l, dlaczego brakuje warto\u015bci. Mo\u017ce brakowa\u0107 z powodu wielu przyczyn, takie jak b\u0142\u0105d przypadkowy, b\u0142\u0105d systematyczny i szum czujnika. Najwa\u017cniejsze jest by umie\u0107 zidentyfikowa\u0107 w zbiorze brakuj\u0105ce dane. Istnieje wiele sposob\u00f3w radzenia sobie z brakuj\u0105cymi warto\u015bciami, jak pokazano w poni\u017cszej li\u015bcie.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Usuni\u0119cie instancji &#8211; je\u015bli jest wystarczaj\u0105co du\u017co danych i tylko kilka nieistotnych brak\u00f3w To w przypadku wyst\u0105pienia niekt\u00f3rych brak\u00f3w danych mo\u017cna bezpiecznie usun\u0105\u0107 te wyst\u0105pienia.<\/li><li>Usuni\u0119cie atrybutu &#8211; usuni\u0119cie atrybutu ma sens, gdy wi\u0119kszo\u015b\u0107 brakuj\u0105cych warto\u015bci to warto\u015bci sta\u0142e lub atrybut jest silnie skorelowany z kolejnym atrybutem.<\/li><li>Przypisanie specjalnej warto\u015bci \u2013 mo\u017ce si\u0119 zdarzy\u0107, \u017ce brakuje warto\u015bci z wa\u017cnych powod\u00f3w, np. warto\u015b\u0107 jest poza zakresem, warto\u015b\u0107 atrybutu dyskretnego nie jest zdefiniowana oraz gdy warto\u015b\u0107 jest niemo\u017cliwa do uzyskania lub zmierzenia. Na przyk\u0142ad, je\u015bli dana osoba nigdy nie oceni\u0142a filmu lub jego ocena w tym filmie nie istnieje.<\/li><li>Wyznaczenie \u015bredniej warto\u015bci atrybutu &#8211; je\u015bli mamy ograniczon\u0105 liczb\u0119 wyst\u0105pie\u0144, a ka\u017cde usuni\u0119cie instancji lub atrybut\u00f3w stanowi powa\u017cne zubo\u017cenie zbioru to w takim przypadku mo\u017cemy oszacowa\u0107 brakuj\u0105ce warto\u015bci, przypisuj\u0105c \u015bredni\u0105 warto\u015b\u0107 atrybutu.<\/li><li>Prognozowanie warto\u015b\u0107 z na postawie innych atrybut\u00f3w \u2013 mo\u017cna pr\u00f3bowa\u0107 przewidywa\u0107 warto\u015b\u0107 na podstawie poprzednich wpis\u00f3w, je\u015bli atrybut posiada zale\u017cno\u015bci zbie\u017cne korelacyjne<\/li><\/ul>\n\n\n\n<p>Warto\u015bci mo\u017ce brakowa\u0107 z wielu powod\u00f3w, dlatego wa\u017cne jest, aby zrozumie\u0107, dlaczego brakuje warto\u015bci, i jaki jest pow\u00f3d, \u017ce jest ona nieobecna lub uszkodzona.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Czyszczenie danych<\/h3>\n\n\n\n<p>Czyszczenie danych, znane r\u00f3wnie\u017c jako szorowanie danych, to proces sk\u0142adaj\u0105cy si\u0119 z nast\u0119puj\u0105cych krok\u00f3w:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Identyfikacja niedok\u0142adnych, niekompletnych, nieistotnych lub uszkodzonych danych w celu usuni\u0119cia ich z dalszego przetwarzania<\/li><li>Parsowanie danych (sk\u0142adanie w okre\u015blone zbiory) poprzez wydobywanie interesuj\u0105cych informacji lub sprawdzanie, czy ci\u0105g danych ma akceptowalny format<\/li><li>Przekszta\u0142cenie danych do wsp\u00f3lnego formatu kodowania, na przyk\u0142ad UTF-8 lub int32, skali czasu lub znormalizowanego zakresu<\/li><li>Przekszta\u0142cenie danych we wsp\u00f3lny schemat danych; na przyk\u0142ad, je\u015bli zbieramy pomiary temperatury z r\u00f3\u017cnych typ\u00f3w czujnik\u00f3w, mo\u017cemy chcie\u0107, aby mia\u0142y tak\u0105 sam\u0105 struktur\u0119 np. taki sam element sondy pomiarowej przyk\u0142adowo tylko sonda PT100 a nie np. Pt100 i Pt 1000.<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Usuwanie warto\u015bci odstaj\u0105cych<\/h3>\n\n\n\n<p>Warto\u015bci odstaj\u0105ce w danych to warto\u015bci, kt\u00f3re r\u00f3\u017cni\u0105 si\u0119 od innych warto\u015bci w serii i wp\u0142ywaj\u0105 w du\u017cym stopniu na wszystkie metody uczenia si\u0119. Mog\u0105 to by\u0107 warto\u015bci ekstremalne, kt\u00f3re mo\u017cna wykry\u0107 za pomoc\u0105 przedzia\u0142\u00f3w ufno\u015bci i usun\u0105\u0107 za pomoc\u0105 progu. Najlepszym podej\u015bciem jest wizualizacja danych i sprawdzenie wizualizacji w celu wykrycia nieprawid\u0142owo\u015bci. Dlaczego to takie istotne? Za\u0142\u00f3\u017cmy, \u017ce obrabiarka frezuje dany element w okre\u015blonym czasie jednak\u017ce w trakcie zbierania pomiar\u00f3w uszkodzeniu uleg\u0142 frez w wyniku czego dany element zosta\u0142 wykonany (nie istotne czy \u017ale czy dobrze) w innym ni\u017c typowy czas. U\u017cycie tego zbioru jako danych treningowych bez wy\u0142apania anomalii b\u0119dzie stanowi\u0107 powa\u017cny b\u0142\u0105d. Taki element nale\u017cy wykluczy\u0107 poniewa\u017c mo\u017ce mie\u0107 wp\u0142yw na wy\u0142apanie anomalii w przysz\u0142o\u015bci.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Transformacja (dostosowywanie) danych<\/h3>\n\n\n\n<p>Techniki transformacji danych dostosowuj\u0105 zbi\u00f3r danych do formatu, kt\u00f3ry jest u\u017cywany przez uczenie maszynowe. Algorytm oczekuje jako danych wej\u015bciowych takich danych kt\u00f3re jest w stanie samodzielnie przetwarza\u0107. Jest to szczeg\u00f3lnie istotne w przypadku algorytm\u00f3w zastosowanych do dzia\u0142a\u0144 w czasie rzeczywistym, gdzie np. algorytm predykcji ma s\u0142u\u017cy\u0107 w podejmowaniu decyzji dla regulacji automatyki steruj\u0105cej. Nazywa si\u0119 to r\u00f3wnie\u017c przetwarzaniem danych lub przepychaniem danych.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Transformacja poosiowa (przesuwanie danych po osi lub wektorze)<\/h5>\n\n\n\n<p>Najbardziej znana jest standaryzacja rozk\u0142adu Gaussa, kt\u00f3ra zak\u0142ada, \u017ce w celu wykonania stosownych oblicze\u0144 sprowadzamy dowolny rozk\u0142ad normalny do rozk\u0142adu standaryzowanego w taki spos\u00f3b, aby \u015brednia warto\u015b\u0107 wynosi\u0142a \u00b5=0, a odchylenie \u03c3=1. Transformacje wykonujemy z zastosowaniem poni\u017cszej zale\u017cno\u015bci.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie17.png\" alt=\"\" class=\"wp-image-25853\" width=\"167\" height=\"48\"\/><\/figure><\/div>\n\n\n\n<p>gdzie &nbsp;&nbsp;&nbsp; \u03bc- \u015brednia rozk\u0142adu<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u03ed-odchylenie standardowe<\/p>\n\n\n\n<p><br>Wiele zestaw\u00f3w narz\u0119dzi do uczenia maszynowego automatycznie normalizuje i standaryzuje dane.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie18.png\" alt=\"\" class=\"wp-image-25854\" width=\"726\" height=\"295\"\/><\/figure><\/div>\n\n\n\n<p>Przyk\u0142ad oblicze\u0144: mamy rozk\u0142ad gdzie \u03bc=7 a \u03ed=6 \u2192 N(7,6). Znale\u017a\u0107 zmienn\u0105 \u201eZ\u201d dla rozk\u0142adu standaryzowanego przy danym X=4 \u2192 Z=(4-7)\/6=-1\/3 ~ N(0,1).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Dyskretyzacja<\/h5>\n\n\n\n<p>Ostatni\u0105 omawiana technik\u0105 transformacji jest dyskretyzacja, kt\u00f3ra dzieli zakres ci\u0105g\u0142ego atrybutu na przedzia\u0142y. Dlaczego powinni\u015bmy si\u0119 tym przejmowa\u0107? Niekt\u00f3re algorytmy, takie jak drzewa decyzyjne i Naive Bayes preferuj\u0105 atrybuty dyskretne.<\/p>\n\n\n\n<p>Najcz\u0119stsze sposoby wyboru interwa\u0142\u00f3w (przedzia\u0142\u00f3w) s\u0105 nast\u0119puj\u0105ce:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>R\u00f3wna szeroko\u015b\u0107 &#8211; przedzia\u0142 zmiennych ci\u0105g\u0142ych jest podzielony na k przedzia\u0142\u00f3w o r\u00f3wnej szeroko\u015bci<\/li><li>R\u00f3wna cz\u0119stotliwo\u015b\u0107 &#8211; przypu\u015b\u0107my, \u017ce istnieje N instancji, ka\u017cdy z k przedzia\u0142\u00f3w zawiera w przybli\u017ceniu N lub k instancji<\/li><li>Minimalna <a href=\"https:\/\/pl.wikipedia.org\/wiki\/Entropia_(teoria_informacji)\">entropia<\/a> &#8211; to podej\u015bcie rekurencyjnie dzieli interwa\u0142y, a\u017c entropia, kt\u00f3ra mierzy nieuporz\u0105dkowanie, zmniejszy si\u0119 bardziej ni\u017c wzrost entropii wprowadzony przez podzia\u0142 interwa\u0142owy.<\/li><\/ul>\n\n\n\n<p>Dwie pierwsze metody wymagaj\u0105 od nas okre\u015blenia liczby interwa\u0142\u00f3w, podczas gdy ostatnia metoda automatycznie ustawia liczb\u0119 interwa\u0142\u00f3w; wymaga jednak zmiennej klas, co oznacza, \u017ce \u200b\u200bnie b\u0119dzie dzia\u0142a\u0107 w przypadku nienadzorowanych zada\u0144 uczenia maszynowego.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Redukcja danych<\/h3>\n\n\n\n<p>Redukcja danych dotyczy wielu atrybut\u00f3w i instancji. Liczba atrybut\u00f3w odpowiada liczbie wymiar\u00f3w w naszym zbiorze danych. Wymiary o niskiej mocy predykcyjnej maj\u0105 bardzo ma\u0142y wk\u0142ad w og\u00f3lny model i powoduj\u0105 wiele szk\u00f3d. Na przyk\u0142ad atrybut o losowych warto\u015bciach mo\u017ce wprowadza\u0107 pewne losowe wzorce, kt\u00f3re zostan\u0105 odebrane przez algorytm uczenia maszynowego. Mo\u017ce si\u0119 zdarzy\u0107, \u017ce dane zawieraj\u0105 du\u017c\u0105 liczb\u0119 brak\u00f3w danych, przy czym musimy znale\u017a\u0107 przyczyn\u0119 brak\u00f3w w du\u017cej liczbie i na tej podstawie mo\u017ce je wype\u0142ni\u0107 jak\u0105\u015b alternatywn\u0105 warto\u015bci\u0105 lub imputowa\u0107 lub ca\u0142kowicie usun\u0105\u0107 atrybut. Je\u015bli brakuje 40% lub wi\u0119cej warto\u015bci, mo\u017ce by\u0107 wskazane usuni\u0119cie takich atrybut\u00f3w, poniewa\u017c wp\u0142ynie to na wydajno\u015b\u0107 modelu.<\/p>\n\n\n\n<p>Drugim czynnikiem jest wariancja, gdzie zmienna sta\u0142a mo\u017ce mie\u0107 nisk\u0105 wariancj\u0119, co oznacza, \u017ce \u200b\u200bdane s\u0105 bardzo blisko siebie lub nie ma du\u017cej zmienno\u015bci w danych. Aby poradzi\u0107 sobie z tym problemem, pierwszy zestaw technik usuwa takie atrybuty i wybiera te najbardziej obiecuj\u0105ce. Proces ten jest znany jako selekcja cech lub selekcji atrybut\u00f3w i obejmuje metody takie jak ReliefF, zysk informacji i indeks Giniego. Metody te koncentruj\u0105 si\u0119 g\u0142\u00f3wnie na atrybutach dyskretnych. Inny zestaw narz\u0119dzi, skoncentrowany na ci\u0105g\u0142ych atrybutach, przekszta\u0142ca zbi\u00f3r danych z oryginalnych wymiar\u00f3w do przestrzeni o ni\u017cszych wymiarach. Na przyk\u0142ad, je\u015bli mamy zbi\u00f3r punkt\u00f3w w przestrzeni tr\u00f3jwymiarowej, mo\u017cemy wykona\u0107 rzut na przestrze\u0144 dwuwymiarow\u0105. Cz\u0119\u015b\u0107 informacji jest tracona, ale w sytuacji, gdy trzeci wymiar jest nieistotny, my nie tracimy<\/p>\n\n\n\n<p>du\u017co, poniewa\u017c struktura danych i relacje s\u0105 prawie doskonale zachowane. Mo\u017cna to wykona\u0107 nast\u0119puj\u0105cymi metodami:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Rozk\u0142ad wed\u0142ug warto\u015bci osobliwych (SVD)<\/li><li>Analiza g\u0142\u00f3wnych sk\u0142adnik\u00f3w (PCA)<\/li><li>Eliminacja funkcji wstecz\/do przodu<\/li><li>Analiza czynnik\u00f3w<\/li><li>Liniowa analiza dyskryminacyjna (LDA)<\/li><li>Autokodery sieci neuronowych<\/li><\/ul>\n\n\n\n<p>Kolejny problem zwi\u0105zany z redukcj\u0105 danych jest uzale\u017cnienie od zbyt du\u017cej liczby przypadk\u00f3w. Na przyk\u0142ad mog\u0105 by\u0107 duplikatami lub pochodzi\u0107 z bardzo g\u0119stego strumienia danych. G\u0142\u00f3wn\u0105 ide\u0105 jest wybranie podzbioru instancji w taki spos\u00f3b, aby dystrybucja wybranych danych nadal przypomina\u0142a pierwotn\u0105 dystrybucj\u0119 danych, a co wa\u017cniejsze, obserwowany proces. Techniki maj\u0105ce na celu zmniejszenie liczby wyst\u0105pie\u0144 obejmuj\u0105 losowe pr\u00f3bkowanie danych, stratyfikacj\u0119 i inne. Po przygotowaniu danych mo\u017cemy przyst\u0105pi\u0107 do analizy i modelowania danych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Klasyfikacja<\/h3>\n\n\n\n<p>Najpro\u015bciej o klasyfikacji mo\u017cemy powiedzie\u0107 jako o technice okre\u015blania, do kt\u00f3rej klasy nale\u017cy jednostka zale\u017cna, na podstawie co najmniej jednej zmiennej niezale\u017cnej. Ilustruje to poni\u017cszy rysunek.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie19.png\" alt=\"\" class=\"wp-image-25855\" width=\"479\" height=\"367\"\/><\/figure><\/div>\n\n\n\n<p>Klasyfikacj\u0119 mo\u017cna zastosowa\u0107, gdy mamy do czynienia z klas\u0105 dyskretn\u0105, kt\u00f3rej celem jest przewidzenie jednej z wzajemnie wykluczaj\u0105cych si\u0119 warto\u015bci w zmiennej docelowej. Przyk\u0142adem mo\u017ce by\u0107 ocena kredytowa, gdzie ostateczn\u0105 prognoz\u0105 jest to, czy danej osobie mo\u017cna udzieli\u0107&nbsp; kredyt, czy nie. Do najpopularniejszych algorytm\u00f3w klasyfikuj\u0105cych nale\u017c\u0105 drzewa decyzyjne, klasyfikatory Naive Bayes, maszyny SVM, sieci neuronowe czy uczenie zespolone.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Drzewa decyzyjne<\/h3>\n\n\n\n<p>Metoda drzewa decyzyjnego to koncepcja tworzy drzewo klasyfikacyjne, w kt\u00f3rym ka\u017cdy w\u0119ze\u0142 odpowiada jednemu z atrybut\u00f3w, kraw\u0119dzie odpowiadaj\u0105 mo\u017cliwej warto\u015bci (lub przedzia\u0142om) atrybutu, z kt\u00f3rego pochodzi w\u0119ze\u0142; a ka\u017cdy li\u015b\u0107 odpowiada etykiecie klasy i stanowi wynik decyzji. Drzewo decyzyjne mo\u017ce s\u0142u\u017cy\u0107 do wizualnego i jawnego reprezentowania modelu predykcyjnego, co czyni go bardzo przejrzystym klasyfikatorem. Godne uwagi algorytmy to ID3 i C4.5, chocia\u017c istnieje wiele alternatywnych implementacji i ulepsze\u0144 (na przyk\u0142ad J48 w Weka).<\/p>\n\n\n\n<p><br><span style=\"color:#ff0000\" class=\"has-inline-color\">Przyk\u0142ad<\/span> graficzny prostego drzewa decyzyjnego czy badana osoba naby\u0142a prawa emerytalne. Dane wej\u015bciowe &#8222;p\u0142e\u0107&#8221;; &#8222;wiek&#8221;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie20.png\" alt=\"\" class=\"wp-image-25856\" width=\"761\" height=\"218\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Klasyfikatory proabilistyczne<\/h3>\n\n\n\n<p>O klasyfikatorze probabilistycznym m\u00f3wimy wtedy, kiedy maj\u0105c zestaw warto\u015bci atrybut\u00f3w, klasyfikator probabilistyczny jest w stanie przewidzie\u0107 rozk\u0142ad w zestawie klas, a nie w dok\u0142adnej klasie. Klasyfikacja probabilistyczna oznacza, \u017ce model u\u017cyty do klasyfikacji jest modelem probabilistycznym, w szczeg\u00f3lno\u015bci modele te mog\u0105 podawa\u0107 prawdopodobie\u0144stwo wyst\u0105pienia instancji nale\u017c\u0105cej do klasy pozytywnej lub negatywnej. Nast\u0119pnie do nas nale\u017cy decyzja, czy instancja jest dodatnia, czy ujemna na podstawie prawdopodobie\u0144stw podanych przez model. Dwie powszechnie stosowane formy modeli probabilistycznych to:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Modele generatywne: Je\u015bli x oznacza instancj\u0119 (argument), a y oznacza etykiet\u0119, to w modelach generatywnych uczymy si\u0119 \u0142\u0105cznego rozk\u0142adu wzgl\u0119dem x i y, P(x, y) lub r\u00f3wnowa\u017cnie P(x|y) i P(y). Rozpoczyna si\u0119 od za\u0142o\u017cenia rozk\u0142adu parametrycznego dla P(x, y) (lub P(x|y) i P(y)) a nast\u0119pnie uczenia parametr\u00f3w przy u\u017cyciu danych ucz\u0105cych. Modele te nazywane s\u0105 generatywnymi, poniewa\u017c po poznaniu parametr\u00f3w modele te pozwalaj\u0105 nam \u201egenerowa\u0107\u201d z nich nowe punkty danych poprzez pr\u00f3bkowanie. Przyk\u0142adem takiego modelu klasyfikacji jest Naive Bayes.<\/li><li>Modele dyskryminacyjne: Je\u015bli x oznacza instancj\u0119 (argument), a y oznacza etykiet\u0119, to w modelach dyskryminacyjnych uczymy si\u0119 warunkowego rozk\u0142adu na y przy danym x, P(y|x). Rozpoczyna si\u0119 od za\u0142o\u017cenia rozk\u0142adu parametrycznego dla P(y|x), a nast\u0119pnie uczenia parametr\u00f3w przy u\u017cyciu danych ucz\u0105cych. Modele te nazywane s\u0105 rozr\u00f3\u017cniaj\u0105cymi, poniewa\u017c po poznaniu parametr\u00f3w modele te pozwalaj\u0105 nam jedynie \u201erozr\u00f3\u017cnia\u0107\u201d klasy dla danej instancji na podstawie prawdopodobie\u0144stw, kt\u00f3re zapewniaj\u0105. Modele te nie umo\u017cliwiaj\u0105 generowania nowych punkt\u00f3w danych, takich jak modele generatywne. Przyk\u0142adem takiego modelu klasyfikacji jest regresja logistyczna.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Metoda Kernel (metoda\/funkcja j\u0105dra) i SVM<\/h3>\n\n\n\n<p>Ka\u017cdy model liniowy mo\u017cna przekszta\u0142ci\u0107 w model nieliniowy, stosuj\u0105c manipulacj\u0119 j\u0105dra do modelu \u2014 zast\u0119puj\u0105c jego cechy (predyktory) funkcj\u0105 j\u0105dra. Innymi s\u0142owy, j\u0105dro po\u015brednio przekszta\u0142ca nasz zbi\u00f3r danych w wy\u017csze wymiary. Sztuczka z j\u0105drem wykorzystuje fakt, \u017ce cz\u0119sto \u0142atwiej jest rozdzieli\u0107 instancje w wi\u0119kszej liczbie wymiar\u00f3w. Funkcje j\u0105dra umo\u017cliwiaj\u0105 manipulowanie danymi jak by by\u0142 rzutowany w przestrze\u0144 wy\u017cszego wymiaru, operuj\u0105c na nim w jego pierwotnej przestrzeni. \u017beby zrozumie\u0107 zagadnienia kernelowske trzeba najpierw om\u00f3wi\u0107 zagadnienie zwi\u0105zane z poj\u0119ciem Support Vector Machine (SVM).<\/p>\n\n\n\n<p>SVM to nadzorowane modele uczenia maszynowego kt\u00f3re analizuj\u0105 dane w celu ich klasyfikacji (tutaj klasyfikacj\u0119 nale\u017cy rozumie\u0107 pod k\u0105tem tego \u2013 \u201eco nale\u017cy do czego\u201d). Je\u015bli spojrzymy na drzewo opisane w \u201eDrzewa decyzyjne\u201d to kobieta lat 61 jest sklasyfikowana jako emeryt. Jest to klasyfikacja niejako ustawiona \u201ena sztywno\u201d, inaczej b\u0119dzie to wygl\u0105da\u0142o w przypadku klasyfikacji SVM. Dla zbior\u00f3w danych SVM to klasyfikator formalnie zdefiniowany jako rozdzielaj\u0105ca hiperp\u0142aszczyzna. Hiperp\u0142aszczyzna to podprzestrze\u0144 o jeden wymiar mniej ni\u017c jej przestrze\u0144 otoczenia, czyli przestrzeni, w kt\u00f3rej znajduj\u0105 si\u0119 badane zbiory. Jest klasyfikatorem, kt\u00f3ry reprezentuje&nbsp;<strong>dane ucz\u0105ce jako punkty w przestrzeni<\/strong>&nbsp;podzielone na kategorie przerw\u0105 jak najszersz\u0105.&nbsp;Nowe punkty s\u0105 nast\u0119pnie dodawane do przestrzeni poprzez przewidywanie, do kt\u00f3rej kategorii nale\u017c\u0105 i do jakiej przestrzeni b\u0119d\u0105 nale\u017ce\u0107.<\/p>\n\n\n\n<p><span style=\"color:#fa0000\" class=\"has-inline-color\">Przyk\u0142ad:<\/span> Podzieli\u015bmy owoce z koszyka na dwie grupy &#8211; waga, kszta\u0142t. Powiedzmy, \u017ce robi\u0142y to osoby z zawi\u0105zanymi oczami. Wysz\u0142y nam dwie grupy owoc\u00f3w i nie by\u0142o to trudne do podzia\u0142u, poniewa\u017c, w koszyku by\u0142y \u015bliwki w\u0119gierki i gruszki klapsy.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie21.png\" alt=\"\" class=\"wp-image-25858\" width=\"717\" height=\"386\"\/><\/figure><\/div>\n\n\n\n<p>Matematycznie miejsce w przestrzeni dwuwymiarowej (lub obiekt\/klasa w przestrzeni) jest nieformalnie zdefiniowany jako element o wsp\u00f3\u0142rz\u0119dnych (x, y, na osiach rz\u0119dnej i odci\u0119tej) i s\u0105 to dane potrzebne do okre\u015blenia dowolnego punktu (jak np. mniejszy i l\u017cejszy oraz wi\u0119kszy i ci\u0119\u017cszy) w tej przestrzeni. Rzeczywista przestrze\u0144 otoczenia takiego obiektu r\u00f3\u017cni si\u0119 od przestrzeni matematycznej otaczaj\u0105cej obiekt matematyczny. Matematyczny obiekt jest abstrakcyjny i wynikaj\u0105cy z matematyki opis te\u017c jest abstrakcyjny dla obiektu\/rzeczy, kt\u00f3ry nie istnieje w danym czasie i miejscu rzeczywistym, ale raczej istnieje jako rodzaj idei lub abstrakcji. W omawianym przyk\u0142adzie m\u00f3wimy, \u017ce centroidy zbior\u00f3w i same zbiory s\u0105 mocno skorelowane ze swoimi klasami, oraz, \u017ce nie wyst\u0119puj\u0105 elementy niejednoznaczne tj. takie kt\u00f3re teoretycznie mog\u0105 nale\u017ce\u0107 zar\u00f3wno do jednego lub drugiego ze zbior\u00f3w. Dlaczego to takie istotne? Poniewa\u017c dla SVM w takim przypadku hiperp\u0142aszczyzna dla przestrzeni dwuwymiarowej jest jednowymiarow\u0105 lini\u0105 prost\u0105 oddzielaj\u0105c\u0105 te dwa zbiory z odpowiednim marginesem (z za\u0142o\u017cenia jak najszerszym).<\/p>\n\n\n\n<p>Inaczej m\u00f3wi\u0105c kwalifikacja zbioru (matematycznie) ulega znacz\u0105cemu uproszczeniu. Nie mamy przestrzeni dw\u00f3ch zbior\u00f3w \u015bliwka=f(x<sub>1,<\/sub> y<sub>1<\/sub>) oraz gruszka=f(x<sub>2,<\/sub> y<sub>2<\/sub>), ale prosty zapis rozdzia\u0142u dw\u00f3ch klas oddzielonych od siebie r\u00f3wnaniem y=ax+b (r\u00f3wnanie prostej na p\u0142aszczy\u017anie dwuwymiarowej) i pasa marginesu. Po fazie trenowania i przej\u015bciu do fazy testu, oznacza to uproszczenie kwalifikacji na podstawie tylko jednej danej(zmiennej) bo albo co\u015b znajduje si\u0119 z prawej strony nowej osi podzia\u0142u albo z jej lewej strony lub albo nad ni\u0105, albo pod ni\u0105 w zale\u017cno\u015bci jak na to patrzymy. Na co powinni\u015bmy jednak zwr\u00f3ci\u0107 szczeg\u00f3ln\u0105 uwag\u0119 to fakt, \u017ce w tym przypadku mamy brak losowo\u015bci. Nawet z zawi\u0105zanymi oczami po prostu bardzo trudno o jakikolwiek b\u0142\u0105d. Trzymaj\u0105c w r\u0119ku jeden wzorzec bior\u0105c w drug\u0105 czy to \u015bliwk\u0119 czy gruszk\u0119 bez problemu odr\u00f3\u017cnimy te dwa owoce. SVM upro\u015bci\u0142o nam proces decyzji. Bardziej szczeg\u00f3\u0142owe wyja\u015bnienie opisano tutaj <a href=\"https:\/\/www.slideshare.net\/saipuji1\/support-vector-machine-and-implementation-using-weka\">https:\/\/www.slideshare.net\/saipuji1\/support-vector-machine-and-implementation-using-weka<\/a><\/p>\n\n\n\n<p>Powr\u00f3\u0107my zatem do kwestii kernel czyli j\u0105dra. Rozwa\u017cmy inn\u0105 kwestie koszyka z owocami. Tym razem w koszyku s\u0105 dwa gatunki jab\u0142ek. Niech b\u0119d\u0105 to np. Ligol i Lobo. Te pierwsze powszechnie rozpoznawalne po du\u017cej wielko\u015bci te drugie rozpoznawalne jako lekko sto\u017ckowate. W tym przypadku podzia\u0142 z zawi\u0105zanymi oczami nie jest taki oczywisty. Dlaczego? Poniewa\u017c nasza rozr\u00f3\u017cnialno\u015b\u0107 b\u0119dzie obarczona du\u017cym b\u0142\u0119dem a zbiory b\u0119d\u0105 si\u0119 wzajemnie przenika\u0107. Nie znaj\u0105c bardziej szczeg\u00f3\u0142owych cech ka\u017cdy z tych owoc\u00f3w ka\u017cde b\u0119dzie dla nas po prostu jab\u0142kiem. Przekszta\u0142cany nasz zb\u00f3r dwuwymiarowy do zbioru tr\u00f3jwymiarowego dodaj\u0105c now\u0105 cech\u0119 \u201ekszta\u0142t\u201d &nbsp;jak poni\u017cej<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie22.png\" alt=\"\" class=\"wp-image-25859\" width=\"834\" height=\"481\"\/><\/figure><\/div>\n\n\n\n<p>Widzimy, \u017ce zbi\u00f3r widoczny od strony p\u0142aszczyzny jest dalej dwuwymiarowy, ale od strony nowej przestrzeni tr\u00f3jwymiarowej jest widoczna r\u00f3\u017cnica zbiory s\u0105 bardziej rozdzielne. Z definicji sztuczka kernel (kernel trick) jest opisana<\/p>\n\n\n\n<p>K(x, y)=&lt;f(x), f(y)&gt;<\/p>\n\n\n\n<p>gdzie &nbsp;&nbsp;&nbsp; K-funkcja Kernel od wskazanych zmiennych x, y w przestrzeni n wymiarowej<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f-funkcje od x, y w przestrzeni m wymiarowej takiej, \u017ce m&gt;n<\/p>\n\n\n\n<p>W przypadku normalnych oblicze\u0144, ka\u017cda ze wsp\u00f3\u0142rz\u0119dnych wymaga najpierw oblicze\u0144 funkcji f(x) oraz F(y) w nowej przestrzeni a nast\u0119pnie przemno\u017cenie skalarnie (iloczyn skalarny) element\u00f3w w nowej przestrzeni. Otrzymany wynik jest skalarem co w praktyce oznacza, \u017ce do okre\u015blenia poprawnego wyniku musimy powr\u00f3ci\u0107 do pierwotnej przestrzeni.<\/p>\n\n\n\n<p>Jak to wygl\u0105da matematycznie \u2013 przyk\u0142ad bez kernel:<\/p>\n\n\n\n<p>Mamy zbi\u00f3r element\u00f3w X=(x1, x2) oraz element\u00f3w Y=(y1, y2), nowe funkcje b\u0119d\u0105 zatem mia\u0142y posta\u0107 f(x)=(x1x1, x1x2, x2x1, x2x2) oraz f(y)-(y1y1, y1y2, y2y1, y2y2) czyli z dw\u00f3ch mamy 4 wymiary. Liczbowo &#8211; niech x=(1, 2)&nbsp; oraz y=(4,5) b\u0119dzie to odpowiednio<br>f(x)=(1, 2, 2, 4) oraz f(y)=(16, 20, 20, 25) zatem &lt;f(x), f(y))&gt;=(1*16+2*20+2*20+4*25)=<u>196<\/u><\/p>\n\n\n\n<p>Te same obliczenia w kernelem natomiast b\u0119d\u0105 nast\u0119puj\u0105ce:<br>K(x, y)=(&lt;x, y&gt;)<sup>2 <\/sup>&nbsp;podstawiaj\u0105c te same dane dla x oraz y mamy odpowiednio (1*4+2*5)^2=14<sup>2<\/sup>=<u>196<\/u><\/p>\n\n\n\n<p>Podsumowuj\u0105c kernelem zwi\u0119kszaj\u0105c przestrze\u0144 o jeden raz wi\u0119cej osi\u0105gamy ten sam wynik przy znacznie mniejszej ilo\u015bci dzia\u0142a\u0144. Szczeg\u00f3\u0142y na stronie <a href=\"https:\/\/www.quora.com\/What-are-kernels-in-machine-learning-and-SVM-and-why-do-we-need-them\/answer\/Lili-Jiang?srid=oOgT\">https:\/\/www.quora.com\/What-are-kernels-in-machine-learning-and-SVM-and-why-do-we-need-them\/answer\/Lili-Jiang?srid=oOgT<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sztuczne sieci neuronowe<\/h3>\n\n\n\n<p>Sztuczne sieci neuronowe s\u0105 inspirowane struktur\u0105 biologicznych sieci neuronowych i s\u0105 zdolne do uczenia maszynowego, a tak\u017ce rozpoznawania wzorc\u00f3w. S\u0105 powszechnie u\u017cywane zar\u00f3wno dla problem\u00f3w regresji, jak i klasyfikacji, obejmuj\u0105cych szerok\u0105 gam\u0119 algorytm\u00f3w i wariacje dla wszystkich rodzaj\u00f3w problem\u00f3w. Niekt\u00f3re popularne metody klasyfikacji to perceptron, ograniczona maszyna Boltzmanna (RBM) czy g\u0142\u0119bokie sieci neuronowe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Metody zespo\u0142owe<\/h3>\n\n\n\n<p>Metody zespo\u0142owe sk\u0142adaj\u0105 si\u0119 z zestawu r\u00f3\u017cnych s\u0142abszych modeli w celu uzyskania lepszej wydajno\u015bci predykcyjnej. Poszczeg\u00f3lne modele s\u0105 trenowane oddzielnie, a ich predykcje s\u0105 nast\u0119pnie \u0142\u0105czone w pewien spos\u00f3b w celu uzyskania og\u00f3lnej prognozy. W zwi\u0105zku z tym zestawy zawieraj\u0105 wiele sposob\u00f3w modelowania danych, co powinno z za\u0142o\u017cenia prowadzi\u0107 do lepszych wynik\u00f3w. Jest to bardzo pot\u0119\u017cna klasa technik i jako taka jest bardzo popularna. Ta klasa obejmuje boosting, bagging, AdaBoost i losowy las. G\u0142\u00f3wne r\u00f3\u017cnice mi\u0119dzy nimi to rodzaj s\u0142abych uczni\u00f3w, kt\u00f3rych nale\u017cy \u0142\u0105czy\u0107, oraz sposoby ich \u0142\u0105czenia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Metody oceniania klasyfikacyjne<\/h3>\n\n\n\n<p>W klasyfikacjach liczymy, ile razy klasyfikujemy co\u015b na TAK lub NIE by doj\u015b\u0107 do celu i ostatecznej odpowiedzi jak dok\u0142adnie to zrobili\u015bmy. Dobrym przyk\u0142adem jest np. gra w odgadywanie jaki mam zaw\u00f3d gdzie osoba pytaj\u0105ca dostaje tylko odpowied\u017a TAK lub NIE. Ostatecznie mo\u017ce uda\u0107 si\u0119 nam odgadn\u0105\u0107 zw\u00f3d prawid\u0142owo, lub znacz\u0105co przybli\u017cy\u0107 si\u0119 do wiedzy co to za praca, albo si\u0119 dowiedzie\u0107&nbsp; \u017ce to osoba nie pracuje.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Klasyfikacja binarna<\/h3>\n\n\n\n<p>W metodach oceny klasyfikacji ten system jest nieco bardziej rozbudowany. Za\u0142\u00f3\u017cmy, \u017ce istniej\u0105 dwie mo\u017cliwe etykiety klasyfikacyjne: tak i nie w systemie gdzie por\u00f3wnujemy warto\u015b\u0107 prognozowan\u0105 z warto\u015bci\u0105 otrzyman\u0105 w rzeczywisto\u015bci. &nbsp;W odpowiedzi mamy cztery mo\u017cliwe wyniki oceny, jak pokazano w poni\u017cszej tabeli czasami nazywanej macierz\u0105 b\u0142\u0119d\u00f3w:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1586\" height=\"252\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie23.png\" alt=\"\" class=\"wp-image-25860\"\/><\/figure><\/div>\n\n\n\n<p><br>Stany zaznaczone na zielono zaliczamy do wynik\u00f3w w\u0142a\u015bciwych pozosta\u0142e to fa\u0142szywe alarmy (chybienia).&nbsp; Podsumowuj\u0105c wyniki z tabeli otrzymujemy dwie podstawowe miary klasyfikacji:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>B\u0142\u0105d klasyfikacji<\/li><li>Dok\u0142adno\u015b\u0107 klasyfikacji<\/li><\/ul>\n\n\n\n<p>B\u0142\u0105d klasyfikacji (classification error) okre\u015bla zale\u017cno\u015b\u0107<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie24.png\" alt=\"\" class=\"wp-image-25861\" width=\"212\" height=\"43\"\/><\/figure><\/div>\n\n\n\n<p>Trafno\u015b\u0107 klasyfikowania (classification accuracy) okre\u015bla zale\u017cno\u015b\u0107<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie25.png\" alt=\"\" class=\"wp-image-25862\" width=\"307\" height=\"51\"\/><\/figure><\/div>\n\n\n\n<p>Od podanej powy\u017cej stosowanej zasady oceny istnieje wyj\u0105tek. S\u0105 to tzw. klasy niezr\u00f3wnowa\u017cone. Dotyczy to zada\u0144 w kt\u00f3rych liczba przypadk\u00f3w jest nier\u00f3wnomiernie roz\u0142o\u017cona. Przyk\u0142adem jest klasyfikowanie, czy transakcja kart\u0105 kredytow\u0105 jest nadu\u017cyciem, czy nie, gdzie statystycznie jest 99,99% normalnych transakcji i tylko niewielki procent nadu\u017cy\u0107. Klasyfikator, kt\u00f3ry m\u00f3wi, \u017ce ka\u017cda transakcja jest normalna, ma 99,99% trafno\u015bci, ale nas interesuj\u0105 przede wszystkim te nieliczne klasyfikacje, kt\u00f3re zdarzaj\u0105 si\u0119 bardzo rzadko. Tego typu zagadnienia rozwi\u0105zuje si\u0119 albo poprzez przebudow\u0119 algorytm\u00f3w, albo bardziej powszechnie stosowane rozwi\u0105zanie &#8211; poprzez zmian\u0119 podej\u015bcia do pr\u00f3bkowania danych.<\/p>\n\n\n\n<p>W ramach klasyfikacji binarnej dodatkowo stosuje si\u0119 oceny<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Precyzja (precision) &#8211; proporcja element\u00f3w prawid\u0142owo uznanych za pozytywne PP(ang. TP) do wszystkich element\u00f3w rzeczywi\u015bcie pozytywnych<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie26.png\" alt=\"\" class=\"wp-image-25863\" width=\"197\" height=\"50\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li>Czu\u0142o\u015b\u0107 (recall)- proporcja element\u00f3w prawid\u0142owo uznanych za pozytywne PP (ang. TP) do sumy element\u00f3w prawid\u0142owo i b\u0142\u0119dnie uznanych za pozytywne.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie27.png\" alt=\"\" class=\"wp-image-25864\" width=\"162\" height=\"46\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li>Specyficzno\u015b\u0107 FPR False Positive Rate okre\u015blana wzorem:<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie28.png\" alt=\"\" class=\"wp-image-25865\" width=\"141\" height=\"55\"\/><\/figure><\/div>\n\n\n\n<p>Powszechne jest \u0142\u0105czenie tych dw\u00f3ch pierwszych powy\u017cszych parametr\u00f3w (Precision, Recall) i raportowanie miary F, kt\u00f3ra uwzgl\u0119dnia zar\u00f3wno precyzj\u0119, jak i czu\u0142o\u015b\u0107, aby obliczy\u0107 wynik jako \u015bredni\u0105 wa\u017con\u0105, gdzie wynik osi\u0105ga najlepsz\u0105 warto\u015b\u0107 przy 1, a najgorsz\u0105 przy 0, w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie29.png\" alt=\"\" class=\"wp-image-25866\" width=\"367\" height=\"54\"\/><\/figure><\/div>\n\n\n\n<p>Ani sama precyzja, ani czu\u0142o\u015b\u0107 nie opowiadaj\u0105 ca\u0142ej historii zdarze\u0144. Miara F odwo\u0142uje si\u0119 do trzech danych \u2013 liczebno\u015b\u0107 pr\u00f3by, liczby klas oraz \u015brodek klasy.<\/p>\n\n\n\n<p>Po obliczeniu precyzji i czu\u0142o\u015bci dla problemu klasyfikacji binarnej, oba wyniki mo\u017cna po\u0142\u0105czy\u0107 w obliczeniach F-Measure w jeden miarodajny wynik \u0142\u0105cz\u0105cy wiele danych cz\u0105stkowych.<\/p>\n\n\n\n<p>Przyk\u0142ad. Scenariusz &#8211; mamy lini\u0119 produkcyjn\u0105 sortowania jab\u0142ek kt\u00f3rej zadaniem jest oddzielenie jednego konkretnego gatunku \u201eX\u201d od jab\u0142ek innych gatunk\u00f3w. Za\u0142\u00f3\u017cmy \u017ce nasza linia sortuj\u0105ca mierzy pewne parametry z maszyn na ta\u015bmie kt\u00f3re s\u0105 pod\u0142\u0105czone do naszej sztucznej inteligencji, a oczekiwana skuteczno\u015b\u0107 sortowania ma by\u0107 na poziomie F-measure na poziomie 0,95 (95%). Przyk\u0142adowo s\u0105 to nast\u0119puj\u0105ce parametry:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>waga jab\u0142ka<\/li><li>barwa jab\u0142ka<\/li><li>kszta\u0142t jab\u0142ka<\/li><\/ol>\n\n\n\n<p>\u0141atwo zauwa\u017cy\u0107 \u017ce niekt\u00f3re parametry wymuszaj\u0105 ocen\u0119 obrazu jab\u0142ka (du\u017co danych wzorc\u00f3w w pami\u0119ci) w zwi\u0105zku z tym ca\u0142y system poddali\u015bmy procesowi Machine Learning. Podczas uruchomienia pr\u00f3bnego partii 1000 jab\u0142ek otrzymali\u015bmy nast\u0119puj\u0105c\u0105 macierz wynik\u00f3w sortowania maszynowego i pomiar\u00f3w r\u0119cznych laboratoryjnych tej samej partii (zak\u0142adamy \u017ce b\u0142\u0105d pomiaru laboratoryjnego wynosi 0)<\/p>\n\n\n\n<p>czyli<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>700 jab\u0142ek gatunku \u201eX\u201d rozpoznano i przesortowano prawid\u0142owo,<\/li><li>250 jab\u0142ek innych gatunk\u00f3w rozpoznani i przesortowano prawid\u0142owo,<\/li><li>30 jab\u0142ek rozpoznano jako inny gatunek a w rzeczywisto\u015bci okaza\u0142o si\u0119, \u017ce to jest gatunek \u201eX\u201d<\/li><li>20 jab\u0142ek innych gatunk\u00f3w rozpoznano nieprawid\u0142owo jako gatunek \u201eX\u201d<\/li><\/ol>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie30.png\" alt=\"\" class=\"wp-image-25867\" width=\"194\" height=\"88\"\/><\/figure><\/div>\n\n\n\n<p>obliczenia<\/p>\n\n\n\n<p>Prec= 700\/(700+30)=0,9589<\/p>\n\n\n\n<p>Rec=700\/(700+20)=0,9722<\/p>\n\n\n\n<p>F-me= 2*0,9589*0,9722\/(0,9589+0,97220= 0,9655 [96,55%]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Klasyfikacja ROC<\/h3>\n\n\n\n<p>Istnieje jeszcze inna bardziej precyzyjna metoda klasyfikowania binarnego tzw. krzywa ROC. Powr\u00f3\u0107my do rozwa\u017ca\u0144 nietypowego przypadku karty kredytowej. Wi\u0119kszo\u015b\u0107 algorytm\u00f3w klasyfikacji zwraca ufno\u015b\u0107 klasyfikacji oznaczon\u0105 jako f(X), kt\u00f3ra z kolei jest wykorzystywana do obliczenia predykcji. Zgodnie z przyk\u0142adem nadu\u017cycia karty kredytowej regu\u0142a mo\u017ce wygl\u0105da\u0107 podobnie do nast\u0119puj\u0105cej:<\/p>\n\n\n\n<div class=\"wp-block-image wp-duotone-000000-ffffff-1\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie31.png\" alt=\"\" class=\"wp-image-25868\" width=\"624\" height=\"59\"\/><\/figure><\/div>\n\n\n\n<p>Je\u015bli tak to pr\u00f3g okre\u015bla stop\u0119 b\u0142\u0119du i rzeczywist\u0105 stop\u0119 dodatni\u0105. Wyniki wszystkich mo\u017cliwych warto\u015bci progowych mo\u017cna wykre\u015bli\u0107 jako progowe charakterystyki dzia\u0142a\u0144 Receiver Operating Characteristics (ROC), jak to pokazano na poni\u017cszym diagramie:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie32.png\" alt=\"\" class=\"wp-image-25869\" width=\"532\" height=\"426\"\/><\/figure><\/div>\n\n\n\n<p>Predykcja losowa jest wykre\u015blona czerwon\u0105 lini\u0105 przerywan\u0105, a predykcja doskona\u0142a jest wykre\u015blona zielon\u0105 lini\u0105 przerywan\u0105. Aby np. por\u00f3wna\u0107, czy klasyfikator PR1 jest lepszy ni\u017c Pr2, por\u00f3wnujemy obszar pod krzyw\u0105, gdzie podstaw\u0105 jest linia predykcji losowej, im wi\u0119kszy obszar pod krzyw\u0105 tym lepsze jest dopasowania progowe. &nbsp;Podsumowuj\u0105c krzywa ROC s\u0142u\u017cy do por\u00f3wnania r\u00f3\u017cnych modeli zbudowanych na postawie doboru argument\u00f3w czy te\u017c na podstawie wyboru r\u00f3\u017cnych metod podej\u015bcia do rozwi\u0105zania problemu. Zalet\u0105 tej metody jest mo\u017cliwo\u015b\u0107 wizualizacji sytuacji decyzyjnej pod katem warto\u015bci prog\u00f3w oraz jako\u015bci (zbli\u017cenia przyj\u0119tego modelu\/algorytmu do idea\u0142u).<\/p>\n\n\n\n<p>Przyk\u0142ad:*under construction*<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Regresja<\/h3>\n\n\n\n<p>Regresja dotyczy ci\u0105g\u0142ej zmiennej docelowej, w przeciwie\u0144stwie do klasyfikacji, kt\u00f3ra dzia\u0142a z dyskretn\u0105 zmienn\u0105 docelow\u0105. Na przyk\u0142ad: aby przewidzie\u0107 temperatur\u0119 zewn\u0119trzn\u0105 na kilka nast\u0119pnych dni, u\u017cyjemy regresji, a klasyfikacja pos\u0142u\u017cy do przewidzenia, czy b\u0119dzie pada\u0107, czy nie. Og\u00f3lnie rzecz bior\u0105c, regresja to proces, kt\u00f3ry szacuje zwi\u0105zek mi\u0119dzy cechami, czyli jak zr\u00f3\u017cnicowanie cechy zmienia zmienn\u0105 docelow\u0105. Wynikiem regresji b\u0119dzie model w postaci funkcji y=f(x).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Regresja liniowa<\/h4>\n\n\n\n<p>Najbardziej podstawowy model regresji zak\u0142ada liniow\u0105 zale\u017cno\u015b\u0107 mi\u0119dzy cechami a zmienn\u0105 docelow\u0105. Opisywany jako funkcja y=ax+b. Model jest cz\u0119sto dopasowywany przy u\u017cyciu metody najmniejszych kwadrat\u00f3w, co oznacza, \u017ce najlepszy model minimalizuje kwadraty b\u0142\u0119d\u00f3w. W wielu przypadkach regresja liniowa nie jest w stanie modelowa\u0107 z\u0142o\u017conych relacji; na przyk\u0142ad poni\u017cszy diagram przedstawia cztery r\u00f3\u017cne zestawy punkt\u00f3w o tej samej linii regresji liniowej. Model lewy g\u00f3rny oddaje og\u00f3lny trend i mo\u017cna go uzna\u0107 za w\u0142a\u015bciwy model, natomiast model lewy dolny znacznie lepiej pasuje do punkt\u00f3w (z wyj\u0105tkiem jednego odstaj\u0105cego, kt\u00f3ry nale\u017cy dok\u0142adnie sprawdzi\u0107), a g\u00f3rna i dolna prawa strona to liniowe modele, kt\u00f3re ca\u0142kowicie pomijaj\u0105 podstawow\u0105 struktur\u0119 danych i nie mog\u0105 by\u0107 uwa\u017cane za w\u0142a\u015bciwe modele:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie33.png\" alt=\"\" class=\"wp-image-25871\" width=\"562\" height=\"297\"\/><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Regresja logistyczna<\/h4>\n\n\n\n<p>Regresja liniowa dzia\u0142a, gdy zmienna zale\u017cna jest ci\u0105g\u0142a. Je\u015bli jednak zmienna zale\u017cna ma charakter binarny, czyli 0 lub 1, sukces lub pora\u017cka, tak lub nie, prawda lub fa\u0142sz, \u017cywy lub zmar\u0142y itd. to zamiast regresji liniowej u\u017cywana jest regresja logistyczna. Jednym z takich przyk\u0142ad\u00f3w jest pr\u00f3ba kliniczna lek\u00f3w, w kt\u00f3rej badany osobnik albo reaguje na leki, albo nie odpowiada. Jest r\u00f3wnie\u017c u\u017cywany do wykrywania oszustw, gdzie transakcja jest oszustwem lub nie. Zwykle do pomiaru relacji mi\u0119dzy zmiennymi zale\u017cnymi i niezale\u017cnymi u\u017cywana jest funkcja logistyczna, postrzegana jako rozk\u0142ad <a href=\"https:\/\/pl.wikipedia.org\/wiki\/Rozk%C5%82ad_zero-jedynkowy\">Bernoulliego<\/a> i po wykre\u015bleniu rzeczywistego przypadku wygl\u0105da podobnie do krzywej w kszta\u0142cie litery \u201eS\u201d. W rzeczywisto\u015bci stosuje si\u0119 typowy og\u00f3lny zapis matematyczny takiej funkcji kt\u00f3ry ma posta\u0107:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie34.png\" alt=\"\" class=\"wp-image-25872\" width=\"182\" height=\"62\"\/><\/figure><\/div>\n\n\n\n<p>Funkcja F(x) dla przedzia\u0142u x(-\u221e, +\u221e) b\u0119dzie osi\u0105ga\u0107 warto\u015bci F(x) \u2192(0, 1). Mo\u017cemy zatem powiedzie\u0107, \u017ce dla wej\u015bciowej zmiennej ci\u0105g\u0142ej (argumentu) funkcja przyjmuje warto\u015bci dyskretne na wyj\u015bciu. Przyk\u0142adowy wykres poni\u017cej:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie35.png\" alt=\"\" class=\"wp-image-25873\" width=\"442\" height=\"253\"\/><\/figure><\/div>\n\n\n\n<p>Krzywa \u201eS\u201d b\u0119dzie posiada\u0142a coraz bardziej ostry przebieg na ile w wybranym modelu b\u0119dzie wi\u0119cej cech definiuj\u0105cych model lub jednoznaczno\u015b\u0107 decyzyjna b\u0119dzie po prostu oczywista. Nale\u017cy o tym pami\u0119ta\u0107 przy doborze modelu w taki spos\u00f3b by histereza modelu przebiega\u0142a w mo\u017cliwie najbardziej ostry spos\u00f3b. Przyk\u0142adowo o ile w rozpoznawanym obrazie b\u0119dziemy rozr\u00f3\u017cnia\u0107 tylko kolor bia\u0142y i czarny przy sta\u0142ym optymalnym o\u015bwietleniu np. 1000lx o\u015bwietlenie do prac precyzyjnych) to pozyskanie dyskretnego wyniku w odniesieniu do wzorca nie stanowi problemu,&nbsp; je\u015bli maszyna uczy\u0142a si\u0119 przy takich warunkach to niekoniecznie zachowa si\u0119 prawid\u0142owo przy o\u015bwietleniu np. 0,2lx czyli przy \u015bwietle ksi\u0119\u017cycowym w pe\u0142ni. Tutaj b\u0119dzie wymagany inny model i wi\u0119cej danych po\u015brednich w uczeniu maszynowym do osi\u0105gni\u0119cia poprawnego rezultatu z satysfakcjonuj\u0105cym nas prawdopodobie\u0144stwem.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ocena regresji<\/h4>\n\n\n\n<p>W regresji na podstawie otrzymanego z danych pomiarowych modelu przewidujemy warto\u015bci zale\u017cne Y na podstawie danych wej\u015bciowych X. Przewidywania s\u0105 zwykle obarczone pewnym b\u0142\u0119dem. G\u0142\u00f3wne pytanie, kt\u00f3re musimy sobie zada\u0107, brzmi: o ile? Innymi s\u0142owy, chcemy zmierzy\u0107 odleg\u0142o\u015b\u0107 mi\u0119dzy warto\u015bciami przewidywanymi i rzeczywistymi.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>B\u0142\u0105d \u015brednio kwadratowy MSE<\/strong> dla uczenia maszynowego mo\u017cemy powiedzie\u0107, \u017ce b\u0142\u0105d \u015brednio kwadratowy to \u015brednia kwadratowa r\u00f3\u017cnicy mi\u0119dzy warto\u015bciami predykcji (prognozy wyliczonej) a rzeczywistej warto\u015bci z danych na podstawie kt\u00f3rych maszyna si\u0119 uczy\u0142a.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie36.png\" alt=\"\" class=\"wp-image-25874\" width=\"326\" height=\"102\"\/><\/figure><\/div>\n\n\n\n<p>Miara ta jest bardzo wra\u017cliwa na warto\u015bci odstaj\u0105ce, na przyk\u0142ad 99 dok\u0142adnych predykcji i 1 predykcja b\u0142\u0119dna o 10 jest oceniana tak samo, jak wszystkie predykcje b\u0142\u0119dne o 1. Co wi\u0119cej, miara jest wra\u017cliwa na \u015bredni\u0105. Dlatego zamiast tego cz\u0119sto u\u017cywany jest b\u0142\u0105d wzgl\u0119dny kwadratowy, kt\u00f3ry por\u00f3wnuje MSE naszego predyktora z MSE predyktora \u015bredniej (kt\u00f3ry zawsze przewiduje warto\u015b\u0107 \u015bredni\u0105).<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>\u015aredni b\u0142\u0105d bezwzgl\u0119dny (MAE)<\/strong>to \u015brednia bezwzgl\u0119dnej r\u00f3\u017cnicy mi\u0119dzy warto\u015bciami przewidywanymi i rzeczywistymi. MAE uwzgl\u0119dnia \u015bredni\u0105 wielko\u015b\u0107 b\u0142\u0119d\u00f3w w zestawie prognoz, bez uwzgl\u0119dniania ich kierunku.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie37.png\" alt=\"\" class=\"wp-image-25875\" width=\"285\" height=\"74\"\/><\/figure><\/div>\n\n\n\n<p>Jest to \u015brednia w postaci bezwzgl\u0119dnych r\u00f3\u017cnic mi\u0119dzy prognoz\u0105 a rzeczywist\u0105 obserwacj\u0105. MAS jest mniej wra\u017cliwy na warto\u015bci odstaj\u0105ce, ale jest r\u00f3wnie\u017c wra\u017cliwy na \u015bredni\u0105 i skal\u0119.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Wsp\u00f3\u0142czynnik korelacji (CC).<\/strong> Wsp\u00f3\u0142czynnik korelacji por\u00f3wnuje \u015bredni\u0105 predykcji wzgl\u0119dem \u015bredniej, pomno\u017con\u0105 przez warto\u015bci treningowe wzgl\u0119dem \u015bredniej. Interpretacja: je\u015bli liczba jest ujemna, oznacza to s\u0142ab\u0105 korelacj\u0119; liczba dodatnia oznacza siln\u0105 korelacj\u0119; a zero oznacza brak korelacji. Korelacj\u0119 mi\u0119dzy prawdziwymi warto\u015bciami x a przewidywaniami y definiuje si\u0119 nast\u0119puj\u0105co:<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie38.png\" alt=\"\" class=\"wp-image-25876\" width=\"414\" height=\"74\"\/><\/figure><\/div>\n\n\n\n<p>Miara CC jest ca\u0142kowicie niewra\u017cliwa na \u015bredni\u0105 i skal\u0119 oraz mniej wra\u017cliwa na warto\u015bci odstaj\u0105ce. Jest w stanie uchwyci\u0107 wzgl\u0119dn\u0105 kolejno\u015b\u0107, co czyni go przydatnym do rangowania zada\u0144 (przydzielanie odpowiedniej rangi poszczeg\u00f3lnym obserwacjom w celu ich uszeregowania niezale\u017cnie od r\u00f3\u017cnicy wielko\u015bci miedzy nimi), takich jak np. trafno\u015b\u0107 dokumentu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Uog\u00f3lnienie i ocena<\/h3>\n\n\n\n<p>Utworzony model podlega ocenie. Chcemy wiedzie\u0107 na ile model jest dok\u0142adny oraz jak b\u0119dzie si\u0119 zachowywa\u0142 na nowych danych pr\u00f3by.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Dopasowanie<\/h4>\n\n\n\n<p><br>Trenowanie predyktor\u00f3w mo\u017ce prowadzi\u0107 do modeli, kt\u00f3re s\u0105 zbyt z\u0142o\u017cone lub zbyt proste. Model o niskiej z\u0142o\u017cono\u015bci po lewej (1.) stronie rysunku poni\u017cej mo\u017ce by\u0107 zbyt prosty by odda\u0107 rzeczywiste prognozowane zachowanie, jak i r\u00f3wnie\u017c przewidywanie najcz\u0119stszej lub \u015bredniej warto\u015bci klasy. R\u00f3wnie\u017c model o du\u017cej z\u0142o\u017cono\u015bci (3.) mo\u017ce reprezentowa\u0107 instancje szkoleniowe ale ze wzgl\u0119du na jego zbytni\u0105 komplikacj\u0119 raczej s\u0142abo nadaje si\u0119 do wykorzystania praktycznego. Co wi\u0119cej zbyt skomplikowany model nie odda nam typowej warto\u015bci \u015bredniej i b\u0119dzie kompletnie nieprzydatny wydajno\u015bciowo do dzia\u0142ania w czasie rzeczywistym. Tryby, kt\u00f3re s\u0105 zbyt sztywne, np. pokazany po lewej stronie (1.), nie mo\u017ce uchwyci\u0107 wzorca, model jest zbyt elastyczny, podczas gdy pokazany po prawej stronie (3.) , gdzie jest ju\u017c praktycznie jest dopasowany do szumu w danych treningowych b\u0119dzie zbyt skomplikowany dla rzeczywistego modelu. G\u0142\u00f3wnym wyzwaniem jest dobranie odpowiedniego algorytmu uczenia i jego parametr\u00f3w, tak aby wyuczony model dzia\u0142a\u0142 dobrze na nowych danych (\u015brodkowa kolumna 2.)<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie39.png\" alt=\"\" class=\"wp-image-25877\" width=\"526\" height=\"175\"\/><\/figure><\/div>\n\n\n\n<p>Problem optymalizacji modelu jest \u015bci\u015ble zale\u017cny od typu danych i przeznaczenia algorytmu. Uog\u00f3lniaj\u0105c zagadnienie, pewne wskaz\u00f3wki s\u0105 na tyle uniwersalne \u017ce mo\u017cna je przedstawi\u0107 w jakim\u015b og\u00f3lnym &nbsp;zestawie wytycznych. Jak wspomniano sztywne modele nie pasuj\u0105 do danych i maj\u0105 du\u017ce b\u0142\u0119dy. Wraz ze wzrostem z\u0142o\u017cono\u015bci modelu model lepiej opisuje podstawow\u0105 struktur\u0119 danych ucz\u0105cych, a w konsekwencji zmniejsza si\u0119 b\u0142\u0105d. Je\u015bli model jest zbyt z\u0142o\u017cony, przepe\u0142nia dane treningowe, a jego b\u0142\u0105d przewidywania ponownie wzrasta:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ocena i optymalizacja<\/h4>\n\n\n\n<p><br>W zale\u017cno\u015bci od z\u0142o\u017cono\u015bci zadania i dost\u0119pno\u015bci danych chcemy dostroi\u0107 nasze klasyfikatory do mniej lub bardziej z\u0142o\u017conych struktur. Wi\u0119kszo\u015b\u0107 algorytm\u00f3w ucz\u0105cych umo\u017cliwia takie dostrajanie w taki spos\u00f3b by uzyska\u0107 optimum. Og\u00f3lne zale\u017cno\u015bci przedstawiono poni\u017cej.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie40.png\" alt=\"\" class=\"wp-image-25879\" width=\"717\" height=\"381\"\/><\/figure><\/div>\n\n\n\n<p>Wskaz\u00f3wk\u0105 stopnia komplikacji mog\u0105 by\u0107 omawiane wcze\u015bniej struktury algorytm\u00f3w w uproszczonym zestawieniu<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1499\" height=\"383\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie41.png\" alt=\"\" class=\"wp-image-25880\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Dane treningowe i testowe.<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Dob\u00f3r danych treningowych i testowych<\/h4>\n\n\n\n<p>Aby oszacowa\u0107 b\u0142\u0105d uog\u00f3lnienia, dzielimy nasze dane na dwie cz\u0119\u015bci: dane treningowe i dane testowe. Og\u00f3ln\u0105 zasad\u0105 jest dzielenie ich wed\u0142ug proporcji trening vs test, typowo 70:30. Najpierw trenujemy predyktor (generujemy model) na danych ucz\u0105cych (treningowych) a nast\u0119pnie przewidujemy warto\u015bci dla danych testowych, a na ko\u0144cu obliczamy b\u0142\u0105d, czyli r\u00f3\u017cnic\u0119 mi\u0119dzy warto\u015bciami przewidywanymi i rzeczywistymi.<\/p>\n\n\n\n<p>Takie podej\u015bcie daje nam mo\u017cliwo\u015b\u0107 oszacowania prawdziwego b\u0142\u0119du uog\u00f3lnienia. Szacowanie opiera si\u0119 na dw\u00f3ch nast\u0119puj\u0105cych za\u0142o\u017ceniach: po pierwsze, zak\u0142adamy, \u017ce zestaw testowy jest bezstronn\u0105 pr\u00f3bk\u0105 z naszego zbioru danych, a po drugie, zak\u0142adamy, \u017ce rzeczywiste nowe dane ponownie z\u0142o\u017c\u0105 dystrybucj\u0119 jako nasze przyk\u0142ady szkoleniowe i testowe. Pierwsze za\u0142o\u017cenie mo\u017cna z\u0142agodzi\u0107 poprzez walidacj\u0119 krzy\u017cow\u0105 i stratyfikacj\u0119. Ponadto, je\u015bli jest ich ma\u0142o, nie mo\u017cna pozwoli\u0107 sobie na pomini\u0119cie znacznej ilo\u015bci danych dla oddzielnego zestawu testowego, poniewa\u017c algorytmy ucz\u0105ce nie dzia\u0142aj\u0105 dobrze, je\u015bli nie otrzymuj\u0105 wystarczaj\u0105cej ilo\u015bci danych. W takich przypadkach zamiast tego u\u017cywana jest walidacja krzy\u017cowa.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Walidacja krzy\u017cowa<\/h4>\n\n\n\n<p>Weryfikacja krzy\u017cowa dzieli zbi\u00f3r danych na k-zestaw\u00f3w o mniej wi\u0119cej tej samej wielko\u015bci. Najpierw u\u017cywamy zestaw\u00f3w od 2 do 5 do nauki i zestawu 1 do treningu. Nast\u0119pnie powtarzamy procedur\u0119 pi\u0119\u0107 razy, pomijaj\u0105c jeden zestaw na raz do testowania i u\u015bredniamy b\u0142\u0105d w pi\u0119ciu powt\u00f3rzeniach:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Elementy zbior\u00f3w danych, wyszukiwanie zale\u017cno\u015bci w odniesieniu do typu zbioru \u2013 \u201eodleg\u0142o\u015bci\u201d mi\u0119dzy danymi<\/h2>\n\n\n\n<p>Wiele problem\u00f3w mo\u017cna sformu\u0142owa\u0107 jako znalezienie podobnych zestaw\u00f3w element\u00f3w. &nbsp;Na przyk\u0142ad klienci, kt\u00f3rzy kupili podobne produkty, strony internetowe o podobnej tre\u015bci, obrazy z podobnymi obiektami, u\u017cytkownicy, kt\u00f3rzy odwiedzili podobne witryny itd. Je\u015bli tak, dwa elementy s\u0105 uwa\u017cane za podobne, je\u017celi s\u0105 w niewielkiej odleg\u0142o\u015bci od siebie. G\u0142\u00f3wne pytania dotycz\u0105 tego, jak ka\u017cdy element jest reprezentowany i jak definiowana jest odleg\u0142o\u015b\u0107 mi\u0119dzy elementami. Istniej\u0105 dwie g\u0142\u00f3wne klasy miar odleg\u0142o\u015bci:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Odleg\u0142o\u015bci euklidesowe<\/li><li>Odleg\u0142o\u015bci nieeuklidesowe<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Odleg\u0142o\u015bci euklidesowe<\/h3>\n\n\n\n<p>Odleg\u0142o\u015b\u0107 euklidesowa, jest najcz\u0119\u015bciej stosowan\u0105 miar\u0105 odleg\u0142o\u015bci, kt\u00f3ra mierzy odleg\u0142o\u015b\u0107 od siebie dw\u00f3ch przedmiot\u00f3w np. w dwuwymiarowej przestrzeni (p\u0142aszczyzn mo\u017ce by\u0107 wi\u0119cej natomiast tutaj rozwa\u017cymy przestrze\u0144 dwuwymiarow\u0105). Oblicza si\u0119 go w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie42.png\" alt=\"\" class=\"wp-image-25881\" width=\"810\" height=\"397\"\/><\/figure><\/div>\n\n\n\n<p>Przyk\u0142adowe obliczenie w excel dla wektor\u00f3w A(3,8,19) oraz B(7,12,22) &nbsp;daje wynik EDistance=6,40<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/071EukluidesDistance%20%E2%80%94%20kopia.xlsx\">Sprawd\u017a w excel<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Odleg\u0142o\u015bci nieeuklidesowe<\/h3>\n\n\n\n<p>Odleg\u0142o\u015b\u0107 nieeuklidesowa opiera si\u0119 nie na ich lokalizacji w przestrzeni, a na w\u0142a\u015bciwo\u015bciach poszczeg\u00f3lnych element\u00f3w zbioru danych. Najbardziej znane odleg\u0142o\u015bci to odleg\u0142o\u015b\u0107 Jaccarda, odleg\u0142o\u015b\u0107 cosinusowa, odleg\u0142o\u015b\u0107 Levenshteina (edycyjna) i odleg\u0142o\u015b\u0107 Hamminga.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Odleg\u0142o\u015b\u0107 Jaccarda<\/h4>\n\n\n\n<p>Odleg\u0142o\u015b\u0107 Jaccarda s\u0142u\u017cy do obliczania odleg\u0142o\u015bci mi\u0119dzy dwoma zestawami danych. Obliczamy podobie\u0144stwo Jaccarda dw\u00f3ch zbior\u00f3w jako rozmiar ich przeci\u0119cia podzielony przez rozmiar ich sumy,<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie43.png\" alt=\"\" class=\"wp-image-25882\" width=\"617\" height=\"232\"\/><\/figure><\/div>\n\n\n\n<p>\u0141atwo zauwa\u017cy\u0107 \u017ce odleg\u0142o\u015b\u0107 Jaccarta u\u017cywamy do okre\u015blenia zgodno\u015bci dw\u00f3ch zbior\u00f3w danych (niekoniecznie liczb) Je\u017celi zbiory s\u0105 zgodne to Jdistance=0, je\u017celi zbiory nie maj\u0105 element\u00f3w wsp\u00f3lnych Jdistance=1.<\/p>\n\n\n\n<p>Przyk\u0142adowe obliczenie w excel dla wektor\u00f3w A(3,8,12,19) oraz B(7,12,19,22, 29, 34, 42) daje wynik JDis=0,77<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/072JaccardDistance%20%E2%80%94%20kopia.xlsx\">Sprawd\u017a w excel<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Odleg\u0142o\u015b\u0107 cosinusowa<\/h4>\n\n\n\n<p>Odleg\u0142o\u015b\u0107 kosinusowa mi\u0119dzy dwoma wektorami skupia si\u0119 na orientacji, a nie na wielko\u015bci, dlatego dwa wektory o tej samej orientacji maj\u0105 podobie\u0144stwo cosinusowe 1 a odleg\u0142o\u015b\u0107 r\u00f3wn\u0105 0, podczas gdy dwa wektory prostopad\u0142e maj\u0105 podobie\u0144stwo cosinusowe r\u00f3wne 0, a odleg\u0142o\u015b\u0107 r\u00f3wn\u0105 1. Matematycznie obliczamy cosinus k\u0105ta mi\u0119dzy dwoma wektorami rzutowanymi w wielowymiarowej przestrzeni. Odleg\u0142o\u015b\u0107 cosinusowa jest powszechnie stosowana w wielowymiarowej przestrzeni cech; na przyk\u0142ad w eksploracji tekstu, gdzie dokument tekstowy reprezentuje instancj\u0119, cechy, kt\u00f3re odpowiadaj\u0105 r\u00f3\u017cnym s\u0142owom, a ich warto\u015bci odpowiadaj\u0105 liczbie przypadk\u00f3w, w kt\u00f3rych s\u0142owo pojawia si\u0119 w dokumencie. Obliczaj\u0105c podobie\u0144stwo cosinusowe, mo\u017cemy zmierzy\u0107 prawdopodobie\u0144stwo dopasowania dw\u00f3ch dokument\u00f3w w opisie podobnej tre\u015bci.<\/p>\n\n\n\n<p>Wz\u00f3r og\u00f3lny ma posta\u0107:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie44.png\" alt=\"\" class=\"wp-image-25883\" width=\"485\" height=\"106\"\/><\/figure><\/div>\n\n\n\n<p>Przyk\u0142adowe obliczenie w exel dla dw\u00f3ch wektor\u00f3w A(3, 8, 19) oraz B(9, 24, 57) daje wynik CosDistance=0 co oznacza ze wektory maja te sam\u0105 orientacj\u0119.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/073CosDistance%20%E2%80%94%20kopia.xlsx\">Sprawd\u017a w excel<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Odleg\u0142o\u015b\u0107 Levenshteina (edycyjna)<\/h4>\n\n\n\n<p>Edycyjna odleg\u0142o\u015b\u0107 ma sens, gdy por\u00f3wnujemy dwa ci\u0105gi. Odleg\u0142o\u015b\u0107 mi\u0119dzy \u0142a\u0144cuchami a = a1, a2, a3, &#8230; an i b = b1, b2, b3, &#8230; bn to najmniejsza liczba operacji wstawiania \/ usuwania pojedynczych znak\u00f3w wymaganych do konwersji ci\u0105gu z<span style=\"color:#ff0000\" class=\"has-inline-color\"> b<\/span> do <span style=\"color:#ff0000\" class=\"has-inline-color\">a<\/span>, na przyk\u0142ad a = abcd i b = ab<span class=\"has-inline-color has-ast-global-color-0-color\">b<\/span>d. Aby zamien<span class=\"has-inline-color has-ast-global-color-8-color\">i\u0107 b na a, m<\/span>usimy usun\u0105\u0107 drugie <span class=\"has-inline-color has-ast-global-color-0-color\">b<\/span> i wstawi\u0107 <span class=\"has-inline-color has-ast-global-color-0-color\">c<\/span> w jego miejsce. Taka zamiana wymaga co najmniej 2 operacji st\u0105d odleg\u0142o\u015b\u0107 Levdistance=2. Najbardziej istotnym wnioskiem jest fakt, i\u017c w przypadku takich samych ci\u0105g\u00f3w (takich samych wyraz\u00f3w) odleg\u0142o\u015b\u0107 wynosi Levdistance=0.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Odleg\u0142o\u015b\u0107 Hamminga<\/h4>\n\n\n\n<p>Odleg\u0142o\u015b\u0107 Hamminga por\u00f3wnuje dwa wektory o tej samej wielko\u015bci i oblicza liczb\u0119 wymiar\u00f3w, w kt\u00f3rych si\u0119 r\u00f3\u017cni\u0105. Innymi s\u0142owy, mierzy liczb\u0119 podstawie\u0144 wymaganych do konwersji jednego wektora na inny.<\/p>\n\n\n\n<p>Przyk\u0142adowe obliczenie w exel dla wektora A [3, 8, 19, 31] oraz wektora B [7, 8, 22, 31] odleg\u0142o\u015b\u0107 Hamminga wynosi Hamdistance=2<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/074HammingDistance%20%E2%80%94%20kopia.xlsx\">Sprawd\u017a w excel<\/a><\/p>\n\n\n\n<p>Istnieje wiele miar odleg\u0142o\u015bci skupiaj\u0105cych si\u0119 na r\u00f3\u017cnych w\u0142a\u015bciwo\u015bciach, na przyk\u0142ad<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>jak korelacja, kt\u00f3ra mierzy liniow\u0105 zale\u017cno\u015b\u0107 mi\u0119dzy dwoma elementami,<\/li><li>jak odleg\u0142o\u015b\u0107 Mahalanobisa kt\u00f3ra mierzy odleg\u0142o\u015b\u0107 mi\u0119dzy punktem i rozk\u0142adu innych punkt\u00f3w,<\/li><li>jak SimRank, kt\u00f3ry jest oparty na teorii graf\u00f3w i mierzy podobie\u0144stwo struktury, w kt\u00f3rej wyst\u0119puj\u0105 badane elementy i tak dalej\u2026.<\/li><\/ul>\n\n\n\n<p>Om\u00f3wiono najcz\u0119\u015bciej stosowane miary odleg\u0142o\u015bci\/podobie\u0144stwa pomi\u0119dzy zbiorami. <br><br><br><span style=\"color:#ff0202\" class=\"has-inline-color\"><strong>Wyb\u00f3r i zaprojektowanie odpowiedniej miary podobie\u0144stwa dla rozwi\u0105zywanego problemu to wi\u0119cej ni\u017c po\u0142owa sukcesu.<\/strong><\/span><\/p>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"architekt\">Architektura aplikacji uczenia maszynowego<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Struktura aplikacji ML(machine learning)<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie45.png\" alt=\"\" class=\"wp-image-25885\" width=\"844\" height=\"256\"\/><\/figure><\/div>\n\n\n\n<p>Aplikacje uczenia maszynowego, zw\u0142aszcza te, kt\u00f3re koncentruj\u0105 si\u0119 na klasyfikacji, zwykle korzystaj\u0105 z tego samego przep\u0142ywu pracy wysokiego poziomu, kt\u00f3ry pokazano na poni\u017cszym diagramie. Przep\u0142yw pracy sk\u0142ada si\u0119 z dw\u00f3ch faz \u2014 szkolenia klasyfikatora i klasyfikacji nowych instancji. Obie fazy maj\u0105 wsp\u00f3lne kroki.<\/p>\n\n\n\n<p>Opis struktury trenowania<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Training Data wyodr\u0119bniamy zestaw danych do trenowania z bazy danych lub innych zasob\u00f3w<\/li><li>Load Data uruchamiamy proces pobrania danych przez aplikacje API<\/li><li>Pre-procesing wst\u0119pnie dostosowujemy dane do przetwarzania w tym przetwarzamy brakuj\u0105ce dane do zastosowanych algorytm\u00f3w<\/li><li>Feature extraction wyodr\u0119bniamy (uwypuklamy) niekt\u00f3re cechy danych\/wektor\u00f3w dla zastosowanych algorytm\u00f3w<\/li><li>Model training trenujemy (tworzymy) model docelowy<\/li><\/ul>\n\n\n\n<p>Opis struktury fazy drugiej tj testowania\/zachowania modelu<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>New Data przygotowanie zestawu danych testowania<\/li><li>Pre-procesing wst\u0119pnie dostosowujemy do przetwarzania w tym przetwarzamy brakuj\u0105ce dane<\/li><li>Feature extraction wyodr\u0119bniamy (uwypuklamy) niekt\u00f3re cechy danych\/wektor\u00f3w dla zastosowanych algorytm\u00f3w<\/li><li>Instance labeling utworzenie nowej instancji testowej i opisanie. Dane opisane etykiet\u0105, okresowo ponownie s\u0142u\u017c\u0105 dla fazy uczenia, tak by w uzasadnionych przypadkach ponownie nauczy\u0107 model i zast\u0105pi\u0107 stary model ponownie nauczonym w fazie klasyfikacji. Istotne jest by w tym zakresie stworzy\u0107 kompleksowe zestawy danych testuj\u0105cych i tworzy\u0107 nowe zestawy Testing set 1., Testing set 2. \u2026itd. Jest to swoista biblioteka opisanych danych testowych dla rozpatrywanego zagadnienia.<\/li><li>Labeling opisy instancji testowych<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tradycyjna architektura uczenia maszynowego<\/h3>\n\n\n\n<p>Dane strukturalne, takie jak dane transakcyjne, klient\u00f3w, analityczne i rynkowe, zwykle znajduj\u0105 si\u0119 w lokalnej relacyjnej bazie danych. Bior\u0105c pod uwag\u0119 j\u0119zyk zapyta\u0144, taki jak SQL, mo\u017cemy wykona\u0107 zapytanie dotycz\u0105ce danych u\u017cywanych do przetwarzania, jak pokazano w przep\u0142ywie pracy na poprzednim diagramie.<\/p>\n\n\n\n<p>Zazwyczaj wszystkie dane mog\u0105 by\u0107 przechowywane w pami\u0119ci i dalej przetwarzane za pomoc\u0105 biblioteki uczenia maszynowego, takiej jak Weka, Java-ML lub MALLET. Powszechn\u0105 praktyk\u0105 w projektowaniu architektury jest tworzenie potok\u00f3w danych, w kt\u00f3rych r\u00f3\u017cne etapy przep\u0142ywu pracy s\u0105 dzielone. Na przyk\u0142ad, aby utworzy\u0107 rekord danych klienta, by\u0107 mo\u017ce b\u0119dziemy musieli zebra\u0107 dane z r\u00f3\u017cnych \u017ar\u00f3de\u0142 danych. Rekord mo\u017ce by\u0107 nast\u0119pnie zapisany w po\u015bredniej bazie danych do dalszego przetwarzania. W takim przypadku nale\u017cy zaplanowa\u0107 odpowiednia przestrze\u0144 cyfrow\u0105 dla przechowywania planowanej ilo\u015bci danych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Typowe problemy z du\u017cymi danymi i sposoby realizacji projekt\u00f3w<\/h3>\n\n\n\n<p>Wielkie zbiory danych istnia\u0142y na d\u0142ugo przed wynalezieniem frazy Big Data. Na przyk\u0142ad banki i gie\u0142dy od lat przetwarzaj\u0105 miliardy transakcji dziennie, a linie lotnicze dysponuj\u0105 infrastruktur\u0105 czasu rzeczywistego na ca\u0142ym \u015bwiecie do operacyjnego zarz\u0105dzania rezerwacjami pasa\u017cer\u00f3w. Czym wi\u0119c tak naprawd\u0119 s\u0105 du\u017ce zbiory danych? Doug Laney (2001) zasugerowa\u0142, \u017ce du\u017ce zbiory danych s\u0105 definiowane przez trzy V: obj\u0119to\u015b\u0107, pr\u0119dko\u015b\u0107 i r\u00f3\u017cnorodno\u015b\u0107 (ang. Volume, Velocity, Variety). Dlatego, aby odpowiedzie\u0107 na pytanie, czy nasze dane s\u0105 du\u017ce, mo\u017cemy to prze\u0142o\u017cy\u0107 na nast\u0119puj\u0105ce trzy pytania podrz\u0119dne:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Czy mo\u017cesz przechowywa\u0107 swoje dane w pami\u0119ci, do kt\u00f3rej masz bezpo\u015bredni dost\u0119p?<\/li><li>Czy mo\u017cesz przetwarza\u0107 nowe przychodz\u0105ce dane za pomoc\u0105 jednej maszyny?<\/li><li>Czy Twoje dane pochodz\u0105 z jednego \u017ar\u00f3d\u0142a?<\/li><\/ul>\n\n\n\n<p>Je\u015bli na wszystkie te pytania odpowiedzia\u0142e\u015b twierdz\u0105co, to prawdopodobnie nasze dane nie s\u0105 du\u017ce i w\u0142a\u015bnie upro\u015bci\u0142e\u015b architektur\u0119 aplikacji.<\/p>\n\n\n\n<p>Je\u015bli Twoja odpowied\u017a na wszystkie te pytania brzmia\u0142a \u201enie\u201d, to Twoje dane s\u0105 du\u017ce! Je\u015bli jednak masz mieszane odpowiedzi, to jest to skomplikowane.<\/p>\n\n\n\n<p>Z punktu widzenia uczenia maszynowego istnieje zasadnicza r\u00f3\u017cnica w implementacji algorytmu w celu przetwarzania danych w pami\u0119ci lub z pami\u0119ci rozproszonej. Dlatego praktyczna zasada brzmi: je\u015bli nie mo\u017cesz przechowywa\u0107 danych w pami\u0119ci, do kt\u00f3rej masz bezpo\u015bredni dost\u0119p, powiniene\u015b zajrze\u0107 do biblioteki uczenia maszynowego Big Data. Dok\u0142adna odpowied\u017a zale\u017cy od problemu, kt\u00f3ry pr\u00f3bujesz rozwi\u0105za\u0107. Co do zasady wytw\u00f3rczej, nowy projekt, powinni\u015bmy zacz\u0105\u0107 od biblioteki dla jednej maszyny i prototypu planowanego algorytmu, by\u0107 mo\u017ce z podzbiorem danych, je\u015bli ca\u0142e dane nie mieszcz\u0105 si\u0119 w dost\u0119pnej pami\u0119ci. Po potwierdzeniu dobrych za\u0142o\u017ce\u0144 pocz\u0105tkowych do dalszej rozwagi mo\u017cna przeanalizowa\u0107 przej\u015bcie na co\u015b wi\u0119cej jak np. Mahout lub Spark<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Architektura aplikacji Big Data<\/h3>\n\n\n\n<p>Du\u017ce zbiory danych, takie jak dokumenty, blogi internetowe, sieci spo\u0142eczno\u015bciowe, dane z czujnik\u00f3w i inne, s\u0105 przechowywane w bazie danych NoSQL (Not only SQL), takiej jak MongoDB, lub w rozproszonym systemie plik\u00f3w, takim jak HDFS. W przypadku, gdy mamy do czynienia z danymi strukturalnymi, mo\u017cemy wdro\u017cy\u0107 mo\u017cliwo\u015bci baz danych za pomoc\u0105 system\u00f3w takich jak Cassandra lub HBase, kt\u00f3re s\u0105 zbudowane na Hadoop. Przetwarzanie danych odbywa si\u0119 zgodnie z paradygmatem MapReduce, kt\u00f3ry dzieli problemy z przetwarzaniem danych na mniejsze pod problemy i rozdziela zadania mi\u0119dzy w\u0119z\u0142y przetwarzania. Modele uczenia maszynowego s\u0105 ostatecznie trenowane za pomoc\u0105 bibliotek uczenia maszynowego, takich jak Mahout i Spark . <br><span style=\"color:#ff0505\" class=\"has-inline-color\"><strong>MongoDB<\/strong><\/span> to baza danych NoSQL, kt\u00f3ra przechowuje dokumenty w formacie podobnym do JSON. Wi\u0119cej na ten temat mo\u017cna przeczyta\u0107 na https:\/\/www.mongodb.com\/. <br><span style=\"color:#ff0000\" class=\"has-inline-color\"><strong>Hadoop<\/strong><\/span> to platforma do rozproszonego przetwarzania du\u017cych zbior\u00f3w danych w klastrze komputer\u00f3w. Zawiera w\u0142asny format systemu plik\u00f3w, HDFS, struktur\u0119 planowania zada\u0144, YARD i implementuje podej\u015bcie MapReduce do r\u00f3wnoleg\u0142ego przetwarzania danych. Wi\u0119cej informacji o Hadoop mo\u017cna znale\u017a\u0107 pod adresem https:\/\/hadoop.apache.org\/. &nbsp;<br><span style=\"color:#fd0303\" class=\"has-inline-color\"><strong>Cassandra<\/strong> <\/span>to system zarz\u0105dzania rozproszon\u0105 baz\u0105 danych, kt\u00f3ry zosta\u0142 stworzony, aby zapewni\u0107 odporn\u0105 na awarie, skalowaln\u0105 i zdecentralizowan\u0105 pami\u0119\u0107 masow\u0105. Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 na https:\/\/cassandra.apache.org\/. &nbsp;<br><span style=\"color:#ff0000\" class=\"has-inline-color\"><strong>HBase<\/strong> <\/span>to kolejna baza danych, kt\u00f3ra koncentruje si\u0119 na losowym dost\u0119pie do odczytu\/zapisu dla rozproszonej pami\u0119ci masowej. Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 na stronie https:\/\/hbase.apache.org\/.<\/p>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"klasyfikacja\">Klasyfikacja<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Klasyfikacja podstawowe informacje<\/h2>\n\n\n\n<p>Klasyfikacja jest stosowana w uczeniu nadzorowanym w kt\u00f3rym maszyna ucz\u0105c si\u0119 na podstawie danych wej\u015bciowych tworzy now\u0105 obserwacj\u0119 lub klasyfikuje dane do jakiej\u015b klasy (grupy).<\/p>\n\n\n\n<p>Najcz\u0119\u015bciej jednak klasyfikacja to proces kategoryzacji danego zbioru danych na klasy. Mo\u017ce by\u0107 przeprowadzana zar\u00f3wno na danych ustrukturyzowanych, jak i nieustrukturyzowanych. Proces rozpoczyna si\u0119 od przewidzenia klasy danych punkt\u00f3w. Klasy s\u0105 cz\u0119sto okre\u015blane jako cel, etykieta lub kategoria.<\/p>\n\n\n\n<p>Przy takim podej\u015bciu w efekcie ko\u0144cowym otrzymujemy model prognozy klasyfikacji (tj przydzielania nowych danych do r\u00f3\u017cnych klas) opieraj\u0105cy si\u0119 na aproksymacji funkcji odwzorowania ze zmiennych wej\u015bciowych ci\u0105g\u0142ych i\/lub dyskretnych na dyskretne zmienne wyj\u015bciowe. G\u0142\u00f3wnym celem jest okre\u015blenie, do kt\u00f3rej klasy\/kategorii b\u0119d\u0105 nale\u017ca\u0142y nowe dane. Klasyfikacja jest znacznym uproszczeniem i przyspieszeniem proces\u00f3w decyzyjnych opracowywanych algorytm\u00f3w.<\/p>\n\n\n\n<p><span style=\"color:#fd0303\" class=\"has-inline-color\">Przyk\u0142ad:<\/span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>dane ci\u0105g\u0142e na dyskretne<\/strong> \u2013 (ci\u0105g\u0142a) temperatura poni\u017cej 20<sup>o<\/sup>C \u2013 (dyskretna) za zimno, temperatura  powy\u017cej 30<sup>o<\/sup>C \u2013 za ciep\u0142o<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>dane dyskretne na dyskretne<\/strong> \u2013 (dyskretna) litera \u201ea\u201d \u2013 (dyskretna) samog\u0142oska<\/p>\n\n\n\n<p>W pierwszym przypadku otrzymujemy sklasyfikowanie skali temperatury na trzy klasy [za zimno], [OK], [za ciep\u0142o], w drugim przypadku otrzymujemy sklasyfikowanie alfabetu na dwie klasy [samog\u0142oska], [sp\u00f3\u0142g\u0142oska].<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Terminologia i definicje stosowane w klasyfikacji<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Klasyfikator \u2013 algorytm\/metoda\/technika u\u017cyta do zmapowania danych wej\u015bciowych na okre\u015blone klasy\/grupy\/kategorie wyj\u015bciowe.<\/li><li>Model klasyfikatora \u2013 model prognozowania lub wnioskowania danych treningowych do przydzielania w zakresie generowanych klas lub zdyskretyzowanych warto\u015bci wniosk\u00f3w wyj\u015bciowych.<\/li><li>Cecha \u2013 mierzalna w\u0142a\u015bciwo\u015b\u0107 obserwacji<\/li><li>Klasyfikacja binarna \u2013 klasyfikacja kt\u00f3ra na wyj\u015bciu mo\u017ce posiada\u0107 stany logiczne np. [ma]-[nie ma], [0]-[1], [prawda-fa\u0142sz].<\/li><li>Klasyfikacja wieloklasowa \u2013 klasyfikacja, kt\u00f3ra ma wi\u0119cej ni\u017c dwie klasy na wyj\u015bciu jest klasyfikacja wieloklasow\u0105. Klasyfikacja wieloklasowa musi spe\u0142nia\u0107 warunek, i\u017c ka\u017cda dana wej\u015bciowa na wyj\u015bciu mo\u017ce by\u0107 przypisana tylko do jednej z klas wyj\u015bciowych lub wniosku<\/li><li>Klasyfikacja etykietowana \u2013 w tym przypadku ka\u017cda z danych mo\u017ce by\u0107 przypisana do wi\u0119cej ni\u017c jednej klasy lub wniosku decyzyjnego w zale\u017cno\u015bci od przypisanej etykiety(opisu).<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Rodzaje metod uczenia stosowane w klasyfikatorach<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Uczenie leniwe (lazy learn) &#8211; klasyfikacja odbywa si\u0119 przy u\u017cyciu najbardziej powi\u0105zanych danych w przechowywanych danych treningowych. To oznacza, \u017ce w pierwszym kroku uruchamiamy kwerend\u0119 w obs\u0142ugiwanej bazie danych SQL i po jej zwrocie otrzymane wst\u0119pnie przygotowane dane s\u0142u\u017c\u0105 do klasyfikacji. Typowy przyk\u0142ad algorytmu k-nearest neighbor.<\/li><li>Uczenie ch\u0119tne (eager learn) \u2013 klasyfikacja odbywa si\u0119 na zasadzie przetwarzania wszystkich danych wej\u015bciowych wg wst\u0119pnie przyj\u0119tej hipotezy. Typowy przyk\u0142ad sztuczne sieci neuronowe, drzewa decyzyjne.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Drzewo decyzyjne<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Informacje og\u00f3lne<\/h3>\n\n\n\n<p>Jedn\u0105 z najbardziej intuicyjnych metod klasyfikacji i predykcji jest drzewo decyzyjne. G\u0142\u00f3wn\u0105 cech\u0105 tej metody jest fakt, i\u017c najcz\u0119\u015bciej jest ona oparta o hipotetyczne regu\u0142y, a nie o parametry. Uszczeg\u00f3\u0142awiaj\u0105c wcze\u015bniej omawian\u0105 struktur\u0119 drzewa nale\u017cy zauwa\u017cy\u0107, \u017ce istotnym elementem budowania zale\u017cno\u015bci jest spos\u00f3b trenowania (obliczania decyzji) na podstawie danych w\u0119z\u0142a.<\/p>\n\n\n\n<p>Dodatkowe poj\u0119cia zwi\u0105zane z drzewem decyzyjnym &#8211; <strong>ENTROPIA<\/strong>. Entropia to upraszczaj\u0105c swoista czysto\u015b\u0107 danych w danym w\u0119\u017ale. Zasada jest nast\u0119puj\u0105ca \u2013 im dane s\u0105 bardziej \u201eczyste\u201d (bardziej jednoznaczne) tym ni\u017csza jest warto\u015b\u0107 entropii.<\/p>\n\n\n\n<p><span style=\"color:#fa0101\" class=\"has-inline-color\">Przyk\u0142ad<\/span> obliczenia entropii. Mamy ankiet\u0119 wype\u0142nion\u0105 przez 100 kierowc\u00f3w pewnego miasta K z 1 pytaniem, kt\u00f3r\u0105 tras\u0105 \u201eA\u201d czy \u201eB\u201d pojedziesz do miasta W z miasta K\u201d. 70 kierowc\u00f3w odpowiedzia\u0142o \u201eA\u201d pozostali zaprzeczyli. Czyli mamy nast\u0119puj\u0105ce dane jako zbi\u00f3r pr\u00f3by X, kt\u00f3ra sk\u0142ada si\u0119 ze 100 danych w tym 70 danych z poziomem true, oraz 30 danych z poziomem false. Dodatkowo jest jedna dana ukryta (czy mo\u017ce raczej domy\u015blna), ilo\u015b\u0107 klas m=2, czyli klasyfikacja binarna. Entropia jest opisana wzorem:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie1-1.png\" alt=\"\" class=\"wp-image-25888\" width=\"212\" height=\"85\"\/><\/figure><\/div>\n\n\n\n<p>Gdzie P<sub>k<\/sub> jest prawdopodobie\u0144stwem wyst\u0105pienia okre\u015blonej klasy. <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/091entropia%20%E2%80%94%20kopia.xlsx\">Przyk\u0142adowe obliczenie entropii w excel<\/a>. <\/p>\n\n\n\n<p>Uwaga \u2013 w naszym przypadku log<sub>2,<\/sub> poniewa\u017c mamy m=2 klasy. Warto\u015b\u0107 podstawy logarytmu powinna odpowiada\u0107 ilo\u015bci klas je\u017celi chcemy normalizacji, by nasze wyniki oblicze\u0144 nale\u017ca\u0142y do zbioru liczb R<sub>+<\/sub>(0,1&gt;.<\/p>\n\n\n\n<p>Dla omawianego przyk\u0142adu H=0,881. Co to w\u0142a\u015bciwie oznacza? Dla por\u00f3wnania policzmy jeszcze entropi\u0119 dla podzia\u0142u w ankiecie 50\/50 oraz 99\/1. Obliczone odpowiednio H=1 oraz H=0,08~0. Zatem mamy trzy entropie w\u0119z\u0142owe 1; 0,88; 0,08. To jak\u0105 tras\u0105 pojedziemy (lub jak\u0105 tras\u0105 poprowadzi nas sztuczna inteligencja w oparciu o dane) zale\u017ce\u0107 b\u0119dzie od decyzji, kt\u00f3r\u0105 podejmiemy na podstawie oblicze\u0144. Przyk\u0142adowo dla H=1 b\u0119dziemy si\u0119 waha\u0107 a nawigacja wska\u017ce nam dwie mo\u017cliwe trasy do wyboru lub wybierze losowo. Dla H=0,88 b\u0119dzie to wskazanie na tras\u0119 \u201eA\u201d aczkolwiek sami widzimy, \u017ce to jest jednak bardziej wskazanie a nie jednoznaczna decyzja. Nie ma jednak \u017cadnych w\u0105tpliwo\u015bci dla H\u21920, tylko trasa \u201eA\u201d.<\/p>\n\n\n\n<p>Wracaj\u0105c do interpretacji \u201eczysto\u015bci\u201d danych. Najmniej korzystna sytuacja to taka, gdzie entropia wynosi \u201e1\u201d. Oznacza to, \u017ce warto\u015b\u0107 decyzyjna w\u0119z\u0142a w drzewie jest praktycznie \u017cadna. Nale\u017cy zatem podczas tworzenia drzewa decyzyjnego unika\u0107 takich w\u0119z\u0142\u00f3w, gdzie zawarte s\u0105 w\u0119z\u0142y o warto\u015bci entropii = 1. Czasami wskazana jest analiza danych i taka ich modyfikacja, kt\u00f3ra pozwoli na optymalizacj\u0119.<\/p>\n\n\n\n<p>Dodatkowe poj\u0119cia zwi\u0105zane z drzewem decyzyjnym \u2013 Zysk informacji<\/p>\n\n\n\n<p>Zysk informacji to koncepcja, kt\u00f3rej g\u0142\u00f3wnym celem jest oszacowanie informacji i mo\u017cna uzyska\u0107 poprzez rozdzielenie bie\u017c\u0105cego badanego zbioru danych w odniesieniu na atrybuty. Zysk informacji jest zdefiniowany jako r\u00f3\u017cnica pomi\u0119dzy entropi\u0105 zmiennej (w\u0119z\u0142a), a entropia atrybutu pochodz\u0105cego od tego w\u0119z\u0142a (rozga\u0142\u0119zienia). Powy\u017csze mo\u017cna opisa\u0107 wzorem jak poni\u017cej:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie2-1.png\" alt=\"\" class=\"wp-image-25889\" width=\"157\" height=\"35\"\/><\/figure><\/div>\n\n\n\n<p>Dodatkowe poj\u0119cie zwi\u0105zane z drzewem decyzyjnym \u2013 <strong>Wsp\u00f3\u0142czynnik zysku informacji<\/strong><\/p>\n\n\n\n<p>Poniewa\u017c mo\u017ce si\u0119 zdarzy\u0107, \u017ce wzajemne r\u00f3\u017cnice dla oblicze\u0144 zysku informacji mog\u0105 by\u0107 nieznaczne, a co za tym idzie niezauwa\u017calne mo\u017cna zastosowa\u0107 zabieg uwypuklaj\u0105cy nieznaczne r\u00f3\u017cnice. Aby zredukowa\u0107 takie nastawienie, mo\u017cna zastosowa\u0107 \u201ewsp\u00f3\u0142czynnik wzmocnienia\u201d. Wsp\u00f3\u0142czynnik wzmocnienia dla atrybutu jest zdefiniowany jako:<\/p>\n\n\n\n<p>wsp\u00f3\u0142czynnik wzmocnienia atrybutu = zysk-informacja-atrybut \/ informacja-wewn\u0119trzna-atrybut<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie3-1.png\" alt=\"\" class=\"wp-image-25890\" width=\"269\" height=\"98\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Algorytm<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Dane wej\u015bciowe. Zbi\u00f3r danych wej\u015bciowych nale\u017cy przygotowa\u0107 w tabeli dwuwymiarowej. Wszystkie atrybuty nale\u017cy umie\u015bci\u0107 w kolumnach, z opcja sortowania po kolumnach (atrybutach). Dla u\u0142atwienia najlepiej kolumn\u0119 wynik\u00f3w umie\u015bci\u0107 jako ko\u0144cowa po prawej stronie<\/li><li>Dane wyj\u015bciowe struktura drzewa zako\u0144czona li\u015b\u0107mi.<\/li><li>Wykonaj w p\u0119tli kolejne kroki:<ul><li><span class=\"has-inline-color has-ast-global-color-0-color\">Oblicz entropi\u0119 dla ca\u0142o\u015bci danych<\/span><\/li><\/ul><ul><li><span class=\"has-inline-color has-ast-global-color-0-color\">Posortuj dane wyj\u015bciowe dla ka\u017cdego argumentu wg danych kolumny wyj\u015bciowej<\/span><\/li><\/ul><ul><li><span class=\"has-inline-color has-ast-global-color-0-color\">Dla ka\u017cdego rozga\u0142\u0119zienia (zwi\u0105zanego z w\u0119z\u0142em-atrybutem) oblicz zysk informacji<\/span><ul><li><span class=\"has-inline-color has-ast-global-color-0-color\">W przypadku koniecznym oblicz dodatkowo wsp\u00f3\u0142czynnik zysku informacji<\/span><\/li><\/ul><\/li><\/ul><ul><li><span class=\"has-inline-color has-ast-global-color-0-color\">Wyznacz w\u0119ze\u0142 (w\u0119z\u0142y) i powr\u00f3\u0107 do pkt 1<\/span><\/li><\/ul><\/li><li>Powtarzaj czynno\u015b\u0107 dla ka\u017cdego nowego w\u0119z\u0142a a\u017c do osi\u0105gni\u0119cia poziomu li\u015bci tj. kiedy w\u0119ze\u0142 zako\u0144czy si\u0119 li\u015b\u0107mi jako elementami z kolumny wynik\u00f3w.<\/li><li>Je\u015bli wynik jest niesatysfakcjonuj\u0105cy przeanalizuj inn\u0105 konfiguracj\u0119 argument\u00f3w lub zmodyfikuj dane.<\/li><\/ul>\n\n\n\n<p>Kompletny przyk\u0142ad oblicze\u0144 w Excel ca\u0142ego drzewa oraz oblicze\u0144 cz\u0105stkowych \u201eH\u201d, \u201eG\u201d, \u201eS\u201d w pliku.<br><a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/092Tree%20%E2%80%94%20kopia.xlsx\">Sprawd\u017a w excel<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Predykcja liniowa<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Informacje og\u00f3lne<\/h3>\n\n\n\n<p>Regresja liniowa to model predykcyjny (prognostyczny) , w kt\u00f3rym dane ucz\u0105ce s\u0105 wykorzystywane do konstruowania modelu liniowego w celu przewidywania warto\u015bci wynikowej dla okre\u015blonych atrybut\u00f3w. Kiedy m\u00f3wimy o modelu liniowym, mamy na my\u015bli to, \u017ce zwi\u0105zek mi\u0119dzy warto\u015bci\u0105 docelow\u0105 (zmienn\u0105 zale\u017cn\u0105) a atrybutem (zmiennymi niezale\u017cnymi) jest liniowy. W analizie regresji liniowej mo\u017ce wyst\u0119powa\u0107 jedna lub wi\u0119cej zmiennych niezale\u017cnych. Gdy istnieje tylko jedna zmienna niezale\u017cna, model liniowy wyra\u017ca si\u0119 powszechnie obserwowan\u0105 funkcj\u0105 liniow\u0105 y = mx + b, gdzie y jest zmienn\u0105 zale\u017cn\u0105, m jest nachyleniem prostej, a b jest punktem przeci\u0119cia osi 0Y dla atrybutu x=0. W wi\u0119kszo\u015bci przypadk\u00f3w istnieje wi\u0119cej ni\u017c jedna zmienna niezale\u017cna; dlatego model liniowy jest reprezentowany jako y = m<sub>1<\/sub>x<sub>1<\/sub> + m<sub>2<\/sub>x<sub>2<\/sub> + &#8230; + m<sub>n<\/sub>x<sub>n<\/sub> + b, gdzie jest n zmiennych niezale\u017cnych, a m<sub>i<\/sub> jest wsp\u00f3\u0142czynnikiem zwi\u0105zanym z okre\u015blon\u0105 zmienn\u0105 niezale\u017cn\u0105 x<sub>i<\/sub>, dla i = 1 &#8230; n. Aby skonstruowa\u0107 taki model liniowy, musimy znale\u017a\u0107 warto\u015bci m<sub>i<\/sub> i b na podstawie znanych warto\u015bci y(x<sub>i<\/sub>) w ucz\u0105cym zbiorze danych. W naszym przypadku obliczymy r\u0119cznie zale\u017cno\u015b\u0107 funkcji od jednej zmiennej.<\/p>\n\n\n\n<p><span style=\"color:#fc0404\" class=\"has-inline-color\">Przyk\u0142ad<\/span> Sprzedajesz lody na pla\u017cy w Sopocie i chcia\u0142by\u015b wiedzie\u0107 ile zam\u00f3wi\u0107, \u017ceby sprzeda\u0107 maksymalna ilo\u015b\u0107 towaru tak by nie zosta\u0107 z niesprzedanym towarem w pojemniku kt\u00f3ry jak wiadomo stopnieje i b\u0119dzie strat\u0105. Chcia\u0142by\u015b w pierwszym kroku zastanowi\u0107 si\u0119 nad prognozowaniem sprzeda\u017cy lod\u00f3w na podstawie prognozy pogody. Zebra\u0142e\u015b pewne dane, kt\u00f3re wi\u0105\u017c\u0105 u\u015brednione tygodniowo wysokie temperatury w ci\u0105gu dnia ze sprzeda\u017c\u0105 lod\u00f3w w sezonie letnim. Zebrane dane ucz\u0105ce uporz\u0105dkowane w tabeli s\u0105 nast\u0119puj\u0105ce.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie4-1.png\" alt=\"\" class=\"wp-image-25891\" width=\"557\" height=\"347\"\/><\/figure><\/div>\n\n\n\n<p>Jak wspomniano naszym celem jest wyznaczenie modelu jako og\u00f3lnego r\u00f3wnania o u\u015brednionej postaci<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie5-1.png\" alt=\"\" class=\"wp-image-25892\" width=\"562\" height=\"107\"\/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie6-1.png\" alt=\"\" class=\"wp-image-25893\" width=\"608\" height=\"300\"\/><\/figure><\/div>\n\n\n\n<p>Mo\u017cna skorzysta\u0107 z gotowej funkcji w Excel \u201eobliczenie linii trendu\u201d, ale w naszych rozwa\u017caniach wa\u017cny jest element poznawczy zagadnienia i w tym przypadku skorzystamy z oblicze\u0144 wykonanych r\u0119cznie. Poniewa\u017c do oblicze\u0144 stosujemy metody u\u015bredniaj\u0105ce, jako fakt mo\u017cemy przyj\u0105\u0107, \u017ce warto\u015b\u0107 u\u015bredniona nie koniecznie b\u0119dzie w 100% zbie\u017cna w ka\u017cdym punkcie atrybut \u2013 wynik, ale mo\u017ce r\u00f3wnie\u017c le\u017ce\u0107 w jego otoczeniu co oznacza, \u017ce nasza predykcja b\u0119dzie obarczona pewnym b\u0142\u0119dem. By oszacowa\u0107 dok\u0142adno\u015b\u0107 naszego modelu musimy obliczy\u0107 wsp\u00f3\u0142czynnik determinacji R<sup>2<\/sup>. Zrozumienie istoty tego wsp\u00f3\u0142czynnika jest proste o ile spojrzymy na wz\u00f3r od strony graficznej. Og\u00f3lna posta\u0107 wsp\u00f3\u0142czynnika determinacji ma posta\u0107<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie7-1.png\" alt=\"\" class=\"wp-image-25894\" width=\"409\" height=\"57\"\/><\/figure><\/div>\n\n\n\n<p>gdzie regresyjna suma kwadrat\u00f3w jest opisana wzorem:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie8-1.png\" alt=\"\" class=\"wp-image-25895\" width=\"461\" height=\"94\"\/><\/figure><\/div>\n\n\n\n<p>a ca\u0142kowita suma kwadrat\u00f3w jest opisana wzorem:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie9-1.png\" alt=\"\" class=\"wp-image-25896\" width=\"411\" height=\"98\"\/><\/figure><\/div>\n\n\n\n<p>Interpretacja geometryczna<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie10.png\" alt=\"\" class=\"wp-image-25897\" width=\"543\" height=\"405\"\/><\/figure><\/div>\n\n\n\n<p>Jak nale\u017cy interpretowa\u0107 wyniki R<sup>2<\/sup> . W zasadzie otrzymane wyniki powinny znajdowa\u0107 si\u0119 w przedziale R<sub>+ <\/sub>[1, 0]. W praktyce warto\u015b\u0107 \u201e1\u201d oznacza 100% zgodno\u015bci naszej predykcji ze zbiorem danych. Oczywi\u015bcie to przypadek idealny, ale co do zasady wynik 90% i wy\u017cszy to oznacza obliczenie predykcji z bardzo du\u017cym stopniem pewno\u015bci. Odwrotnie, je\u015bli nasz wynik jest r\u00f3wny zeru to dopasowanie jest \u017cadne.<\/p>\n\n\n\n<p>Pozostaj\u0105 jeszcze do interpretacji dwa przypadki<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>R2 osi\u0105ga warto\u015b\u0107 ujemn\u0105<\/li><li>SST jest r\u00f3wne zero<\/li><\/ul>\n\n\n\n<p>R2&lt;0 &#8211; Ze wzgl\u0119d\u00f3w praktycznych najni\u017csze R2, jakie mo\u017cna uzyska\u0107, to zero, ale tylko dlatego, \u017ce za\u0142o\u017cenie jest takie, \u017ce je\u015bli nasza obliczona linia regresji nie jest lepsza ni\u017c \u015brednia arytmetyczna to nie jest dopasowana i procentowo dopasowanie jest r\u00f3wne 0% czyli go nie ma.<\/p>\n\n\n\n<p>&nbsp;Twierdzenie, \u017ce warto\u015b\u0107 R2 musi by\u0107 wi\u0119ksza lub r\u00f3wna zero, opiera si\u0119 na za\u0142o\u017ceniu, \u017ce je\u015bli uzyskamy ujemn\u0105 warto\u015b\u0107 R2, to trzeba odrzuci\u0107 wszelkie obliczenia regresji i zastosowa\u0107 warto\u015b\u0107 \u015bredni\u0105. Ujemny R2 oznacza, \u017ce nasze dopasowanie jest gorsze ni\u017c \u015brednia arytmetyczna.<\/p>\n\n\n\n<p>Oczywi\u015bcie mo\u017cemy dla w\u0142asnych potrzeb przyj\u0105\u0107, \u017ce jednak zsumowany b\u0142\u0105d kwadratowy nie jest miar\u0105, kt\u00f3ra ma znaczeni i to jest OK. (na przyk\u0142ad mo\u017ce wi\u0119ksze dla nas ma znaczenie b\u0142\u0105d bezwzgl\u0119dny zamiast R2)<\/p>\n\n\n<blockquote>\n<p style=\"text-align: left;\"><span style=\"color: #ff0000;\">SST=0 <\/span>jest to szczeg\u00f3lny przypadek, kiedy wszystkie punkty (o ile s\u0105) le\u017c\u0105 na osi X co oznacza, i\u017c mamy przypadek linii horyzontowej (poziomej) kt\u00f3ry jest jednocze\u015bnie nasza osia X. Ten problem wymaga innego podej\u015bcia w matematycznego (badanie warto\u015bci R2 w otoczeniu punktu \u201d0\u201d).&nbsp; W naszych rozwa\u017caniach wystarczy pami\u0119ta\u0107, \u017ce jest to przypadek szczeg\u00f3lny (niezdefiniowany) i o ile mamy taki przypadek to wystarczy wiedzie\u0107 \u017ce nasza funkcja ma posta\u0107 y=0 dla dowolnego x z przedzia\u0142u X\u2208R(-\u221e\u2002; +\u221e).<\/p>\n<\/blockquote>\n\n\n<p>Skoro potrafimy oszacowa\u0107 dok\u0142adno\u015b\u0107 naszej funkcji to powracaj\u0105c do naszego przyk\u0142adu z lodami obliczmy nasza regresje dla omawianego przypadku:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Algorytm<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Dane wej\u015bciowe najlepiej przygotowa\u0107 w tabeli w taki spos\u00f3b by po lewej stronie umie\u015bci\u0107 atrybuty po prawej warto\u015bci.<\/li><li>Dane wyj\u015bciowe obliczone wsp\u00f3\u0142czynniki \u201em\u201d oraz \u201eb\u201d<\/li><li>Wykonaj kolejne kroki<ul><li><span class=\"has-inline-color has-ast-global-color-0-color\">Oblicz warto\u015b\u0107 nachylenia \u201em\u201d oraz warto\u015b\u0107 przesuni\u0119cia  &#8222;b&#8221; zgodnie ze wzorem<\/span><\/li><\/ul><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie11-2.png\" alt=\"\" class=\"wp-image-25899\" width=\"369\" height=\"82\"\/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie12-1.png\" alt=\"\" class=\"wp-image-25900\" width=\"381\" height=\"69\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Oblicz wsp\u00f3\u0142czynnik determinacji R2 i oszacuj poprawno\u015b\u0107 wynik\u00f3w w zale\u017cno\u015bci od potrzeb<\/span><\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Je\u015bli wynik jest niesatysfakcjonuj\u0105cy przeanalizuj dane wej\u015bciowe.<\/li><\/ul>\n\n\n\n<p>Kompletny zestaw oblicze\u0144 dla naszego przypadku w <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/093LinearPrediction%20%E2%80%94%20kopia.xlsx\">Excel tutaj<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Klasyfikator Naive Bayers<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Informacje og\u00f3lne<\/h3>\n\n\n\n<p>Najwa\u017cniejsz\u0105 cech\u0105 cz\u0119sto wskazywan\u0105 jako istotn\u0105 r\u00f3\u017cnic\u0119 klasyfikatora Naive Bayes jest stosowanie tego klasyfikatora nie na danych liczbowych a na danych kategoryzyj\u0105cych. W takim \u015brodowisku danych Naive Bayes jest zdecydowanie bardziej wydajny od wi\u0119kszo\u015bci innych klasyfikator\u00f3w. Kategoryzacja danych opiera si\u0119 na prawdopodobie\u0144stwie warunkowym jako przes\u0142anki wyboru i w oparciu o r\u00f3\u017cne atrybuty x<sub>1<\/sub>, x<sub>2<\/sub>, x<sub>3<\/sub>\u2026x<sub>n<\/sub> dla ka\u017cdej pr\u00f3bki istnieje mo\u017cliwo\u015b\u0107 obliczenia ka\u017cdej mo\u017cliwej klasy.<\/p>\n\n\n\n<p>Twierdzenie Bayes\u2019a opisane jest r\u00f3wnaniem<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie13-1.png\" alt=\"\" class=\"wp-image-25901\" width=\"680\" height=\"85\"\/><\/figure><\/div>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dla P(x)\u00b90<\/p>\n\n\n\n<p>Przedstawiony powy\u017cej wz\u00f3r jest dla jednej klasy i jednego zwi\u0105zanego z ni\u0105 atrybutu. W przypadku kiedy mamy wi\u0119cej ni\u017c jedno prawdopodobie\u0144stwo atrybutu, P(x<sub>1<\/sub>), P(x<sub>2<\/sub>,), P(x<sub>3<\/sub>)\u2026 P(x<sub>n<\/sub>) to dla ka\u017cdej klasy y<sub>k<\/sub>&nbsp; prawdopodobie\u0144stwo od atrybut\u00f3w x<sub>1<\/sub>, x<sub>2<\/sub>, x<sub>3<\/sub>\u2026x<sub>n<\/sub> mo\u017cemy opisa\u0107 wzorem:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie14-1.png\" alt=\"\" class=\"wp-image-25902\" width=\"571\" height=\"109\"\/><\/figure><\/div>\n\n\n\n<p>Zatem dla wielu atrybut\u00f3w i po uwzgl\u0119dnieniu, \u017ce licznik i mianownik upraszcza si\u0119, poniewa\u017c oba dziel\u0105 si\u0119 przez P(x) do obliczenia po podstawieniu otrzymujemy nast\u0119puj\u0105cy wz\u00f3r ko\u0144cowy:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie15-1.png\" alt=\"\" class=\"wp-image-25903\" width=\"189\" height=\"51\"\/><\/figure><\/div>\n\n\n\n<p>gdzie \u201em\u201d to liczba kategorii atrybutu.<\/p>\n\n\n\n<p>Podsumowuj\u0105c koniecznie przy obliczaniu prawdopodobie\u0144stwa warunkowego musimy pami\u0119ta\u0107, \u017ce obliczamy prawdopodobie\u0144stwo czego\u015b i nie ma tu znaczenia czy m\u00f3wimy o elemencie negatywnym, pozytywnym, czy np. neutralnym itd. M\u00f3wimy o obliczeniach jako celu jak np. 5 skrzy\u017cowa\u0144 pod rz\u0105d z zielonym \u015bwiat\u0142em, czy 4 kontrole radarowe przez policj\u0119 na odcinku 100km danej trasy. W obu przypadkach, dla obliczanego prawdopodobie\u0144stwa warunkowego jest to obliczenie danego prawdopodobie\u0144stwa warunkowego i nic wi\u0119cej bez wzgl\u0119du na to jaki mamy do tych dw\u00f3ch przypadk\u00f3w stosunek personalny.<\/p>\n\n\n\n<p>I ostatnia uwaga \u2013 og\u00f3lnie mo\u017cemy powiedzie\u0107, \u017ce twierdzenie Bayes\u2019a w zasadzie oszacowuje nasza hipotez\u0119 na podstawie dostarczonych dowod\u00f3w<\/p>\n\n\n\n<p>Przyk\u0142ad prostego obliczenia prawdopodobie\u0144stwa warunkowego.<\/p>\n\n\n\n<p>Jest wzmo\u017cony okres zachorowa\u0144 na gryp\u0119. W\u0142a\u015bnie mamy b\u00f3l gard\u0142a i boli nas g\u0142owa i zak\u0142adamy, \u017ce pewnie mamy gryp\u0119, poniewa\u017c zgodnie z informacj\u0105 90% przypadk\u00f3w grypy objawia si\u0119 w fazie wst\u0119pnej w\u0142a\u015bnie tymi objawami (to tzw. Fa\u0142sz Stawki Podstawowej).<\/p>\n\n\n\n<p>Przejrzyjmy wi\u0119c wszystkie dost\u0119pne informacje (Dowody jakie mamy pozyskane z publikacji)<\/p>\n\n\n\n<p><span class=\"has-inline-color has-ast-global-color-0-color\">Dow\u00f3d 1.<\/span>&nbsp;<span style=\"color:#fda501\" class=\"has-inline-color\"> 90%<\/span> os\u00f3b maj\u0105cych gryp\u0119 mia\u0142o te same objawy<br><span class=\"has-inline-color has-ast-global-color-0-color\">Dow\u00f3d 2<\/span>. Z danych statystycznych wiemy, \u017ce w naszym kraju \u015brednio rocznie na gryp\u0119 choruje ok. <span style=\"color:#1dff04\" class=\"has-inline-color\">5%<\/span> populacji<br><span class=\"has-inline-color has-ast-global-color-0-color\">Dow\u00f3d 4<\/span>. Z danych statystycznych wiemy, \u017ce rocznie do lekarzy z b\u00f3lem gard\u0142a i b\u00f3lem g\u0142owy zg\u0142asza si\u0119 \u015brednio rocznie <span style=\"color:#0047fa\" class=\"has-inline-color\">20%<\/span> populacji<\/p>\n\n\n\n<p>Hipoteza. Chcemy wiedzie\u0107 jakie jest prawdopodobie\u0144stwo, \u017ce mamy gryp\u0119. Dla lepszego zrozumienia zmodyfikujemy wz\u00f3r podstawowy dla jednej klasy:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1206\" height=\"80\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie16-1.png\" alt=\"\" class=\"wp-image-25904\"\/><\/figure>\n\n\n\n<p>Postawmy nasze dane do wzoru:<\/p>\n\n\n\n<p>HIPOTEZA:   P(<span style=\"color:#f61105\" class=\"has-inline-color\">\u017ce mamy gryp\u0119<\/span>)=(<span style=\"color:#fba505\" class=\"has-inline-color\">90%<\/span>*<span style=\"color:#05f601\" class=\"has-inline-color\">5%<\/span>)\/<span style=\"color:#061bfd\" class=\"has-inline-color\">20%<\/span>= 0,9*0,05\/0,2=0,225<\/p>\n\n\n\n<p>Tak wi\u0119c, prawdopodobie\u0144stwo, \u017ce mamy gryp\u0119 wynosi 22,5%. Oczywi\u015bcie mamy tutaj jedn\u0105 klas\u0119, ale czynnik\u00f3w sk\u0142adowych mo\u017ce by\u0107 znacznie wi\u0119cej.<\/p>\n\n\n\n<p>Za\u0142\u00f3\u017cmy nast\u0119puj\u0105cy scenariusz. Mamy zestawienie danych z analizy obrazu diagnozowa\u0144 raka p\u0142uc, gdzie mo\u017cliwo\u015b\u0107 wyst\u0105pienia nowotworu oceniana jest na podstawie atrybut\u00f3w. 10 r\u00f3\u017cnych lekarzy na podstawie tego samego zdj\u0119cia odznaczy\u0142o nast\u0119puj\u0105ce atrybuty<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Rozmiar kom\u00f3rki zdeformowanej,<\/li><li>Ilo\u015b\u0107 kom\u00f3rek zdeformowanych na badan\u0105 jednostk\u0119,<\/li><li>Obszar zajmowany przez zdeformowane kom\u00f3rki<\/li><\/ol>\n\n\n\n<p>Przy czym w naszym przypadku ka\u017cdy z atrybut\u00f3w posiada dwie warto\u015bci. Nale\u017cy zauwa\u017cy\u0107, \u017ce nasze dane przedstawione s\u0105 w postaci kategorii, o ile w podobnych obliczeniach pojawiaj\u0105 si\u0119 dane liczbowe to nale\u017cy je skategoryzowa\u0107 przed dokonaniem oblicze\u0144. Nasza hipoteza jest nast\u0119puj\u0105ca: chcemy wiedzie\u0107 jak du\u017ce jest prawdopodobie\u0144stwo, \u017ce diagnoza ma wynik pozytywny, m\u00f3wi\u0105c pro\u015bciej chcemy wiedzie\u0107 jak bardzo jednoznaczna jest diagnoza na podstawie opinii 10 lekarzy.<\/p>\n\n\n\n<p>Tabela jak i wszelkie obliczenia przyk\u0142adowe w pliku <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/094Bayes%20%E2%80%94%20kopia.xlsx\">excel tutaj<\/a>.<\/p>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"klastrowanie\">Klastrowanie<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Uczenie nienadzorowane &#8211; kl\u0105twa wymiarowo\u015bci<\/h2>\n\n\n\n<p>Kl\u0105twa wymiarowo\u015bci odnosi si\u0119 do sytuacji, w kt\u00f3rej mamy du\u017c\u0105 liczb\u0119 cech, cz\u0119sto setki lub tysi\u0105ce, kt\u00f3re prowadz\u0105 do niezwykle du\u017cej przestrzeni z rzadkimi danymi, a w konsekwencji do anomalii odleg\u0142o\u015bci. Na przyk\u0142ad przy du\u017cych wymiarach prawie wszystkie pary punkt\u00f3w s\u0105 jednakowo oddalone od siebie; w rzeczywisto\u015bci prawie wszystkie pary maj\u0105 odleg\u0142o\u015b\u0107 blisk\u0105 \u015bredniej odleg\u0142o\u015bci. Innym przejawem kl\u0105twy jest to, \u017ce dowolne dwa wektory s\u0105 prawie ortogonalne, co oznacza, \u017ce wszystkie k\u0105ty s\u0105 bliskie 90 stopni. To praktycznie sprawia, \u017ce pomiar odleg\u0142o\u015bci jest bezu\u017cyteczny. Lekarstwo na przekle\u0144stwo wymiarowo\u015bci mo\u017cna znale\u017a\u0107 w jednej z technik redukcji danych, w kt\u00f3rej chcemy zmniejszy\u0107 liczb\u0119 cech, na przyk\u0142ad mo\u017cemy uruchomi\u0107 algorytm wyboru cech, taki jak ReliefF, lub algorytm redukcji cech, taki jak PCA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uczenie nienadzorowane- klastrowanie (grupowanie)<\/h2>\n\n\n\n<p>Klastrowanie (grupowanie) to technika grupowania podobnych danych (danych, kt\u00f3rych zdefiniowane przez analityka cechy s\u0105 wzajemnie zbie\u017cne) w klastry wed\u0142ug pewnych miar odleg\u0142o\u015bci. G\u0142\u00f3wn\u0105 ide\u0105 jest umieszczenie instancji, kt\u00f3re s\u0105 podobne (to znaczy blisko siebie) w tym samym klastrze, przy jednoczesnym zachowaniu niepodobnych punkt\u00f3w (czyli tych bardziej oddalonych od siebie) w r\u00f3\u017cnych skupieniach. Przyk\u0142ad tego, jak mog\u0105 wygl\u0105da\u0107 klastry, pokazano na poni\u017cszym diagramie:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie1-2.png\" alt=\"\" class=\"wp-image-25909\" width=\"436\" height=\"439\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Klastry definicja og\u00f3lna<\/h3>\n\n\n\n<p>Upraszczaj\u0105c klastry czy klastrowanie to wyszukiwanie zbior\u00f3w o podobnych cechach. Operacyjna definicja klastra polega na tym, \u017ce bior\u0105c pod uwag\u0119 reprezentacj\u0119 n obiekt\u00f3w, gdzie w naszym diagramie s\u0105 to wszystkie <span style=\"color:#48fe00\" class=\"has-inline-color\">zielone<\/span>, <span style=\"color:#f90d05\" class=\"has-inline-color\">czerwone<\/span> i <span class=\"has-inline-color has-ast-global-color-0-color\">niebieskie<\/span> punkty trzeba znale\u017a\u0107 grupy na podstawie miary podobie\u0144stwa, takiej \u017ce obiekty w tej samej grupie s\u0105 podobne, ale obiekty w r\u00f3\u017cnych grupach nie s\u0105 takie same. W naszym przypadku podobie\u0144stwem s\u0105 kolory obiekt\u00f3w i takich grup (klastr\u00f3w mamy 3. Jednak poj\u0119cie podobie\u0144stwa mo\u017cna interpretowa\u0107 na wiele sposob\u00f3w. Klastry mog\u0105 r\u00f3\u017cni\u0107 si\u0119 kszta\u0142tem, rozmiarem po\u0142o\u017ceniem i g\u0119sto\u015bci\u0105 konkretna cech\u0105 wektora (np. w jednej grupie wektory[a,0,0] w drugiej [0,b,0] itd.) . Klastry s\u0105 wzorcami i mo\u017ce istnie\u0107 wiele rodzaj\u00f3w wzorc\u00f3w. Niekt\u00f3re klastry to tradycyjne typy, takie jak punkty danych wisz\u0105ce razem np. na p\u0142aszczy\u017anie 2D (konstelacje). Istniej\u0105 jednak inne skupienia, takie jak wszystkie punkty reprezentuj\u0105ce obw\u00f3d ko\u0142a czy kwadratu. Mog\u0105 istnie\u0107 koncentryczne okr\u0119gi z punktami r\u00f3\u017cnych okr\u0119g\u00f3w reprezentuj\u0105cymi r\u00f3\u017cne skupiska. Obecno\u015b\u0107 szumu w danych sprawia, \u017ce wykrywanie klastr\u00f3w jest jeszcze trudniejsze. Idealny klaster mo\u017cna zdefiniowa\u0107 jako zbi\u00f3r punkt\u00f3w, kt\u00f3ry jest zwarty i izolowany. W rzeczywisto\u015bci <strong>klaster to<\/strong> <strong>podmiot subiektywny<\/strong>, kt\u00f3rego znaczenie i interpretacja wymaga wiedzy dziedzinowej.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Klastry &#8211; sposoby dobierania reprezentant\u00f3w klastra<\/h3>\n\n\n\n<p>Klastry mog\u0105 by\u0107 reprezentowane przez warto\u015b\u0107 centraln\u0105 lub modaln\u0105 (modalna, czyli tak\u0105 kt\u00f3ra wyst\u0119puje najcz\u0119\u015bciej).<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Centralnie tzn. klaster mo\u017cna zdefiniowa\u0107 jako \u015brodek ci\u0119\u017cko\u015bci zbioru punkt\u00f3w, kt\u00f3re do niego nale\u017c\u0105. Centroid jest miar\u0105 tendencji centralnej. Jest to punkt, w kt\u00f3rym suma kwadrat\u00f3w odleg\u0142o\u015bci ze wszystkich punkt\u00f3w jest minimum w tym przypadku korzystamy z definicji odleg\u0142o\u015bci Euklidesowej i poszukujemy punktu centralnego konstelacji. Rzeczywistym odpowiednikiem by\u0142oby centrum miasta jako punkt, kt\u00f3ry jest uwa\u017cany za naj\u0142atwiejszy w u\u017cyciu dla wszystkich cz\u0119\u015bci sk\u0142adowych miasta. Zatem wszystkie miasta s\u0105 definiowane przez ich centra lub obszary \u015br\u00f3dmiejskie.<\/li><li>Modalnie tzn. klaster jest reprezentowany przez najcz\u0119\u015bciej wyst\u0119puj\u0105c\u0105 warto\u015b\u0107 w klastrze, tj. Klaster mo\u017cna zdefiniowa\u0107 poprzez jego warto\u015b\u0107 modaln\u0105. W tym przypadku g\u0142\u00f3wnym zadaniem jest analiza jak\u0105 metod\u0119 \u201eodleg\u0142o\u015bci\u201d zastosujemy do selekcji grup modalnych.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Techniki grupowania<\/h3>\n\n\n\n<p>Analiza skupie\u0144 to technika uczenia maszynowego. Jako\u015b\u0107 wyniku grupowania zale\u017cy od algorytmu funkcji odleg\u0142o\u015bci i aplikacji. Najpierw nale\u017cy rozwa\u017cy\u0107 jaka funkcj\u0119 odleg\u0142o\u015bci zastosujemy. Wi\u0119kszo\u015b\u0107 metod analizy skupie\u0144 wykorzystuje miar\u0119 odleg\u0142o\u015bci do obliczania blisko\u015bci mi\u0119dzy parami element\u00f3w. Istniej\u0105 dwie g\u0142\u00f3wne miary odleg\u0142o\u015bci: odleg\u0142o\u015b\u0107 euklidesowa (\u201ew linii prostej\u201d lub linia prosta) jest najbardziej intuicyjn\u0105 miar\u0105. Inn\u0105 popularn\u0105 miar\u0105 jest odleg\u0142o\u015b\u0107 Manhattanu (prostoliniowa), gdzie mo\u017cna jecha\u0107 tylko w kierunkach prostopad\u0142ych. Odleg\u0142o\u015b\u0107 euklidesowa jest przeciwprostok\u0105tn\u0105 tr\u00f3jk\u0105ta prostok\u0105tnego, podczas gdy odleg\u0142o\u015b\u0107 Manhattan jest sum\u0105 dw\u00f3ch odn\u00f3g tr\u00f3jk\u0105ta prostok\u0105tnego. Istniej\u0105 inne miary odleg\u0142o\u015bci, takie jak om\u00f3wione odleg\u0142o\u015b\u0107 Jaccarda (do pomiaru podobie\u0144stwa zbior\u00f3w) lub odleg\u0142o\u015b\u0107 Levenshteina edycji (podobie\u0144stwo tekst\u00f3w) i inne. Kluczowy cel algorytmu grupowania jest taki sam: jak najlepsze wyizolowanie klastr\u00f3w ze zbioru danych. Por\u00f3wnywanie algorytm\u00f3w klastr\u00f3w jest trudnym zadaniem, poniewa\u017c nie ma jednej prawid\u0142owej liczby klastr\u00f3w. Jednak szybko\u015b\u0107 algorytmu i jego wszechstronno\u015b\u0107 pod wzgl\u0119dem r\u00f3\u017cnych zbior\u00f3w danych s\u0105 wa\u017cnymi kryteriami. W ramach tego blogu przedstawione zostan\u0105 najcz\u0119\u015bciej u\u017cywane metody grupowania zbior\u00f3w. B\u0119d\u0105 to algorytmy wyszukiwania skupie\u0144<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Metod\u0105 k-\u015brednich (k-means)<\/li><li>Metod\u0105 EM (<strong>E<\/strong>xpectation\u2013<strong>M<\/strong>aximization algorithm)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Klastrowanie metod\u0105 K-\u015brednich<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Klastrowanie metoda k-means (k-srednich)<\/h3>\n\n\n\n<p>Przy klastrowaniu metoda k-means stosuje si\u0119 prostsze i nie matematyczne podej\u015bcie do ustawiania ilo\u015bci klastr\u00f3w \u201ek\u201d przy ustalaniu domen. Na przyk\u0142ad, je\u015bli analizujemy dane dotycz\u0105ce odwiedzaj\u0105cych dla witryny sieci web du\u017cego dostawcy us\u0142ug IT, mo\u017cna przyj\u0105\u0107 ustawienie k na 2. Dlaczego dwa klastry? Poniewa\u017c z do\u015bwiadczenia wiemy, \u017ce prawdopodobnie b\u0119dzie du\u017ca rozbie\u017cno\u015b\u0107 w zachowaniu dla zakup\u00f3w mi\u0119dzy powracaj\u0105cymi klientami, a nowymi klientami w firmie, kt\u00f3ra sprzedaje us\u0142ugi IT. Pierwszy raz odwiedzaj\u0105cy rzadko kupuj\u0105 produkty i us\u0142ugi IT na poziomie docelowych potrzeb swojego przedsi\u0119biorstwa, poniewa\u017c dostawcy us\u0142ug IT zwykle przechodz\u0105 przez d\u0142ugi proces bada\u0144 i weryfikacji przed zatwierdzeniem du\u017cego zam\u00f3wienia. W zwi\u0105zku z tym mo\u017cna u\u017cy\u0107 grupowania dw\u00f3ch k-\u015brednich, aby utworzy\u0107 dwa klastry i przetestowa\u0107 moj\u0105 hipotez\u0105. Po utworzeniu dw\u00f3ch klastr\u00f3w mo\u017cna chcie\u0107 zbada\u0107 jedn\u0105 z nich poprzez kolejne dwa klastry dalej, albo stosuj\u0105c inn\u0105 technik\u0119, albo ponownie u\u017cywaj\u0105c grupowanie k-means od pocz\u0105tku z trzema klastrami. Na przyk\u0142ad chcemy podzieli\u0107 powracaj\u0105cych u\u017cytkownik\u00f3w na dwie cz\u0119\u015bci &#8211; nowe klastrowanie (przy u\u017cyciu grupowania k-\u015brednich), aby sprawdzi\u0107 hipotez\u0119, \u017ce u\u017cytkownicy mobilni vs u\u017cytkownicy komputer\u00f3w stacjonarnych tworz\u0105 dwie r\u00f3\u017cne grupy punkt\u00f3w danych. Znowu stosuj\u0105c wiedz\u0119 dziedzinow\u0105, na podstawie pracy analitycznej wysnuwam hipotez\u0119, \u017ce du\u017ce przedsi\u0119biorstwa rzadko dokonuj\u0105 zakup\u00f3w poprzez urz\u0105dzenia mobilne.<\/p>\n\n\n\n<p>W efekcie ko\u0144cowym pracy analityka przyj\u0119te przyk\u0142ady prac \u017ar\u00f3d\u0142owych prawdopodobnie utworz\u0105 trzy dyskretne klastry w oparciu o fakty, kt\u00f3re zak\u0142adaj\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Ruch organiczny obejmuje generalnie zar\u00f3wno nowych, jak i powracaj\u0105cych klient\u00f3w, kt\u00f3rzy chc\u0105 robi\u0107 zakupy w mojej witrynie (za po\u015brednictwem preselekcja, np. poczta pantoflowa, wcze\u015bniejsze do\u015bwiadczenia klient\u00f3w).<\/li><li>P\u0142atny ruch reklam jest kierowany do nowych klient\u00f3w, kt\u00f3rzy zazwyczaj przybywaj\u0105 na witryn\u0119 o ni\u017cszym poziomie zaufania ni\u017c ruch organiczny, w tym potencjalnych klient\u00f3w, kt\u00f3rzy przez pomy\u0142k\u0119 klikn\u0119li p\u0142atn\u0105 reklam\u0119 trend powie w jakiej technologii lokowa\u0107 inwestycje w reklamie.<\/li><li>Marketing e-mailowy dociera do obecnych klient\u00f3w, kt\u00f3rzy ju\u017c zrobili zakupy w witrynie i nie wymaga p\u0142atnych reklam<\/li><\/ul>\n\n\n\n<p>To jest przyk\u0142ad wiedzy dziedzinowej oparty na w\u0142asnym do\u015bwiadczeniu analityka, istotny jest dla nas fakt, \u017ce skuteczno\u015b\u0107 \u201ewiedzy dziedzinowej\u201d znacz\u0105co maleje wraz z liczb\u0105 k klastr\u00f3w. Innymi s\u0142owy, domena wiedzy mo\u017ce by\u0107 wystarczaj\u0105ca do okre\u015blenia dw\u00f3ch do czterech klastr\u00f3w, ale ma\u0142o prawdopodobne, \u017ce tak b\u0119dzie przy wyborze mi\u0119dzy 20 a 21 skupiskami.<\/p>\n\n\n\n<p>W przypadku podej\u015bcia matematycznego tylko od wiedzy i do\u015bwiadczenia analityka zale\u017ce\u0107 b\u0119dzie jakie przyj\u0105\u0107 za\u0142o\u017cenia odno\u015bnie ilo\u015bci klastr\u00f3w, nie mniej jednak nale\u017cy przyj\u0105\u0107, \u017ce zasada minimalizacji klastr\u00f3w jest obowi\u0105zuj\u0105ca r\u00f3wnie\u017c tutaj.<\/p>\n\n\n\n<p>Z matematycznego punktu widzenia obliczenia polegaj\u0105 na wyszukiwaniu zbior\u00f3w, kt\u00f3rych poszczeg\u00f3lne sumy odleg\u0142o\u015bci od centroid\u00f3w s\u0105 najmniejsze, obliczenia ko\u0144czymy gdy kolejne iterakcje nie wnosz\u0105 znacz\u0105cych zmian dla za\u0142o\u017conej liczby centroid\u00f3w.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Og\u00f3lny algorytm grupowania metod\u0105 k-\u015brednich:<\/h3>\n\n\n\n<p>Celem grupowania K-\u015brednich jest znalezienie etykiet skupie\u0144 lub r\u00f3wnowa\u017cnie wektor\u00f3w wska\u017anik\u00f3w skupie\u0144 (zdefiniowanych w celu zminimalizowania sumy kwadrat\u00f3w w obr\u0119bie klastra (WCSS). Og\u00f3lny wz\u00f3r zatem przyjmuje posta\u0107:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie2-2.png\" alt=\"\" class=\"wp-image-25910\" width=\"493\" height=\"199\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Algorytm<\/h3>\n\n\n\n<p><strong>Dane wej\u015bciowe.<\/strong> Wybierz zbi\u00f3r danych Y i dowoln\u0105 liczb\u0119 grup \/skupie\u0144 do utworzenia \u00b5<sub>k<\/sub>\u2013 jeden z najwa\u017cniejszych krok\u00f3w \u2013 wybieramy \u00b5 \u201ez buta\u201d ale w przemy\u015blany spos\u00f3b na podstawie w\u0142asnych do\u015bwiadcze\u0144. Istniej\u0105 pewne metody optymalizacji tego kroku ale s\u0105 to rozwa\u017canie wykraczaj\u0105ce poza zakres informacji podstawowych.<\/p>\n\n\n\n<p><strong>Dane wyj\u015bciowe<\/strong>. Zbi\u00f3r centroid\u00f3w \u00b5 oraz przypisanych do nich zbior\u00f3w danych y=f(x).<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Wykonuj w p\u0119tli kolejne obliczenia WCCS<\/span><\/li><li><span class=\"has-inline-color has-ast-global-color-0-color\">Przypisz obserwacje do klastra i wyszukaj najmniejszej odleg\u0142o\u015bci dla danego \u201ek\u201d oraz \u201ei\u201d<br>je\u017celi<\/span><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie3-2.png\" alt=\"\" class=\"wp-image-25911\" width=\"584\" height=\"37\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Oblicz centrum klastra w oparciu o przypisane warto\u015bci<\/span><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie4-2.png\" alt=\"\" class=\"wp-image-25912\" width=\"396\" height=\"73\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Powr\u00f3\u0107 do kroku punktu<\/span> <span class=\"has-inline-color has-ast-global-color-0-color\">WCCS<\/span><\/li><li>Powtarzaj powy\u017csze kroki, a\u017c r\u00f3\u017cnice zmian pomi\u0119dzy pozycjami poszczeg\u00f3lnych centroid\u00f3w b\u0119d\u0105 niezauwa\u017calne<\/li><li>Je\u015bli klastry nie s\u0105 satysfakcjonuj\u0105ce, powinno ponownie si\u0119 przej\u015b\u0107 do kroku 1 i wybra\u0107 inn\u0105 liczb\u0119 grup \/ segment\u00f3w. Tworzenie klastr\u00f3w mo\u017ce by\u0107 kontynuowane z inn\u0105 liczb\u0105 klastr\u00f3w i inn\u0105 lokalizacj\u0105 tych punkt\u00f3w. Klastry s\u0105 uwa\u017cane za dobre, je\u015bli definicje klastr\u00f3w ustabilizuj\u0105 si\u0119, a ustabilizowane definicje oka\u017c\u0105 si\u0119 przydatne do danego celu.<\/li><\/ul>\n\n\n\n<p><span style=\"color:#fa0c04\" class=\"has-inline-color\">Przyk\u0142ad <\/span>EXCEL Opis sytuacji \u2013 W koszyku s\u0105 trzy r\u00f3\u017cne rodzaje owoc\u00f3w mamy okre\u015bli\u0107 ile jest owoc\u00f3w o jednocze\u015bnie najmniejszej masie (zmienna \u201ez\u201d) i najmniejszej obj\u0119to\u015bci (zmienna \u201ey\u201d).. Zak\u0142adany ze k wynosi 2. Zbi\u00f3r wyszukiwanych owoc\u00f3w musi by\u0107 skupiony wok\u00f3\u0142 centroida o najmniejszej masie i najmniejszej obj\u0119to\u015bci. Przyk\u0142adowe obliczenia w <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/101K-MEANS%20%E2%80%94%20kopia.xlsx\">excel tutaj<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Klastrowanie metod\u0105 EM (maksymalizacji oczekiwa\u0144)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Klastrowanie metod\u0105 EM (Expectation-Maximization)<\/h3>\n\n\n\n<p>Szacowanie najwi\u0119kszej prawdopodobie\u0144stwa to podej\u015bcie do szacowania g\u0119sto\u015bci dla zbioru danych poprzez przeszukiwanie rozk\u0142ad\u00f3w prawdopodobie\u0144stwa i ich parametr\u00f3w. Jest to og\u00f3lne i skuteczne podej\u015bcie, kt\u00f3re le\u017cy u podstaw wielu algorytm\u00f3w uczenia maszynowego, chocia\u017c wymaga, aby zestaw danych szkoleniowych by\u0142 kompletny, m.in. wszystkie odpowiednie oddzia\u0142uj\u0105ce zmienne losowe s\u0105 obecne. Maksymalne prawdopodobie\u0144stwo staje si\u0119 niewykonalne, je\u015bli istniej\u0105 zmienne, kt\u00f3re wchodz\u0105 w interakcj\u0119 z tymi kt\u00f3re s\u0105 ju\u017c w zbiorze danych, ale zosta\u0142y ukryte lub nie zosta\u0142y zaobserwowane, tak zwane zmienne latentne.<\/p>\n\n\n\n<p>Algorytm maksymalizacji oczekiwa\u0144 jest podej\u015bciem do wykonywania estymacji maksymalnego prawdopodobie\u0144stwa w obecno\u015bci zmiennych latentnych. Robi to, najpierw oszacowuj\u0105c warto\u015bci zmiennych ukrytych, nast\u0119pnie optymalizuj\u0105c model, a nast\u0119pnie powtarzaj\u0105c te dwa kroki a\u017c do zbie\u017cno\u015bci. Jest to skuteczne i og\u00f3lne podej\u015bcie, kt\u00f3re jest najcz\u0119\u015bciej u\u017cywane do szacowania g\u0119sto\u015bci z brakuj\u0105cymi danymi, takimi jak algorytmy grupowania jak np. Gaussian Mixture Model.<\/p>\n\n\n\n<p>Maksymalizacja oczekiwa\u0144 zapewnia iteracyjne rozwi\u0105zanie estymacji najwi\u0119kszej prawdopodobie\u0144stwa za u\u017cyciem zmiennych latentnych.<\/p>\n\n\n\n<p>Modele mieszanin gaussowskich s\u0105 podej\u015bciem do estymacji g\u0119sto\u015bci, w kt\u00f3rym parametry rozk\u0142ad\u00f3w s\u0105 dopasowywane za pomoc\u0105 algorytmu maksymalizacji oczekiwa\u0144. Oznacza to, \u017ce&nbsp;algorytm EM jest zdolny do pracy na nieoznakowanych danych w zadaniach niekontrolowanych i gwarantuje, \u017ce b\u0119dzie w ko\u0144cu osi\u0105ga\u0142 lokalne maksimum lub \u201ewystarczaj\u0105co dobre\u201d rozwi\u0105zanie przybli\u017cenia tego maksimum.&nbsp;Jego u\u017cyteczno\u015b\u0107 jest wspierana przez szerok\u0105 gam\u0119 aplikacji, w tym nieoznakowan\u0105 segmentacj\u0119 obrazu, nienadzorowane grupowanie danych, naprawianie brakuj\u0105cych danych lub odkrywanie wy\u017cszego poziomu (ukrytej) reprezentacji surowych danych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Suma prawdopodobie\u0144stw od x<sub>i <\/sub>dla z<sub>ij<\/sub>=1 &nbsp; Og\u00f3lny algorytm grupowania metoda EM<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie5-2.png\" alt=\"\" class=\"wp-image-25913\" width=\"560\" height=\"53\"\/><\/figure><\/div>\n\n\n\n<p>Niech L(x<sub>i<\/sub>|\u00b5<sup>(krok)<\/sup>) oznacza prawdopodobie\u0144stwo dla wszystkich \u201ek\u201d takie \u017ce:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie6-2.png\" alt=\"\" class=\"wp-image-25914\" width=\"510\" height=\"59\"\/><\/figure><\/div>\n\n\n\n<p>oraz, niech \u00b5<sub>ML <\/sub>oznacza pr\u00f3b\u0119 wprowadzenia warto\u015bci \u015brednich<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Algorytm<\/h3>\n\n\n\n<p><strong>Dane wej\u015bciowe<\/strong>. Zbi\u00f3r element\u00f3w Y, wst\u0119pny podzia\u0142 na \u201ek\u201d grupy oraz elementy wymagane dla oblicze\u0144 Gaussowskich \u2013 odchylenie standardowe \u201e\u03c3\u201d w obliczeniach najcz\u0119\u015bciej \u03c3<sub>k<\/sub>=1,punkt rozdzia\u0142u rozk\u0142ad\u00f3w \u03bb<sub>k<\/sub> np. dla k=2, \u03bb<sub>2<\/sub>=0,5. Ponadto przyjmijmy dla poni\u017cszych wzor\u00f3w \u017ce \u201ej\u201d b\u0119dzie indeksem Gaussa, \u201ei\u201d indeksem punkt\u00f3w danych, a \u201ekrok\u201d indeksem E-M iteracji.<\/p>\n\n\n\n<p><strong>Dane wyj\u015bciowe<\/strong>. Zbi\u00f3r centr\u00f3w (maksim\u00f3w) rozk\u0142adu Gaussa \u201e\u00b5\u201d. Wykaz zmiennych powi\u0105zanych z danym rozk\u0142adem Gaussa. Prawdopodobie\u0144stwo danej zmiennej w powi\u0105zaniu z \u201e\u00b5\u201d praz \u201e\u03c3\u201d.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Wykonuj w p\u0119tli kolejne obliczenia \u00b5<sub>ML<\/sub><\/span><\/li><li><span class=\"has-inline-color has-ast-global-color-0-color\">Je\u017celi z<sub>ij<\/sub> jest latentne to z<sub>ij<\/sub>=1; inaczej 0<\/span><\/li><li><span class=\"has-inline-color has-ast-global-color-0-color\">Je\u017celi z<sub>ij<\/sub>=1 to wykonaj krok E- Expectation<\/span><\/li><\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie7-2.png\" alt=\"\" class=\"wp-image-25915\" width=\"389\" height=\"81\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Wykonaj krok M- Maximization<\/span><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie8-2.png\" alt=\"\" class=\"wp-image-25916\" width=\"334\" height=\"73\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Powtarzaj kroki od \u201e1\u201d a\u017c wyniki b\u0119d\u0105 mocno zbie\u017cne<\/span><br><br><\/li><\/ul>\n\n\n\n<p><span style=\"color:#fb0404\" class=\"has-inline-color\">Przyk\u0142ad <\/span>EXCEL. Skorzystamy z tych samych danych (tym razem tylko 1D po osi x) ale poruszymy inne zagadnienie. Opis sytuacji &#8211; dw\u00f3ch strzelc\u00f3w jeden poczatkuj\u0105cy i jeden klasy mistrzowskiej strzelali do tej samej tarczy. Po zako\u0144czeniu testu otrzymali\u015bmy papierow\u0105 tarcz\u0119 i spisali\u015bmy sobie wszystkie 14 trafie\u0144. Maj\u0105c wiedz\u0119, \u017ce by\u0142y to dwie r\u00f3\u017cne osoby o r\u00f3\u017cnym do\u015bwiadczeniu spr\u00f3bujmy oszacowa\u0107 kt\u00f3re strza\u0142y nale\u017ca\u0142y do kogo. W obszarze dane wej\u015bciowe C6-C19 spisano wyniki z tarczy. W pierwszym kroku zak\u0142adamy, \u017ce typowo strzelec \u00b51 trafia\u0142 w okolice \u201e3\u201d (pole H2), a strzelec \u00b52 trafia\u0142 w okolice \u201e8\u201d (pole I2). Oblicze\u0144 dokonano w tabeli H5-M19 jako dwie kolejne iterakcje a wyniki przedstawiono w kolumnie O4-O19. Nie wiemy kt\u00f3ry strzelec odda\u0142 ile strza\u0142\u00f3w, ale z oblicze\u0144 wynika ze strzelec pocz\u0105tkuj\u0105cy prawdopodobnie trafi\u0142 4; 5; 5; 5; 2; 5; 3; 6 a strzelec lepszy prawdopodobnie trafi\u0142 8; 7; 10; 8; 10; 10. Co wi\u0119cej analizuj\u0105c rozk\u0142ad Gaussa dla \u00b51=4,38 oraz \u00b52=8,79 mo\u017cemy zauwa\u017cy\u0107, \u017ce trafienie \u201e6\u201d jest obarczone podobnym prawdopodobie\u0144stwem dla \u00b51 oraz \u00b52 co mo\u017ce oznacza\u0107, \u017ce strzelec lepszy odda\u0142 jeden gorszy strza\u0142 i obaj oddali t\u0119 sama ilo\u015b\u0107 strza\u0142\u00f3w. Przyk\u0142adowe obliczenia w <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/102EXPECTATION-MAXIMIZATION%20%E2%80%94%20kopia.xlsx\">excel tutaj<\/a>.<\/p>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"dyskryminacja\">Dyskryminacja<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Dyskryminacja informacje podstawowe<\/h3>\n\n\n\n<p>O dyskryminacji m\u00f3wimy wtedy gdy wyr\u00f3\u017cniamy podzbiory danych na podstawie r\u00f3\u017cni\u0105cych ich cech obserwacji ze znanych podzbior\u00f3w cech (dotyczy\u0107 to mo\u017ce zar\u00f3wno populacji jak i pr\u00f3by ale wtedy podzbiory cech mog\u0105 si\u0119 r\u00f3\u017cni\u0107). Stosuj\u0105c dyskryminacje wskazujemy wyr\u00f3\u017cniki i odpowiadaj\u0105ce im warto\u015bci liczbowe w taki spos\u00f3b by wyr\u00f3\u017cni\u0107 lub w pewnym sensie \u201erozdzieli\u0107\u201d badane zbiory.<\/p>\n\n\n\n<p>Przyk\u0142ad: zbi\u00f3r ludzi stoj\u0105cych w ko\u015bciele. W tym obszarze na podstawie wyr\u00f3\u017cnika p\u0142e\u0107 osoby&nbsp; mo\u017cemy wyr\u00f3\u017cni\u0107 i teoretycznie \u201erozdzieli\u0107\u201d podzbiory os\u00f3b p\u0142ci \u017ce\u0144skiej oraz os\u00f3b p\u0142ci m\u0119skiej. Osoby o tych dw\u00f3ch r\u00f3\u017cnych cechach mo\u017cemy oczywi\u015bcie policzy\u0107 jako osobne dwie podgrupy chocia\u017c patrz\u0105c z zewn\u0105trz widzimy wzajemnie wymieszan\u0105 jedna grup\u0119 ludzi w jakim\u015b zamkni\u0119tym obszarze.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Liniowa analiza dyskryminacyjna (LDA) <\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Informacje og\u00f3lne<\/h4>\n\n\n\n<p>LDA jest w pewnym zakresie mieszank\u0105 regresji liniowej i klastrowania K-\u015brednich, ale r\u00f3\u017cni si\u0119 od obu. Grupowanie K-\u015brednich jest nienadzorowan\u0105 metod\u0105 klasyfikacji, podczas gdy LDA jest nadzorowane, poniewa\u017c jego klasyfikacja jest uczona na znanych danych. Wyniki predykcyjne s\u0105 ilo\u015bciowo liczbowe w regresji liniowej, a jako\u015bciowo kategoryczne w LDA. Jak wspomniano wcze\u015bniej w naszym przypadku regresja jest funkcj\u0105 kt\u00f3ra rozdziela podzbiory. Liniowa analiza dyskryminacyjna cz\u0119sto jest wykorzystywana do rozpoznawania twarzy w obrazie na podstawie wyuczonych cech szczeg\u00f3lnych.<\/p>\n\n\n\n<p>LDA pr\u00f3buje znale\u017a\u0107 najlepsz\u0105 funkcj\u0119 liniow\u0105, kt\u00f3ra mo\u017ce podzieli\u0107 punkty danych na r\u00f3\u017cne kategorie. <a href=\"https:\/\/pl.wikipedia.org\/wiki\/Wariancja\">Wariancje<\/a> mi\u0119dzy \u015brednimi grupowymi powinny by\u0107 jak najwi\u0119ksze, podczas gdy wariancje wewn\u0105trz ka\u017cdej grupy powinny by\u0107 jak najmniejsze. Wariancje s\u0105 obliczane po rzutowaniu ka\u017cdego punktu danych na funkcj\u0119 liniow\u0105 o postaci y = a<sub>1<\/sub>x<sub>1<\/sub> + a<sub>2<\/sub>x<sub>2<\/sub> + &#8230; + a<sub>n<\/sub>x<sub>n<\/sub> + b. Treningowy zbi\u00f3r danych s\u0142u\u017cy do znalezienia najlepszej reprezentowanej funkcji P przez zestaw parametr\u00f3w (a<sub>1<\/sub>,a<sub>2<\/sub>,&#8230;,a<sub>n<\/sub>,b).<\/p>\n\n\n\n<p>Z powy\u017cszych rozwa\u017ca\u0144 wynika, i\u017c g\u0142\u00f3wnym celem LDA jest redukcja wymiarowo\u015bci z zachowaniem jak najwi\u0119kszej ilo\u015bci informacji po wykonaniu rzutowania. Oznacza to \u017ce poszykujemy r\u00f3wnania prostej kt\u00f3ra umo\u017cliwi otrzymanie wyniku z jak najlepszym rzutowaniem na nasza prost\u0105 &nbsp;rozdzielaj\u0105cym nasz zb\u00f3r danych na podzbiory o interesuj\u0105cych nas cechach. Na rysunku poni\u017cej przedstawiono powy\u017csze rozwa\u017cania z odpowiednimi uwagami.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie1-3.png\" alt=\"\" class=\"wp-image-25918\" width=\"465\" height=\"261\"\/><\/figure><\/div>\n\n\n\n<p>Jak wida\u0107 rzutowanie prostopad\u0142e na o\u015b oznaczon\u0105 kolorem zielonym rozdziela nasze wszystkie punkty wed\u0142ug cechy koloru kt\u00f3re mo\u017cemy zdefiniowa\u0107 na okre\u015blonych odcinkach prostej jako wyodr\u0119bnione podzbiory. Odwrotnie dla osi czerwonej nasza cecha koloru jest niejednoznaczna poniewa\u017c punkty rzutu s\u0105 wzajemnie wymieszane na okre\u015blonym odcinku prostej w zwi\u0105zku z tym nie osi\u0105gn\u0119li\u015bmy efektu redukcji wymiarowo\u015bci.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Algorytm<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Dla danego zestawu danych treningowych, nale\u017cy zdefiniowa\u0107 zestawy (grupy) cech. kt\u00f3re Posortowane na r\u00f3\u017cne grupy, cechy nale\u017cy dok\u0142adnie opisa\u0107 do dalszej analizy otrzymanych wynik\u00f3w.<\/li><li><span class=\"has-inline-color has-ast-global-color-0-color\">Wykonaj kolejne kroki<\/span><\/li><li><span class=\"has-inline-color has-ast-global-color-0-color\">Wykonaj zsumowanie wariancji mi\u0119dzygrupowych za pomoc\u0105 poni\u017cszego wzoru:<\/span><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie2-3.png\" alt=\"\" class=\"wp-image-25919\" width=\"190\" height=\"84\"\/><\/figure><\/div>\n\n\n\n<p>gdzie k to liczba grup, x to \u015brednia ze \u015brednich grupowych, a x<sub>i <\/sub>to \u015brednia indywidualna dla grupy.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Wykonaj zsumowanie wariancji wewn\u0105trzgrupowych za pomoc\u0105 poni\u017cszego wzoru:<\/span><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie3-3.png\" alt=\"\" class=\"wp-image-25920\" width=\"266\" height=\"93\"\/><\/figure><\/div>\n\n\n\n<p>gdzie n to liczba punkt\u00f3w danych w grupie.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"has-inline-color has-ast-global-color-0-color\">Przyjmuj\u0105c \u017ce, P<sub>opt<\/sub> jest najlepsz\u0105 projekcja rzutowania dla badanego przypadku, rozwi\u0105\u017c r\u00f3wnanie poprzez dob\u00f3r parametr\u00f3w a<sub>1<\/sub>,a<sub>2<\/sub>,\u2026,a<sub>n<\/sub>,b tak, by osi\u0105gn\u0105\u0107 maximum ilorazu S<sub>g<\/sub>\/S<sub>w<\/sub>:<\/span><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie4-3.png\" alt=\"\" class=\"wp-image-25921\" width=\"534\" height=\"75\"\/><\/figure><\/div>\n\n\n\n<p><span style=\"color:#f20d05\" class=\"has-inline-color\">Przyk\u0142ad<\/span>: Niech zbiorem danych b\u0119dzie powszechnie znany zbi\u00f3r danych charakteryzuj\u0105cy gatunki kwiat\u00f3w <a href=\"https:\/\/archive.ics.uci.edu\/ml\/datasets\/iris\">Iris<\/a>. Zbi\u00f3r posiada 4 atrybuty i 3 stany wynikowe dla wymienionych atrybut\u00f3w. Nasze zadanie to wyznaczy\u0107 optymalne LDA dla przyj\u0119tego zbioru danych.<\/p>\n\n\n\n<p>Obliczenia i wyja\u015bnienia zawarte w pliku <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/111LDA%20%E2%80%94%20kopia.xlsx\">excel tutaj<\/a>. <\/p>\n\n\n\n<h6 class=\"has-ast-global-color-0-background-color has-background wp-block-heading\"><\/h6>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"siecineuronowe\">Sztuczne sieci neuronowe<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Wprowadzenie do sztucznych sieci neuronowych<\/h2>\n\n\n\n<p><strong>Sieci neuronowe s\u0105 cz\u0119\u015bci\u0105 tzw. g\u0142\u0119bokiego uczenia<\/strong>, jest ga\u0142\u0105\u017a uczenia maszynowego, kt\u00f3ra okaza\u0142a si\u0119 cenna w rozwi\u0105zywaniu trudnych problem\u00f3w, takich jak rozpoznawanie rzeczy na obrazach czy przetwarzanie j\u0119zyka.<\/p>\n\n\n\n<p><strong>Sieci neuronowe maj\u0105 inne podej\u015bcie do rozwi\u0105zywania problem\u00f3w<\/strong> ni\u017c konwencjonalne programy komputerowe. Aby rozwi\u0105za\u0107 problem, konwencjonalnie oprogramowanie wykorzystuje podej\u015bcie algorytmiczne, tj. komputer pod\u0105\u017ca za zbiorem instrukcji w celu rozwi\u0105zania problemu. W przeciwie\u0144stwie do tego, sieci neuronowe podchodz\u0105 do problem\u00f3w w bardzo odmienny spos\u00f3b:<\/p>\n\n\n\n<p>pr\u00f3buj\u0105c na\u015bladowa\u0107 dzia\u0142anie neuron\u00f3w na podobie\u0144stwo rzeczywistych proces\u00f3w zachodz\u0105cych w m\u00f3zgach istot \u017cywych. W rzeczywisto\u015bci ucz\u0105 si\u0119 przez przyk\u0142ad, zamiast by\u0107 zaprogramowanym od pocz\u0105tku do ko\u0144ca obiektem do wykonania okre\u015blonego zadania.<\/p>\n\n\n\n<p>Technicznie sk\u0142adaj\u0105 si\u0119 one z du\u017cej liczby po\u0142\u0105czonych ze sob\u0105 element\u00f3w przetwarzania (w\u0119z\u0142y), kt\u00f3re dzia\u0142aj\u0105 r\u00f3wnolegle, aby rozwi\u0105za\u0107 specyficzny problem, kt\u00f3ry w sposobie przetwarzania danych jest podobny do dzia\u0142ania m\u00f3zg\u00f3w istoto \u017cywych. Z technicznego punktu widzenia mo\u017cemy wyodr\u0119bni\u0107 pewn\u0105 og\u00f3lne grup\u0119 cech sztucznych sieci neuronowych.<\/p>\n\n\n\n<p><strong>Sieci neuronowe s\u0105 specyficzne dla rozwi\u0105zywanego zagadnienia:<\/strong> Sieci neuronowe s\u0105 zawsze budowane w celu rozwi\u0105zania okre\u015blonego rodzaju problemu, chocia\u017c nie oznacza to, \u017ce mog\u0105 by\u0107 u\u017cywane jako narz\u0119dzia \u201eog\u00f3lnego przeznaczenia\u201d. Na przyk\u0142ad, nie ma algorytmu \u201eog\u00f3lnego przeznaczenia\u201d, w kt\u00f3rym mo\u017cna ulokowa\u0107 ka\u017cde dane w celu ich przewidywania lub szacowania, lub, mo\u017ce inaczej, nie znalaz\u0142em jeszcze niczego takiego w dost\u0119pnej literaturze. Przyk\u0142ady konkretnych zastosowa\u0144 obejmuj\u0105: przewidywanie, prognozowanie, szacowanie, klasyfikacj\u0119 i rozpoznawanie wzorc\u00f3w. Przyk\u0142ady ze \u015bwiata rzeczywistego obejmuj\u0105 np. prognozy gie\u0142dowe, wycen\u0119 nieruchomo\u015bci, diagnoz\u0119 medyczn\u0105, rozpoznawanie pisma r\u0119cznego czy rozpoznawanie obraz\u00f3w.<\/p>\n\n\n\n<p><strong>Sieci neuronowe maj\u0105 zasadniczo trzy podstawowe cz\u0119\u015bci<\/strong>: sie\u0107 neuronowa ma trzy podstawowe sekcje lub cz\u0119\u015bci, a ka\u017cda cz\u0119\u015b\u0107 sk\u0142ada si\u0119 z \u201ew\u0119z\u0142\u00f3w\u201d.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Warstwa w\u0119z\u0142\u00f3w wej\u015bciowych (w tym r\u00f3wnie\u017c w\u0119ze\u0142 skro\u015bny)<\/li><li>Ukryte warstwy w\u0119z\u0142\u00f3w przetwarzania (tych warstw mo\u017ce by\u0107 jedna lub wi\u0119cej w zale\u017cno\u015bci od stopnia z\u0142o\u017cenia rozwi\u0105zywanego problemu po\u0142\u0105czone kraw\u0119dziami wzajemnie i warstwami wej\u015bcia i wyj\u015bcia).<\/li><li>Warstwa wyj\u015bciowa (wyj\u015bciem mo\u017ce by\u0107 jeden w\u0119ze\u0142 lub wi\u0119cej)<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie1-4.png\" alt=\"\" class=\"wp-image-25925\" width=\"470\" height=\"314\"\/><\/figure><\/div>\n\n\n\n<p><strong>Sieci neuronowe w zakresie logiki przej\u015bcia sygna\u0142u<\/strong> rozr\u00f3\u017cniaj\u0105 si\u0119 na dwie metody przetwarzania sygna\u0142u:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Ze sprz\u0119\u017ceniem(post\u0119pem) w prz\u00f3d (feedforward) : W przypadku sieci neuronowej ze sprz\u0119\u017ceniem do przodu sygna\u0142y przemieszczaj\u0105 si\u0119 tylko w jedn\u0105 stron\u0119, od wej\u015bcia do wyj\u015bcia. Tego typu sieci s\u0105 prostsze i powszechnie stosowane w odniesienia do wzorca, gdzie istotne jest szybkie rozpoznanie badanego obiektu do wyuczonego wzorca. Konwulsyjna sie\u0107 neuronowa (CNN lub ConvNet) to specyficzny typ sieci sprz\u0119\u017cenia zwrotnego, kt\u00f3ra jest cz\u0119sto u\u017cywana np. w rozpoznawaniu obraz\u00f3w.<\/li><li>Ze sprz\u0119\u017ceniem zwrotnym (feedback) nazywane tez jako powtarzaj\u0105ce si\u0119 sieci neuronowe, RNN: W przypadku RNN sygna\u0142y mog\u0105 przesy\u0142a\u0107 obie strony kierunkach i mog\u0105 dzia\u0142a\u0107 w p\u0119tlach. Sieci sprz\u0119\u017cenia zwrotnego s\u0105 pot\u0119\u017cniejsze i bardziej z\u0142o\u017cone ni\u017c CNN i zawsze si\u0119 zmieniaj\u0105. Sieci RNN s\u0105 rzadziej u\u017cywane, ni\u017c sieci ze sprz\u0119\u017ceniem do przodu, po cz\u0119\u015bci dlatego, \u017ce algorytmy uczenia dla uk\u0142ad\u00f3w sieci w konfiguracji RNN s\u0105 (przynajmniej obecnie) znacznie bardziej skomplikowane do uruchomienia i testowania od strony matematycznej (reinforced learning). Sieci RNN \u200b\u200bs\u0105 niezwykle interesuj\u0105ce i s\u0105 znacznie bli\u017csze w duchu do tego, jak dzia\u0142aj\u0105 m\u00f3zgi istot \u017cywych, ni\u017c sieci z post\u0119pem w prz\u00f3d.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie2-4.png\" alt=\"\" class=\"wp-image-25926\" width=\"529\" height=\"314\"\/><\/figure><\/div>\n\n\n\n<p><strong>Sieci neuronowe s\u0105 albo sta\u0142e, albo adaptacyjne<\/strong>: Sieci neuronowe pod wzgl\u0119dem typu wag kraw\u0119dziowych dzielimy na:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sta\u0142a: Warto\u015bci wag w sieci stacjonarnej pozostaj\u0105 statyczne. Nie zmieniaj\u0105 si\u0119.<\/li><li>Adaptacyjna: Warto\u015bci wag w sieci adaptacyjnej nie s\u0105 statyczne i mog\u0105 si\u0119 zmienia\u0107.<\/li><\/ul>\n\n\n\n<p><strong>Sieci neuronowe wykorzystuj\u0105 trzy typy zestaw\u00f3w danych<\/strong>: Sieci neuronowe s\u0105 cz\u0119sto budowane i trenowane przy u\u017cyciu trzech zestaw\u00f3w danych:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Zestaw danych ucz\u0105cych: Zestaw danych ucz\u0105cych s\u0142u\u017cy do dostosowania wag sieci neuronowej.<\/li><li>Zestaw danych walidacyjnych: Zestaw danych walidacyjnych s\u0142u\u017cy do zminimalizowania problemu zwanego przepe\u0142nieniem, kt\u00f3ry om\u00f3wimy bardziej szczeg\u00f3\u0142owo.<\/li><li>Zestaw danych testowych: testowy zestaw danych jest u\u017cywany jako ostateczny test, aby oceni\u0107, jak dok\u0142adnie sie\u0107 zosta\u0142a przeszkolona.<\/li><\/ul>\n\n\n\n<p>Typowy podzia\u0142 danych jest stosunkowo zbie\u017cny do cross validation chocia\u017c dla sieci neuronowych \u201ez\u0142oty standard\u201d danych pobranych z jednego bloku to:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Dane treningowe: 60%<\/li><li>Dane walidacyjne: 20%<\/li><li>Dane testowe: 20%.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Warstwa wej\u015bciowa<\/h3>\n\n\n\n<p>W\u0119ze\u0142 wej\u015bciowy zawiera dane wej\u015bciowe sieci i to wej\u015bcie jest zawsze numeryczne. Je\u015bli wej\u015bcie nie jest domy\u015blnie numeryczne, zawsze badany obiekt nale\u017cy sprowadzi\u0107 do postaci numerycznej. <br><span style=\"color:#f50404\" class=\"has-inline-color\">Przyk\u0142ad:<\/span><br><strong>Obrazy<\/strong> s\u0105 cz\u0119sto konwertowane do skali szaro\u015bci, a ka\u017cdy piksel jest mierzony w skali od 0 do 1 dla intensywno\u015b\u0107 (gdzie 0 (zero) to kolor czarny, a 1 to kolor bia\u0142y).<br><strong>Tekst<\/strong> jest konwertowany na liczby. Na przyk\u0142ad m\u0119\u017cczyzna\/kobieta mo\u017ce zosta\u0107 przekonwertowany na 1 i 0 (zero).<br><strong>D\u017awi\u0119k<\/strong> jest konwertowany na liczby, kt\u00f3re reprezentuj\u0105 amplitud\u0119 w czasie, z 0 (zero), gdy d\u017awi\u0119k jest skwantowany jako najcichszy i 1, gdy jest g\u0142o\u015bno.<br>W\u0119ze\u0142 wej\u015bciowy znajduje si\u0119 w warstwie wej\u015bciowej, kt\u00f3ra jest pierwsz\u0105 warstw\u0105 sie\u0107 neuronowa. Ka\u017cdy w\u0119ze\u0142 wej\u015bciowy reprezentuje pojedynczy wymiar i jest cz\u0119sto nazywany elementem, a wszystkie elementy s\u0105 przechowywane w wektorze.<br><span style=\"color:#fa0404\" class=\"has-inline-color\">Przyk\u0142ad<\/span>, je\u015bli jako dane wej\u015bciowe masz obraz o wymiarach 16&#215;16 pikseli, masz \u0142\u0105cznie 256 w\u0119z\u0142\u00f3w wej\u015bciowych. Dzieje si\u0119 tak, poniewa\u017c ka\u017cdy w\u0119ze\u0142 wej\u015bciowy reprezentuje pojedynczy piksel obrazu, a \u0142\u0105cznie jest ich 256 pikseli (16&#215;16). Teraz, w \u015bwietle dost\u0119pnego j\u0119zyka opisowego, istnieje wiele sposob\u00f3w opisu wektora wej\u015bciowego, w tym np. nasze 256 w\u0119z\u0142\u00f3w dla innych to 256 funkcji albo 256 wymiar\u00f3w, ale w technice sieci neuronowych to s\u0105 w\u0119z\u0142y.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Warstwa ukryta<\/h3>\n\n\n\n<p>Ukryta warstwa \u2014 ukryta warstwa to warstwa w\u0119z\u0142\u00f3w mi\u0119dzy warstw\u0105 wej\u015bciow\u0105 a warstw\u0105 wyj\u015bciow\u0105. Mo\u017ce by\u0107 jedna ukryta warstwa lub wiele ukrytych warstw w sieci neuronowej, a im wi\u0119cej ich istnieje, tym \u201eg\u0142\u0119bsze\u201d uczenie si\u0119. W rzeczywisto\u015bci wiele ukrytych warstw jest tym terminem opisywanym jako g\u0142\u0119bokie uczenie (<a href=\"https:\/\/www.forbes.com\/sites\/bernardmarr\/2018\/10\/22\/artificial-intelligence-whats-the-difference-between-deep-learning-and-reinforcement-learning\/?sh=3f09b733271e\">g\u0142\u0119bokie uczenie nie oznacza tego samego co uczenie reinfoced<\/a>). Wyb\u00f3r liczby ukrytych warstw to z\u0142o\u017cony temat i wykraczaj\u0105cy poza zakres naszego przegl\u0105du. Elementami warstwy ukrytej s\u0105 ukryte w\u0119z\u0142y. Ukryty w\u0119ze\u0142 to w\u0119ze\u0142 w ukrytej warstwie. Warstwa mo\u017ce mie\u0107 wiele ukrytych w\u0119z\u0142\u00f3w i istniej\u0105 r\u00f3\u017cne teorie implementacji prawid\u0142owej ilo\u015bci. Og\u00f3lne zasady b\u0119d\u0105ce po\u0142\u0105czeniem pomi\u0119dzy pr\u00f3b\u0105 i b\u0142\u0119dami s\u0105 tym, czym kieruje wi\u0119kszo\u015b\u0107 analityk\u00f3w danych i programist\u00f3w. Warto odnotowa\u0107, i\u017c pojawiaj\u0105ce si\u0119 cz\u0119sto opinie najcz\u0119\u015bciej wskazuj\u0105, \u017ce warstwy zawieraj\u0105ce tak\u0105 sam\u0105 ilo\u015b\u0107 w\u0119z\u0142\u00f3w ukrytych generalnie dzia\u0142a\u0142y tak samo lub lepiej ni\u017c z malej\u0105c\u0105 lub rosn\u0105c sieci\u0105 w\u0119z\u0142\u00f3w ukrytych w stosunku do warstwy wej\u015bciowej.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Warstwa wyj\u015bciowa<\/h3>\n\n\n\n<p>W\u0119ze\u0142 wyj\u015bciowy to w\u0119ze\u0142 w warstwie wyj\u015bciowej. Warstwa wyj\u015bciowa mo\u017ce posiada\u0107 jeden kub wi\u0119cej w\u0119z\u0142\u00f3w wyj\u015bciowych w zale\u017cno\u015bci od celu zadania i plan\u00f3w programisty. Na przyk\u0142ad, je\u015bli istnieje sie\u0107 s\u0142u\u017c\u0105ca do klasyfikowania (rozr\u00f3\u017cniania) odr\u0119cznych cyfr od 0 do 9, by\u0142oby 10 w\u0119z\u0142\u00f3w wyj\u015bciowych. W tym przypadku podobnie jak wej\u015bcie sieci, wyj\u015bcie jest wektorem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kraw\u0119d\u017a wa\u017cona<\/h3>\n\n\n\n<p>Waga to zmienna, kt\u00f3ra znajduje si\u0119 na kraw\u0119dzi mi\u0119dzy w\u0119z\u0142ami. Wynik ka\u017cdego w\u0119z\u0142a w warstwie jest mno\u017cony przez wag\u0119, a nast\u0119pnie zsumowany z innymi wa\u017conymi w\u0119z\u0142ami w tej warstwie, aby sta\u0107 si\u0119 danymi wej\u015bciowymi netto w\u0119z\u0142a w kolejnej warstwie. Wagi s\u0105 wa\u017cne, poniewa\u017c s\u0105 g\u0142\u00f3wnym mechanizmem \u201estrojenia\u201d u\u017cywanym do trenowania sieci. Kraw\u0119dziowe algorytmy s\u0105 zwykle u\u017cywane do przypisywania losowych wag dla ka\u017cdego neuronu w sieci. S\u0105 r\u00f3\u017cne zakresy wag np. najcz\u0119\u015bciej -1&lt;-&gt;+1.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">W\u0119ze\u0142 skro\u015bny (odchylenia, wtr\u0105cenia \u2013 bias node)<\/h3>\n\n\n\n<p>W\u0119ze\u0142 odchylenia to dodatkowy w\u0119ze\u0142 dodawany do ka\u017cdego w\u0119z\u0142a ukrytego i w\u0119z\u0142a w warstwie wyj\u015bciowej. W\u0119ze\u0142 skro\u015bny \u0142\u0105czy si\u0119 z ka\u017cdym w\u0119z\u0142em w ka\u017cdej odpowiedniej warstwie. G\u00f3wna cech\u0105 w\u0119z\u0142a skro\u015bnego jest fakt, \u017ce nigdy nie jest po\u0142\u0105czony z poprzedni\u0105 warstw\u0105, ale jest po prostu dodawana do w\u0119z\u0142a danej warstwy. Ponadto zazwyczaj ma sta\u0142\u0105 warto\u015b\u0107 np. 1 lub -1 i ma dodana odpowiednia wag\u0119 na kraw\u0119dzi \u0142\u0105cz\u0105cej. Technicznie rzecz bior\u0105c, waga zapewnia ka\u017cdemu w\u0119z\u0142owi w sieci neuronowej mo\u017cliwo\u015b\u0107 do trenowania ze sta\u0142\u0105 warto\u015bci\u0105 ( np. 1 lub -1). Na poziomie praktycznym umo\u017cliwia to funkcja aktywacji w\u0119z\u0142a skro\u015bnego, kt\u00f3ra mo\u017ce wymusi\u0107 \u201eprzesuni\u0119cie\u201d przyk\u0142adowo albo do \u20131 albo do +1. Obok dostosowania wag, to \u201eprzesuni\u0119cie\u201d mo\u017ce by\u0107 bardzo wa\u017cne i krytyczne dla osi\u0105gni\u0119cia sukcesu w procesie nauczania.<\/p>\n\n\n\n<p><span style=\"color:#f50f07\" class=\"has-inline-color\">Przyk\u0142ad<br><\/span>Na rysunku poni\u017cej znajduje si\u0119 przyk\u0142ad wykre\u015blonej funkcji logistycznej (Sigmoida). Dzi\u0119ki \u201ewtry\u015bni\u0119ciu\u201d dodatkowej warto\u015bci do w\u0119z\u0142a mo\u017cliwe jest &nbsp;\u201eprzesuni\u0119cie\u201d sygmoidy po osi X odchylaj\u0105c w lewo lub wprawo od pozycji 0 (zero). W praktyce warto\u015b\u0107 funkcji y-f(x) dla x=0 mo\u017ce przybiera\u0107 trzy r\u00f3\u017cne warto\u015bci y=0,5 w pozycji przed \u201edostrojeniem\u201d co mo\u017ce doprowadzi\u0107 do b\u0142\u0119dnej decyzji i niejednoznaczno\u015bci oraz 0 (zero) lub -1 po dostrojeniu patrz\u0105c po osi \u201eY\u201d.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie3-4.png\" alt=\"\" class=\"wp-image-25927\" width=\"413\" height=\"155\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Wska\u017anik uczenia si\u0119 (wsp\u00f3\u0142czynnik szybko\u015bci nauki learning rate)<\/h3>\n\n\n\n<p>Wsp\u00f3\u0142czynnik szybko\u015bci uczenia si\u0119 to warto\u015b\u0107, kt\u00f3ra ocenia tempo uczenia si\u0119 algorytmu. Z technicznego punktu widzenia okre\u015bla rozmiar kroku, jaki wykonuje algorytm, gdy zbli\u017ca si\u0119 do globalnego minimum, tj. najni\u017cszego poziomu b\u0142\u0119du. W praktyce minimum globalne cz\u0119sto nie jest osi\u0105gane, a algorytm ustawia si\u0119 na minimum lokalnym, kt\u00f3re jest zbli\u017cone do globalnego.<\/p>\n\n\n\n<p>Szybko\u015b\u0107 uczenia si\u0119 mo\u017ce by\u0107 statyczna i pozostawa\u0107 sta\u0142a przez ca\u0142y proces uczenia si\u0119 lub mo\u017ce by\u0107 zaprogramowana tak, aby zmniejsza\u0142a si\u0119 wraz ze spadkiem wsp\u00f3\u0142czynnika b\u0142\u0119d\u00f3w sieci. Istnieje wiele teorii na temat wyboru odpowiedniego tempa uczenia si\u0119 ale pewne og\u00f3lne zasady spe\u0142niaj\u0105 si\u0119 dla wi\u0119kszo\u015bci przypadk\u00f3w<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Tempo uczenia si\u0119 najcz\u0119\u015bciej b\u0119dzie zale\u017ca\u0142o od przyj\u0119tych przez programist\u0119 metod pr\u00f3b i korekcji b\u0142\u0119d\u00f3w.<\/li><li>Zbyt wysoki wska\u017anik uczenia si\u0119 mo\u017ce wp\u0142yn\u0105\u0107 na zdolno\u015b\u0107 sieci do zbie\u017cno\u015bci \u2013 lub innymi s\u0142owy, nie osi\u0105gnie globalnego minimum i jednoznacznego wyniku. Mo\u017ce to r\u00f3wnie\u017c spowodowa\u0107 przeci\u0105\u017cenie sieci i\/lub niekontrolowane rozbie\u017cno\u015bci w wynikach ko\u0144cowych<\/li><li>Zbyt niska szybko\u015b\u0107 uczenia si\u0119 mo\u017ce powodowa\u0107, \u017ce osi\u0105gni\u0119cie &nbsp;zbie\u017cno\u015b\u0107 wyniku sieci neuronowej mo\u017ce zaj\u0105\u0107 du\u017co czasu.<\/li><li>Wi\u0119kszo\u015b\u0107 przypadk\u00f3w analiz wskazuje, \u017ce wska\u017aniki uczenia si\u0119 bliskie 0 (zero), i oscyluj\u0105 wok\u00f3\u0142 warto\u015bci 0.1.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">W\u0119z\u0142y neuronowe od strony matematycznej https:\/\/pl.wikipedia.org\/wiki\/Macierz<\/h3>\n\n\n\n<p><br>Zasadniczo w w\u0119\u017ale dokonuj\u0105 si\u0119 dwie operacje tj. zsumowanie wszystkich informacji wej\u015bciowych dochodz\u0105cych do w\u0119z\u0142a oraz przemno\u017cenie przez aktywator (funkcj\u0119 aktywacyjna). Tak wykonana operacja jest tzw. warto\u015bci\u0105 w\u0119z\u0142a (nauczon\u0105), kt\u00f3ra w procesie propagacji sygna\u0142u przez sie\u0107 neuronow\u0105 b\u0119dzie w przysz\u0142o\u015bci s\u0142u\u017cy\u0142a do por\u00f3wnywania i innymi danymi wej\u015bciowymi w procesie decyzyjnym. Poni\u017cszy rysunek przedstawia om\u00f3wiona koncepcje koncepcj\u0119.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie4-4.png\" alt=\"\" class=\"wp-image-25928\" width=\"431\" height=\"253\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Suma informacji wej\u015bciowej (netinput)<\/h3>\n\n\n\n<p>Ka\u017cdy w\u0119ze\u0142 ukryty w warstwie ukrytej i w\u0119ze\u0142 wyj\u015bciowy w warstwie wyj\u015bciowej w sieciach neuronowych mo\u017ce mie\u0107 wiele warto\u015bci wej\u015bciowych. Dla tych wszystkich warto\u015bci wej\u015bciowych danego w\u0119z\u0142a tworzone s\u0105 dane wyj\u015bciowe. Podczas wprowadzanie nowego w\u0119z\u0142a dane wej\u015bciowe, musz\u0105 by\u0107 sumowane i przekszta\u0142cane w jedn\u0105 warto\u015b\u0107 wyj\u015bciow\u0105.&nbsp; Aby to zrobi\u0107, operator sumowania wykorzystuje macierze, a jego wyj\u015bcie zazwyczaj nazywany iloczynem skalarnym lub iloczynem wewn\u0119trznym. Suma informacji wej\u015bciowej najcz\u0119\u015bciej jest opisywana poni\u017cszym wzorem:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie5-3.png\" alt=\"\" class=\"wp-image-25929\" width=\"442\" height=\"180\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Funkcja aktywacyjna (aktywator)<\/h3>\n\n\n\n<p>W sieci neuronowej funkcja aktywacyjna otrzymuje wynik operatora sumowania ( Suma<sub>(netinput)<\/sub> ) i przekszta\u0142ca go na ko\u0144cowy wynik w\u0119z\u0142a. Na wysokim poziomie funkcja aktywacjizasadniczo normalizuje dane wej\u015bciowe do oczekiwanego zakresu mo\u017cliwych warto\u015bci wyj\u015bciowych i przekazuje na wyj\u015bcie w\u0119z\u0142a. Przekszta\u0142cona przez aktywator warto\u015b\u0107 wyj\u015bciowa w swoim wyniku reprezentuje, ile w\u0119ze\u0142 powinien wnie\u015b\u0107 w warto\u015bci wyj\u015bciowej np. warto\u015b\u0107 liczbowa z przedzia\u0142u (0; 1); warto\u015b\u0107 tylko \u201e0\u201d lub \u201e1\u201d logicznie itd. Dob\u00f3r funkcji aktywatora zwi\u0105zany jest z kilkoma czynnikami tj.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>tego jakim zakresem danych wej\u015bciowych operujemy (jest to funkcja sumowania , ale niekoniecznie warto\u015bci dziesi\u0119tnych),<\/li><li>jaki jest oczekiwany zakres warto\u015bci wyj\u015bciowych danego w\u0119z\u0142a,<\/li><li>jaki jest wp\u0142yw danej funkcji aktywacyjnej na szybko\u015b\u0107 propagacji sygna\u0142u poprzez sie\u0107 neuronow\u0105.<\/li><li>czy b\u0119dziemy i w jakim zakresie korzysta\u0107 z bias. W kontek\u015bcie bias warto doda\u0107 jedna uwag\u0119. Zasadniczo dan\u0105 sie\u0107 neuronow\u0105 projektuje si\u0119 dla rozwi\u0105zania konkretnego zagadnienia warto w tym miejscu odnotowa\u0107 \u017ce stosowanie bias mo\u017ce umo\u017cliwi\u0107 w pewnym zakresie do prze\u0142\u0105czania zbudowanej sieci rozszerzaj\u0105c\u0105 jej funkcjonalno\u015bci dla zagadnie\u0144 podobnego typu.<\/li><li>jaki problem mamy do rozwi\u0105zania np. dla problem\u00f3w nieliniowych bardziej korzystne b\u0119d\u0105 funkcje nieliniowe jak regresja logistyczna czy tangens hiperboliczny. Natomiast dla rozpoznawania obraz\u00f3w z konwolucyjnymi sieciami neuronowymi (CNN) bardziej korzystna b\u0119dzie funkcja ReLU. To zagadnienie jest tematem stosunkowo rozleg\u0142ym zar\u00f3wno od strony matematycznej jak i od strony do\u015bwiadczalnej. Najpro\u015bciej mo\u017cna uj\u0105\u0107 to tak \u2013 je\u015bli rzutowanie LDA (opis w segmencie Dyskryminacja) nie daje dobrych rezultat\u00f3w i badane klasy trudno jest podzieli\u0107 lini\u0105 prost\u0105 (rysunek Dyskryminacja LDA), to z bardzo du\u017cym prawdopodobie\u0144stwem powinni\u015bmy zastosowa\u0107 np. funkcj\u0119 sygmoidaln\u0105 lub tangensa hiperbolicznego w po\u0142\u0105czniu z wielowarstwowa sieci\u0105 neuronow\u0105.<\/li><\/ul>\n\n\n\n<p>W poni\u017cszej tabeli przedstawiono najbardziej popularne <a href=\"https:\/\/ichi.pro\/pl\/funkcje-aktywacji-sigmoid-relu-leaky-relu-i-softmax-podstawy-dla-sieci-neuronowych-i-glebokiego-uczenia-155703049115934\">funkcje aktywacyjne<\/a> gdzie \u201ex\u201d oznacza sum\u0119 informacji wej\u015bciowej<br><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie6-3.png\" alt=\"\" class=\"wp-image-25930\" width=\"544\" height=\"520\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Propagacja sygna\u0142u w sieci neuronowej<\/h3>\n\n\n\n<p>Jak wspomniano wcze\u015bniej r\u00f3wnanie w\u0119z\u0142a mo\u017cna przedstawi\u0107 w postaci og\u00f3lnej jako:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie7-3.png\" alt=\"\" class=\"wp-image-25931\" width=\"352\" height=\"31\"\/><\/figure><\/div>\n\n\n\n<p>gdzie f<sub>nodeoutput<\/sub> to funkcja wyj\u015bciowa w\u0119z\u0142a; SUMA<sub>netinput<\/sub> to suma informacji wej\u015bciowej; a f<sub>activation<\/sub> to funkcja aktywacyjna. Warto\u015b\u0107 jaka otrzymamy na wyj\u015bciu danego w\u0119z\u0142a to:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie9-2.png\" alt=\"\" class=\"wp-image-25932\" width=\"158\" height=\"26\"\/><\/figure><\/div>\n\n\n\n<p>Propagacja do przodu (feedforward) to powtarzalne zadanie. Obliczenie takiej sieci neuronowej polega na wykonaniu oblicze\u0144 krok po kroku dla ka\u017cdego w\u0119z\u0142a od wej\u015bcia do wyj\u015bcia poprzez wszystkie warstwy, kt\u00f3re zaplanujemy korzystaj\u0105c z funkcji, kt\u00f3r\u0105 wyprowadzili\u015bmy powy\u017cej. Projekt przyk\u0142adowy w Excel dla sieci neuronowej z propagacj\u0105 w prz\u00f3d b\u0119dzie podzielony na dwa etapy. <br><strong>Etap 1<\/strong> (zak\u0142adka Etap1) to proces uczenia, gdzie podstawimy obrazy wzorcowe a \u201ezapami\u0119tany wynik\u201d jest przeniesiony do Etap2<br><strong>Etap 2<\/strong> (zak\u0142adka Etap2), gdzie dokonamy pr\u00f3by \u201erozpoznania\u201d ka\u017cdego obrazu.<\/p>\n\n\n\n<p>Dla naszych potrzeb przygotowano dwa \u201eobrazy: w postaci plik\u00f3w *.ico do rozwi\u0105zania odwiecznego dylematu \u201eco mamy na obrazku jajko czy kur\u0119\u201d. Dla uproszczenia rachunku skorzystamy 8&#215;8 map bitowych. Obliczamy przyk\u0142ad dla sieci z propagacj\u0105 do przodu. &nbsp;W przyk\u0142adzie wykorzystamy dwie funkcje:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>regresja logistyczna \u2013 dla warstwy wej\u015bciowej oraz dla warstwy ukrytej<\/li><li>krokowa binarna &#8211; dla warstwy wyj\u015bciowej<\/li><\/ul>\n\n\n\n<p>Jak wspomniano oblicze\u0144 dokonano w dw\u00f3ch etapach. W zak\u0142adce Etap1 nasza sie\u0107 neuronowa przechodzi proces uczenia si\u0119. Wynik oblicze\u0144 jest przeniesiony do Etap2 jako warto\u015b\u0107 BIAS. Nasza sie\u0107 neuronowa ma rozr\u00f3\u017cnia\u0107 dwa rysunki kt\u00f3re dla potrzeb oblicze\u0144 przyk\u0142adowych utworzono jako miniaturowe bitmapy (BMP) o wymiarach 8&#215;8 kt\u00f3re z rozszerzeniem *.ICO kt\u00f3re s\u0105 widziane w systemie Windows jako kolorowe ikony z kt\u00f3rych jedna przedstawia <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/chicken.ico\">KUR\u0118<\/a> a druga <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/egg.ico\">JAJO<\/a>. Nasze \u201eobrazki\u201d zosta\u0142y przetworzone do postaci cyfrowej i pola z danymi rysunku przeniesione do przyk\u0142adowego pliku Excel. Zrobiono to poprzez wykorzystanie mo\u017cliwo\u015bci podgl\u0105du bitowego pliku za pomoc\u0105 programu NOTEPAD++. Do zrozumienia budowy plik\u00f3w BMP mo\u017cna przeanalizowa\u0107 informacje zawarte w tym <a href=\"https:\/\/en.wikipedia.org\/wiki\/BMP_file_format\">linku<\/a>.<br>Na rysunku poni\u017cej przedstawiono podgl\u0105d pliku za pomoc\u0105 Notepad++. Widok celowo roz\u0142o\u017cono na 18 kolumn by wychwyci\u0107 pierwsze 54 bajty kt\u00f3re nie nios\u0105 dla naszego przyk\u0142adu danych o obrazie s\u0105 natomiast niezb\u0119dne do prawid\u0142owego funkcjonowania pliku BMP w systemie Windows.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ai4dummies.pl\/wp-content\/uploads\/2021\/09\/Przechwytywanie10-1.png\" alt=\"\" class=\"wp-image-25933\" width=\"704\" height=\"316\"\/><\/figure><\/div>\n\n\n\n<p>Zakre\u015blone dane o obrazie dla obu ikon (\u201eobraz\u00f3w\u201d) zosta\u0142y przekopiowane do pliku Excel w kt\u00f3rym dokonujemy oblicze\u0144. Dane te zosta\u0142y w Excel przeliczone na posta\u0107 dziesi\u0119tn\u0105 w ukrytej cz\u0119\u015bciowo kolumnie. W zak\u0142adce Etap2 ka\u017cdorazowo do wykonania oblicze\u0144 testowych dane z kolumn KURA&nbsp; lub JAJO trzeba wklei\u0107 do kolumny. Oczywi\u015bcie mo\u017cna by by\u0142o to zrobi\u0107 za pomoc\u0105 makra ale dla os\u00f3b pocz\u0105tkuj\u0105cych mog\u0142oby to utrudni\u0107 zrozumienie procesu. Obliczenia s\u0105 dost\u0119pne w poni\u017cszym pliku <a href=\"https:\/\/github.com\/DonTomBB\/AI4DUMMIES\/blob\/main\/121neuralNetwork%20%E2%80%94%20kopia.xlsx\">excel tutaj<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wst\u0119p Dane jak je rozumiemy Kopanie danych Jak widzimy dane Uczenie maszynowe ML Biblioteki ML Podstawy Architektura Klasyfikacja Klastrowanie Dyskryminacja &#8211; LDA Sieci neuronowe Cel bloga Celem tego kursu jest wprowadzenie do praktyki eksploracji danych i uczenia maszynowego. Zawarte materia\u0142y nale\u017cy traktowa\u0107 jako pierwszy krok do tej tematyki z zastosowaniem w praktyce prostych powszechnych narz\u0119dzi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"full-width.php","meta":{"footnotes":""},"class_list":["post-26012","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=\/wp\/v2\/pages\/26012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=26012"}],"version-history":[{"count":27,"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=\/wp\/v2\/pages\/26012\/revisions"}],"predecessor-version":[{"id":26351,"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=\/wp\/v2\/pages\/26012\/revisions\/26351"}],"wp:attachment":[{"href":"https:\/\/ai4dummies.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=26012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}