Ifi6057labx: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
PriitJ (arutelu | kaastöö)
PriitJ (arutelu | kaastöö)
 
(ei näidata sama kasutaja 12 vahepealset redaktsiooni)
1. rida: 1. rida:
<!--
== Mis on lisaülesanne? ==
== Mis on lisaülesanne? ==


13. rida: 14. rida:


Kirjuta essee (1000 sõna) teemal "Deep learning", mis käsitleb hetke masinõppe trende. Esseed hinnatakse akadeemiliste tavade kohaselt. Allikad peavad olema korrektselt viidatud. Esita essee '''PDF''' formaadis. "Kaitsta" seda ei ole vaja, seega oota õppejõult kinnitust kätte saamise kohta. Punktid avaldatakse [[Ifi6057res2015|semestri tulemuste]] lehel.
Kirjuta essee (1000 sõna) teemal "Deep learning", mis käsitleb hetke masinõppe trende. Esseed hinnatakse akadeemiliste tavade kohaselt. Allikad peavad olema korrektselt viidatud. Esita essee '''PDF''' formaadis. "Kaitsta" seda ei ole vaja, seega oota õppejõult kinnitust kätte saamise kohta. Punktid avaldatakse [[Ifi6057res2015|semestri tulemuste]] lehel.
-->


== Variant 2: masinõppe katsetamine ==
== Masinõppe katsetamine ==


Vali üks masinõppeks sobiv tarkvarapakett ning katseta kursuses õpitud klassifitseerimise meetodeid: otsustuspuu ja/või närvivõrgud. Eesmärgiks on õppida inimese andmete põhjal ennustama, kas ta jääb ellu või upub Titanicu laevahukus. Võta [http://github.com/wehrley/Kaggle_Titanic siit lehelt] <code>train.csv</code> ja õpeta valitud klasifitseerija välja. Siis kasuta <code>test.csv</code>-d testimiseks (mitu protsenti täppi läheb). Andmete kirjeldus on samal githubi lehel.
Uuri, mis on masinõppe abil klassifitseerimine. Vt. näiteks ''AIMA'', 18.3 ja 18.7; [https://www.youtube.com/watch?v=cKxRvEZd3Mw Machine learning "Hello World"]


Katsetamine peaks sisaldama mingit võrdlust - proovi erinevaid meetodeid üksteise vastu, ühte meetodit erinevate parameetritega või ühte meetodit erinevalt eeltöödeldud sisenditega. Tulemuste kohta tuleb teha detailne raport.
Kodutöö teemaks on e-mailides pahatahtlike (i.k. ''phishing'') linkide ära tundmine. Selleks on kasutada [[Media:IFI6057_hw2017_data.txt‎|andmed]] [1], kus üksikud kahtlased atribuudid (näit. URL pikkus) on juba tuvastatud. Kodutöös tuleb langetada üksikute atribuutide pealt lõppotsus - kas link on pahatahtlik, kahtlane või ohutu.
 
Vali üks masinõppeks sobiv tarkvarapakett ning katseta klassifitseerimise meetodeid nagu otsustuspuu või närvivõrgud. Jaota õppimisandmed kaheks - treeningandmed ja testandmed. Nii saad klassifitseerimise edukust testida. Võib kasutada ka krossvalideerimist.
 
Katsetamine peaks sisaldama mingit võrdlust - proovi erinevaid meetodeid üksteise vastu, ühte meetodit erinevate parameetritega või erinevate atribuutide (i.k ''feature'') mõju tulemusele. Tulemuste kohta tuleb teha detailne raport.


=== Vahendid ===
=== Vahendid ===


Kursuse õpiku jaoks on koostatud spetsiaalsed teegid (näit <code>aima-python</code> ja <code>aima-java</code>), mis implementeerivad õpikus toodud algoritme. Paraku on need kohati poolikud, kohati liiga primitiivsed, et Titanicu andmetaga midagi pihta hakata. Seega oleks soovitus võtta üks kahest meinstriim paketist - mõlemad peaks olema omas valdkonnas kõige populaarsemad ja hästi dokumenteeritud:
Kursuse õpiku jaoks on koostatud spetsiaalsed teegid (näit <code>aima-python</code> ja <code>aima-java</code>), mis implementeerivad õpikus toodud algoritme. Paraku on masinõppe osa nendes teekides ebaühtlane ja poolik. Seega oleks soovitus võtta üks kahest meinstriim paketist - mõlemad peaks olema omas valdkonnas kõige populaarsemad ja hästi dokumenteeritud:


* http://scikit-learn.org/stable/index.html - Python
* http://scikit-learn.org/stable/index.html - Python
* http://www.cs.waikato.ac.nz/ml/weka/ - Java
* http://www.cs.waikato.ac.nz/ml/weka/ - Java


=== Andmete kirjeldus ===
Kõik atribuudid (ja lõplik klassifikatsioon) omavad järgnevaid väärtusi:
* 1 - Legitiimne
* 0 - kahtlane
* -1 - Pahatahtlik või iseloomulik pahatahtlikule URL-ile
Atribuudid:
* <code>SFH</code> kas veebilehel olevad vormid suunavad uuele domeenile
* <code>popUpWidnow</code> kas veebilehel on pop-up aknaid
* <code>SSLfinal_State</code> kas HTTPS on kasutuses ja kas sertifikaat on usaldusväärne
* <code>Request_URL</code> kas veebileht laadib pilte ja muid komponente teiselt domeenilt
* <code>URL_of_Anchor</code> kas veebileht sisaldab palju linke teisele domeenile
* <code>web_traffic</code> kas veebilehe külastatavus on kõrge, keskmine või madal (Alexa ranking)
* <code>URL_Length</code> ülipikk, pikk või tavaline URL
* <code>age_of_domain</code> domeeni on vana või värskelt registreeritud
* <code>having_IP_Address</code> URL sisaldab IP aadressi
Väli <code>Result</code> sisaldab lõplikku klassifikatsiooni treenimiseks ja testimiseks.
Näide:
  ...
  1,-1,1,0,-1,-1,0,1,0,-1
  1,-1,0,-1,-1,-1,0,1,0,1
  1,0,1,1,1,-1,1,1,0,-1
  1,1,1,-1,1,1,-1,-1,0,-1
  ...
<!--
=== Andmete eeltöötlus ===
=== Andmete eeltöötlus ===


Treeningandmed ei pruugi esialgsel kujul õppimiseks kõige paremad olla. Näiteks on küsitav, kas pardale tulemise sadam või piletihind on ellujäämise ennustamiseks kasulik informatsioon või hoopis häiriv müra. Samuti sõltub andmete sobivus valitud meetodist ja masinõppe paketist. Näiteks närvivõrgud saavad tehnilistel põhjustel otse sisse süüa ainult numbrilisi andmeid. Eeltöötluseks võib valitud paketis juba olla sobivaid funktsioone.
Treeningandmed ei pruugi esialgsel kujul õppimiseks kõige paremad olla. Näiteks on küsitav, kas pardale tulemise sadam või piletihind on ellujäämise ennustamiseks kasulik informatsioon või hoopis häiriv müra. Samuti sõltub andmete sobivus valitud meetodist ja masinõppe paketist. Näiteks närvivõrgud saavad tehnilistel põhjustel otse sisse süüa ainult numbrilisi andmeid. Eeltöötluseks võib valitud paketis juba olla sobivaid funktsioone.
-->


=== Raport ===
=== Raport ===
37. rida: 76. rida:
* Sissejuhatus. Valitud meetod. Mis eksperiment teostatakse (mida võrreldi millega ja ei tee paha panna kirja ka, miks just nii).
* Sissejuhatus. Valitud meetod. Mis eksperiment teostatakse (mida võrreldi millega ja ei tee paha panna kirja ka, miks just nii).
* Eksperimendi kirjeldus. Kuidas andmeid eeltöödeldi. Mismoodi katsetati. Kirjelduse põhjal peaks olema võimalik katseid samamoodi järgi teha.
* Eksperimendi kirjeldus. Kuidas andmeid eeltöödeldi. Mismoodi katsetati. Kirjelduse põhjal peaks olema võimalik katseid samamoodi järgi teha.
* Tulemused. See osa peab sisaldama vähemalt ühte õppimiskõvera graafikut (ei pea nii peene resolutsiooniga olema, piisab ~10-st erinevast treeningsisendi suurusest).
* Tulemused. Sisaldab erinevate katsete võrdlust (vt. ülalpool). Lisa siia vähemalt üks õppimiskõvera graafik (ei pea nii peene resolutsiooniga olema, piisab ~10-st erinevast treeningsisendi suurusest).
[[File:learningrate.png|250px]]
[[File:learningrate.png|250px]]
''(Pilt võetud S. Russelli slaididelt)''
* Kokkuvõte.
* Kokkuvõte.


=== Kaitsmine ===
=== Esitamine ===
 
Töö saadetakse õppejõule aadressil '''priit at whitedb.org''' hiljemalt 27. novembriks. Vaja on saata raport, mis peab iseseisvalt võimaldama aru saada, mida tehti ja mis tulemus oli. Tähtajaks esitatud nõuetele vastav töö saab kuni 15 punkti, hilinemise korral lähevad punktid alla (iga päeva eest -1 punkti). Üle 14 päeva hilinenud tööd vastu ei võeta.
 
=== Viited ===


Töö jaoks lepitakse kokku kaitsmise aeg eksamisessiooni ajal (kusagil peale 6. jaanuari).
1. ''Abdelhamid et al., Phishing Detection based Associative Classification Data Mining. Expert Systems With Applications (ESWA), 41 (2014) 5948-5959''

Viimane redaktsioon: 18. september 2017, kell 07:33


Masinõppe katsetamine

Uuri, mis on masinõppe abil klassifitseerimine. Vt. näiteks AIMA, 18.3 ja 18.7; Machine learning "Hello World"

Kodutöö teemaks on e-mailides pahatahtlike (i.k. phishing) linkide ära tundmine. Selleks on kasutada andmed [1], kus üksikud kahtlased atribuudid (näit. URL pikkus) on juba tuvastatud. Kodutöös tuleb langetada üksikute atribuutide pealt lõppotsus - kas link on pahatahtlik, kahtlane või ohutu.

Vali üks masinõppeks sobiv tarkvarapakett ning katseta klassifitseerimise meetodeid nagu otsustuspuu või närvivõrgud. Jaota õppimisandmed kaheks - treeningandmed ja testandmed. Nii saad klassifitseerimise edukust testida. Võib kasutada ka krossvalideerimist.

Katsetamine peaks sisaldama mingit võrdlust - proovi erinevaid meetodeid üksteise vastu, ühte meetodit erinevate parameetritega või erinevate atribuutide (i.k feature) mõju tulemusele. Tulemuste kohta tuleb teha detailne raport.

Vahendid

Kursuse õpiku jaoks on koostatud spetsiaalsed teegid (näit aima-python ja aima-java), mis implementeerivad õpikus toodud algoritme. Paraku on masinõppe osa nendes teekides ebaühtlane ja poolik. Seega oleks soovitus võtta üks kahest meinstriim paketist - mõlemad peaks olema omas valdkonnas kõige populaarsemad ja hästi dokumenteeritud:

Andmete kirjeldus

Kõik atribuudid (ja lõplik klassifikatsioon) omavad järgnevaid väärtusi:

  • 1 - Legitiimne
  • 0 - kahtlane
  • -1 - Pahatahtlik või iseloomulik pahatahtlikule URL-ile

Atribuudid:

  • SFH kas veebilehel olevad vormid suunavad uuele domeenile
  • popUpWidnow kas veebilehel on pop-up aknaid
  • SSLfinal_State kas HTTPS on kasutuses ja kas sertifikaat on usaldusväärne
  • Request_URL kas veebileht laadib pilte ja muid komponente teiselt domeenilt
  • URL_of_Anchor kas veebileht sisaldab palju linke teisele domeenile
  • web_traffic kas veebilehe külastatavus on kõrge, keskmine või madal (Alexa ranking)
  • URL_Length ülipikk, pikk või tavaline URL
  • age_of_domain domeeni on vana või värskelt registreeritud
  • having_IP_Address URL sisaldab IP aadressi

Väli Result sisaldab lõplikku klassifikatsiooni treenimiseks ja testimiseks.

Näide:

 ...
 1,-1,1,0,-1,-1,0,1,0,-1
 1,-1,0,-1,-1,-1,0,1,0,1
 1,0,1,1,1,-1,1,1,0,-1
 1,1,1,-1,1,1,-1,-1,0,-1
 ...


Raport

Raport on PDF formaadis ja sisaldab:

  • Sissejuhatus. Valitud meetod. Mis eksperiment teostatakse (mida võrreldi millega ja ei tee paha panna kirja ka, miks just nii).
  • Eksperimendi kirjeldus. Kuidas andmeid eeltöödeldi. Mismoodi katsetati. Kirjelduse põhjal peaks olema võimalik katseid samamoodi järgi teha.
  • Tulemused. Sisaldab erinevate katsete võrdlust (vt. ülalpool). Lisa siia vähemalt üks õppimiskõvera graafik (ei pea nii peene resolutsiooniga olema, piisab ~10-st erinevast treeningsisendi suurusest).

(Pilt võetud S. Russelli slaididelt)

  • Kokkuvõte.

Esitamine

Töö saadetakse õppejõule aadressil priit at whitedb.org hiljemalt 27. novembriks. Vaja on saata raport, mis peab iseseisvalt võimaldama aru saada, mida tehti ja mis tulemus oli. Tähtajaks esitatud nõuetele vastav töö saab kuni 15 punkti, hilinemise korral lähevad punktid alla (iga päeva eest -1 punkti). Üle 14 päeva hilinenud tööd vastu ei võeta.

Viited

1. Abdelhamid et al., Phishing Detection based Associative Classification Data Mining. Expert Systems With Applications (ESWA), 41 (2014) 5948-5959