Bawiąc się teraz Machine Learning'iem używam szukania clickbaitów jako problemu, który atakuję różnymi sposobami.
Użyłem już naiwnego klasyfikatora Bayesa, ostatnio zaś spróbowałem użyć logistic regression.
Bayes dawał sobie radę z rozpoznaniem 94% clickbaitów ze zbioru uczącego i 97.4% poprawnych artykułów.
Logistic regression daje sobie radę lepiej ;-) bo ma wykrywalność równą 100% dla obu przypadków ;-)
Jest jednak możliwe, że cierpi na overfitt.
We wszystkim wykorzystałem kod, który napisałem w ramach zabaw z kursem z Machine Learningu na Coursera.
Kod ten działa w GNU Octave, czyli klonie MathLab'a.
Jest różnica ;-)
Policzenie czy dany artykuł jest clickbaitem czy nie w Octave to:
sigmoid(xi*Theta)
a w JavaScript'cie:
function classify(vec2Classify) {
var sum = theta[0];
for (var i=0; i<vec2Classify.length; i++) {
sum+=vec2Classify[i]*theta[i+1];
}
return sigmoid(sum);
}
Nauka klasyfikatora odbywała się w Octave, ale że Octave działa tylko na wektorach/macierzach/skalarach to musiałem popełnić kawałek dla NodeJS, który przekonwertował zbiór uczący w macierz i zapisał ją w formacie zrozumiałym dla Octave (dość powiedzieć, że to było ponad 64 miliony liczb 0 i 1 ;-)).
Później zaś musiałem przekonwertować wynik z Octave do JavaScripta (tablica z 10330 liczb zmiennoprzecinkowych).
Jak dobrze pójdzie za jakiś czas zrobię wersję, która będzie działa w oparciu o sieci neuronowe ;-)
Źródła rozszerzenia do Chrome, które rozpoznaje clickbaity (w wersji z Bayesem i z Logistic Regression) jak zwykle na moim GitHub'ie :-)
Podobne postybeta
ClickbaitDetector - to działa :-)
Clickbait detector ;-) - czyli próbujemy użyć naiwnego klasyfikatora Bayesowskiego do rozpoznawania clickbaitów ;-)
Równoległe liczenie modeli przy pomocy Octave
Naiwny klasyfikator bayesowski nie jest jednak dobry do rozpoznawania clickbaitów ;-)
Dwie książki komputerowe na długi weekend :-)
Brak komentarzy:
Prześlij komentarz