Ifi6057labx: erinevus redaktsioonide vahel
Uus lehekülg: '== Mis on lisaülesanne? == Lisaülesanne on võimalus teha täiendavat tööd ja seeläbi parandada oma kursuse hinnet. Seda saavad kasutada näiteks üliõpilased, kes on kül...' |
|||
| (ei näidata sama kasutaja 13 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. | ||
--> | |||
== | == Masinõppe katsetamine == | ||
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 | 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 | 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 === | ||
Raport on ''' | 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). | * 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. | * 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. | ||
=== | === 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'' | |||
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:
SFHkas veebilehel olevad vormid suunavad uuele domeenilepopUpWidnowkas veebilehel on pop-up aknaidSSLfinal_Statekas HTTPS on kasutuses ja kas sertifikaat on usaldusväärneRequest_URLkas veebileht laadib pilte ja muid komponente teiselt domeeniltURL_of_Anchorkas veebileht sisaldab palju linke teisele domeenileweb_traffickas veebilehe külastatavus on kõrge, keskmine või madal (Alexa ranking)URL_Lengthülipikk, pikk või tavaline URLage_of_domaindomeeni on vana või värskelt registreeritudhaving_IP_AddressURL 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