IB031 - YouTube comments
autoři: Gendiar, Košvanec, Tsykynovska
Načtení datasetu
Načteme všechné soubory do jednoho DataFrame a vypíšeme základní info:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1956 entries, 0 to 369
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 COMMENT_ID 1956 non-null object
1 AUTHOR 1956 non-null object
2 DATE 1711 non-null datetime64[ns]
3 CONTENT 1956 non-null object
4 CLASS 1956 non-null int64
dtypes: datetime64[ns](1), int64(1), object(3)
memory usage: 91.7+ KB
Explorační analýza
Prozkoumáme dataset. Podíváme se, kolik v něm je spamů a hamů, jaký je jejich podíl, jaká jsou nejpouživánějsí slova pro spam a ham, kolik slov je ve zprávách a v jaké dny týdnu zprávy jsou nejčastěji přidávané.
Tady vidíme, že data jsou rozdělené na ham a spam přibližně stejně.
Mezi nejpoužívanější slova ke spamu patří "check", "please", "subscribe", "channel", k hamu "love", "song", "like".
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data] Package stopwords is already up-to-date!
Spam - 10 most common used words
check 506
video 208
please 201
subscribe 193
like 147
channel 124
youtube: 120
new 119
guys 94
music 92
dtype: int64
Ham - 10 most common used words
song 146
love 136
like 78
video 65
katy 51
best 49
views 44
billion 43
good 35
people 32
dtype: int64
Chceme vidět, jaká je závislost mezi počtem slov ve zprávě a její příslušností ke spamu/hamu.
Zajímavé je, že velká část spamových zpráv má 6 slov.
Každý den bylo přidávané skoro stejné množství hamů a spamů, proto jsme rozhodli nepoužívat tento sloupec.
Předzpracování
Number of columns: 4454
Modely
Baseline model - Naive Bayes
Baseline model - Naive Bayes accuracy 92.092 %
F1 score [0.91267606 0.92773893]
50-fold cross validation average score for Naive Bayes model: 91.973 %
Decision trees model
Tato metoda se používá pro klasifikaci a regrese. Vybrali jsme DecisionTreeClassifier, protože potřebujeme rozdělit data na několik diskretních tříd. Celkově pro Decision Trees platí, že cím hlubší je strom, tím složitější jsou rozhodovácí pravidla a tím napasovaný je model. Ale z toho vyplývá nedostatek této metody, t.z. "overfitting".
Pro hledání parametrů, které by dali největší správnost, používáme GridSearchCV.
Fitting 5 folds for each of 300 candidates, totalling 1500 fits
Best params for Decision tree classifier are: {'ccp_alpha': 0.0, 'criterion': 'gini', 'max_depth': 19, 'min_samples_leaf': 1, 'random_state': 42}
DTC with best params accuracy: 93.112 %
DTC (random_state=42, ccp_alpha=0.0, criterion='gini', max_depth=19, min_samples_leaf=1) accuracy 93.112 %
F1 score [0.92520776 0.93617021]
50-fold cross validation average score for DTC: 94.431 %
Logistic regression model
I přes jméno Logistická regrese, tak se tento model používá více ke klasifikaci nežli k regresi. Logistická regrese se také někdy uvádí v odborné literatuře jako Logit regression. Výsledek modelu jsou hodnoty 0 v případě, že jev nenastal a 1 v případě pokud ano, a které takto pak udávají výslednou pravděpodobnost.
Fitting 5 folds for each of 84 candidates, totalling 420 fits
Best parameters are: {'C': 1.0, 'class_weight': None, 'max_iter': 50, 'random_state': 42, 'solver': 'liblinear'}
Logistic regresion accuracy: 96.0 %
Logistic regression model accuracy: 95.918 %
F1 score [0.95604396 0.96190476]
50-fold cross validation average score for Logistic regression model: 95.088 %
Support vector machines model
Fitting 5 folds for each of 20 candidates, totalling 100 fits
Best params for SVM classifier model are: {'C': 10.0, 'kernel': 'rbf'}
SVM classifier with best params accuracy: 95.408 %
SVM model (rbf kernel, C=10) accuracy 95.408 %
F1 score [0.9494382 0.95794393]
50-fold cross validation average score for SVM model: 95.805 %
Kombinovaný model
Combined model accuracy 95.408 %
F1 score [0.95 0.95754717]
50-fold cross validation score for combined model: 96.267 %
Závěr
Porovnání modelů
Perličky aneb špatně určené zprávy
False positives (ham messages classified as spam):
2,000,000,000 out of 7,000,000,000 people in the would saw this video just in 2 years and yeat i only get 2 words out of the hole song
How did THIS Video in all of YouTube get this many views and likes? Why Gangnam style? I don't have a problem with it, i just don't understand the phenomena behind it, it's just like any other random music video out there.
OMG I LOVE YOU KATY PARRY YOUR SONGS ROCK!!!!!!!!!!!!!!!!! THATS A TOTAL SUBSCRIBE
YOUTUBE MONEY !!!!!!!!!!!!!!!!!!!!!!!
Lemme Top Comments Please!!
False negatives (spam messages classified as ham):
Aslamu Lykum... From Pakistan
http://thepiratebay.se/torrent/6381501/Timothy_Sykes_Collection
los invito a subscribirse a mi canal
http://www.ebay.com/usr/shoecollector314
We can have a party next share
I love katy fashions tiger, care to visit my blog sinar jahitan I also have the tiger collections tqvm
Finally someone shares the same opinion as me. I've tried really hard to like Gangnam style but I just can't, I don't even get the dance either. A song like this should be more popular than Gangnam Style, at least it makes sense.
I'm A SUBSCRIBER
share your thoughts
She loves Vena. trojmiasto.pl/Vena-Bus-Taxi-o59253.html
http://thepiratebay.se/torrent/10626048/The.Expendables.3.2014.DVDScr.LEAKED.CLEAN.XviD.MP3-RARBG
http://thepiratebay.se/torrent/10626835/The.Expendables.3.2014.DVDSCR.Xvid-DiNGO
+447935454150 lovely girl talk to me xxx
testovaní vytvořených spamových zpráv: [1 1 1]
testovaní vytvořených hamových zpráv: [0 0 0]
výsledek testování: 1 - jedná se o Spam, 0 - jedná se o Ham