Wpis z mikrobloga

Od kilku dni próbuję znaleźć prosty i praktyczny problem który mógłbym rozwiązać za pomocą logicznej regresji.

Jest kilka oklepanych przykładów jak OCR, SPAM, FRAUD, rozpoznawanie twarzy itd. ale jak wspomniałem, są mało oryginalne i dość czasochłonne w implementacji (od początku). A mi chodzi o mało złożony problem i łatwo dostępne dane treningowe.

Myślałem o wykrywaniu oszustw przy logowaniu na podstawie czasu wpisywania hasła, tylko nie mam danych treningowych - musiałbym stworzyć jakąś formatkę i wysłać do kilku osób celem kolekcji tych danych.

Innym pomysłem jest przewidywanie czy dana drużyna piłkarska wygra mecz, na podstawie tego czy gra u siebie oraz czy drużyna przeciwna jest wyżej w tabeli.

Wiem, że przykłady mało wyszukane (możliwe nawet, że niepoprawne z punktu widzenia ML) ale nic więcej mi nie przychodzi do głowy. Inspiracji szukałem też na stronach GUSu i google trends.

Może ktoś z Szanownych Mirków i Węgierek mógłby czymś zainspirować?

#machinelearning
  • 17
@Diego19: Może troche przesadzam, bo rzeczywiście jeśli ktoś chce poznać dogłębnie jakąś metodę to warto sobie może zaimplementować na bardzo prostym przykładzie. Implementacje algorytmów machine-learningowych są trudne, i przede wszystkim czasochłonne. Do tego dochodzą problemy typowe dla metod numerycznych, alokacja pamięci, overflow liczb itd. Lepiej zacząć się uczyć wykorzystywać gotowe narzędzia.
@dziobaki_sa_jadowite: Moim zdaniem jeśli odradzasz, to warto od razu wspomnieć dlaczego. Osobiście implementowałem samemu wszystko, czego w ML używałem i uważam, że to najlepszy sposób zrozumieć jak to wszystko działa. Oczywiście jeżeli ktoś nie jest zapalonym programistą, to może pójść na skróty i skorzystać z gotowych rozwiązań, bo po to one są, ale jeżeli ktoś ma taką możliwość, tzn. umie programować, to powinien spróbować samemu wszystko napisać.
@dziobaki_sa_jadowite: Regresja liniowa, regresja logistyczna, k-NN, Naive Bayes, sieci neuronowe, a do tego kilka ekstraktorów cech. Miałem do tego fajne materiały ze studiów, które wyjaśniały część teoretyczną, na tyle prosto, że bez problemu je zaimplementowałem i uważam, że to była najlepsza forma nauki.
@Diego19: Tak jak napisałem, uważam że jeśli ktoś chce poznać dogłębnie metodę, to warto ją zaimplementować na prostym przykładzie, i nie zrozum mnie źle, ale zakładam że takie Twoje były. Jeśli ktoś chce sprawdzać i dowiedzieć się jak różne konfiguracje hiper-parametrów oddziałują na wyniki to najlepiej jest użyć gotowych rozwiązań, bo są niemal na pewno zaimplementowane poprawnie. Przykładowo: we własnoręcznej sieci neuronowej ciężko będzie zmienić tak architekturę żeby można było zobaczyć
@dziobaki_sa_jadowite: W C rzeczywiście byłoby to dość skomplikowane i zajęło by sporo czasu (aczkolwiek jak najbardziej wykonalne), ale w takim Matlabie robi się to już całkiem sprawnie i prosto. A jeżeli chodzi o Twój drugi argument, to powiedziałbym, że jest wprost przeciwnie. Wiele gotowych rozwiązań jest bardzo ograniczona jeżeli chodzi o wgląd do środka algorytmu, zmianę architektury sieci itp. natomiast implementując swoje własne rozwiązanie mam pełną kontrolę nad każdym aspektem. Z
@Diego19 Nie rozumiemy się na podstawowym poziomie. Ja przez implementacje od podstaw, rozumiem implementacje bez posiadania jakiegokolwiek wsparcia od strony obliczeń numerycznych, ty przez implementacje od podstaw rozumiesz napisanie skryptu w matlabie. To nie jest implementacja od podstaw. Tak to jest implementacja, ale nie od podstaw bo wiele rzeczy jest już gotowych.

P.S. To moja prywatna opinia, której nie podeprę niczym: matlab w machine-learningu to jakaś porażka. Słyszałem wiele opinii o tym
@dziobaki_sa_jadowite: Co do samego użycia Matlaba, to ja z niego korzystałem i poza ustawieniem ścieżki instalacji, nie musiałem nic więcej robić, żeby działał poprawnie i wykorzystywał GPU, nie zawiesił mi się ani razu i działał całkiem wydajnie, ale konkretnych wartości Ci nie podam, bo nie pisałem identycznych programów w C dla porównania.

A co do mojego rozumienia "implementacji". Pisząc w Matlabie nie wykorzystywałem żadnych gotowych funkcji z ML, wszystko implementowałem samemu
Panowie @dziobaki_sa_jadowite @Diego19 na wstępie dziękuję za rzeczową dyskusję.
Swoją drogą kolejny już raz przekonuję się, że na portalu ze śmiesznymi obrazkami dużo szybciej uzyskasz wartościowe odpowiedzi niż na niejednym branżowym forum.

Wracając do tematu @dziobaki_sa_jadowite to masz rację, chodzi oczywiście o zagadnienie regresji logistycznej.

Dziękuję za podane przykłady.
O ile ten z Titaniciem za praktyczny nie jest ( ͡° ͜ʖ ͡°), to już ceny domów - tak.
jedynym uproszczeniem względem C było to, że nie musiałem martwić się pamięcią


Prawdopodobnie nie zdajesz sobie sprawy z tego co do końca napisałeś. Pod względem programistycznym to jest prawdopodobnie największe wyzwanie reszta to tak na prawdę bardziej matematyka niż programowanie i inne umiejętności są potrzebne.
Moje zdanie jest takie że w dzisiejszych czasach pisać od podstaw te algorytmy po by lepiej je rozumieć to prawie jak samemu budować proste modele komputerów żeby
@poje_bant: Zdaję sobie sprawę z tego co napisałem, a cały nasz spór rozwodził się nad tym, że ja miałem inną definicję "programowania od podstaw". Dla mnie oznaczało to skupienie się, nie nad zarządzaniem pamięcią i implementacją wymienionych wyżej operatorów, bo nie to jest istotą ML. Dla mnie oznaczało to np. napisanie własnego klasyfikatora, a nie użycie gotowego, któremu wystarczy podać dane treningowe i reszta dzieje się sama. Równie dobrze dla kogoś