• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak podejść do zadania zw. z machine learning?

Object Storage Arubacloud
+1 głos
508 wizyt
pytanie zadane 10 grudnia 2018 w Inne języki przez smokolisz Mądrala (6,340 p.)

Cześć mam do zrobienia projekt związany z machine learning wykorzystując perceptron.

Mam 10000 zbiorów liczb składających się z 6 elementów np {1, 3, 8, 11, 24, 25}. Każda liczba oznacza położenie czarnego pikselu na obrazku 7x7 pikselów. Następnie dla każdego zbioru potrzebuje sprawdzić ile z tych liczb jest parzystych, a ile nieparzystych. Kolejną cechą jest zagęszczenie czarnych pikselów na obrazku.

  1. Czy znacie może jakiś fajny działający przykład czegoś podobnego?
  2. Mam doświadczenie w językach c++, js, php, czy one nadają się do tego zadania? Czy lepiej wdrożyć się w coś innego? Słyszałem, że dobrym językiem do tego będzie python. Czy ma on rzeczywiście takie narzędzia, dzięki którym szybko udałoby mi się napisać odpowiedni program?
  3. Na co zwracać uwage podczas szukania informacji potrzebnych do rozwiązania problemu? Polecicie jakieś poradniki, źródła związane z tym tematem?
  4. Jakie narzędzie/bibliotekę polecicie do wygenerowania wielu obrazków w js?

1 odpowiedź

+1 głos
odpowiedź 10 grudnia 2018 przez Benek Szeryf (91,210 p.)
wybrane 12 marca 2019 przez smokolisz
 
Najlepsza
  1. Tak, patrz listing na końcu tego postu.
  2. Nie nadają się aż tak dobrze jak Python. Python ma wiele narzędzi, które umożliwiają w błyskawiczny sposób rozwiązywać takie problemy (patrz listing).
  3. Na początek należy zapoznać się z biblioteką Numpy, nawet jeśli mówimy o deep learningu. Warto też zapoznać się biblioteką Scikit-learn.
  4. Nie znam JS. Nie widzę sensu generowania obrazków za pomocą JS, skoro można to również zrobić łatwo za pomocą Pythona. Wykorzystałbym bibliotekę Matplotlib do produkcji obrazków. Mogę Ci z tym pomóc, jeśli będziesz chciał.
import numpy as np

n, m = 10000, 6
data = np.random.randint(low=1, high=m**2, size=(n,m), dtype=int) # wygenerowanie danych
is_odd = lambda x: x & 0b1
seq = map(is_odd, data.flatten())
odd_even_array = np.reshape(np.fromiter(seq, int), (-1, m))

for row in odd_even_array:
    s = row.sum()
    print(s, m - s)

s wskazuje ile jest liczb nieparzystych w danym zbiorze, natomiast m - s ile jest liczb parzystych. data zawiera macierz, która ma 10 000 wierszy i 6 kolumn. Każdy wiersz został wypełniony losowymi wartościami całkowitymi z przedziału <1, 36>. Pobierz sobie IPythona, uruchom go i wklej ten kod w konsolę (dograj moduł numpy, jeśli nie masz). W ten sposób możesz poeksperymentować.

komentarz 10 grudnia 2018 przez smokolisz Mądrala (6,340 p.)
Dzięki wielkie :)

Podobne pytania

+1 głos
3 odpowiedzi 509 wizyt
+1 głos
2 odpowiedzi 1,948 wizyt
+2 głosów
3 odpowiedzi 592 wizyt

92,757 zapytań

141,679 odpowiedzi

320,429 komentarzy

62,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...