Data Mining, a Course by Blog

Entries categorized as 'εργασίες'

Εργασία 07: Εκφώνηση

May 13, 2008 · No Comments

Ως 7η (και τελευταία) εργασία, προβλέπεται η υποβολή (παράλληλα με το θέμα) και παρουσίαση στην αίθουσα περίληψης έκτασης 3 διαφανειών από κάθε προηγηθείσα διάλεξη. Με άλλα λόγια, ο καθένας από εσάς πρέπει να αναρτήσει (με καταληκτική ημερομηνία τα μεσάνυχτα της μεθεπόμενης Δευτέρας 26 Μαϊου) και παρουσιάσει στην καταληκτική διάλεξη του μαθήματος, εντός 5 λεπτών, 3 διαφάνειες περίληψης από την διάλεξη που του έχει ανατεθεί, με την εξής (αλφαβητική) κατανομή:

  • Μάνος Ανδρουλάκης: Διάλεξη 01
  • Ηρώ Ζαχαρίδου: Διάλεξη 02
  • Ελευθερία Καναβού: Διάλεξη 03
  • Ειρήνη Λυγκώνη: Διάλεξη 04
  • Λίνα Μάσσου: Διάλεξη 05
  • Αθηνά Πανδή: Διάλεξη 06
  • Θεώνη Πετράτου: Διάλεξη 07
  • Ειρήνη Σπαρτινού: Ok, εσύ θα μας παρουσιάσεις τα βασικά του weka σε 5′

Categories: εργασίες

Εργασία 06: Βαθμολόγηση

May 13, 2008 · No Comments

Η βαθμολόγηση της Εργασίας 06 έχει ως εξής:

  • Λίνα Μάσσου: 5/5
  • Ηρώ Ζαχαρίδου: 5/5
  • Ανδρουλάκης Μάνος: 5/5
  • Πανδή Αθηνά: 5/5
  • Ειρήνη Σπαρτινού: 5/5
  • Καναβού Ελευθερία: 6/5
  • Ειρήνη Λυγκώνη: 5/5
  • Θεώνη Πετράτου: 5/5

Categories: εργασίες

Eργασία06:Θεωνη Πετρατου

May 12, 2008 · 1 Comment

 

Το dataset που εξετάζουμε είναι το soybean.arff. Παρατηρούμε ότι όλα τα attributes είναι της μορφής nominal.

 

 

 

Σκοπός μας είναι να μετασχηματίσουμε τα attributes  της μορφής nominal σε attributes της μορφής numeric. Η διαδικασία που ακολουθούμε είναι η εξής:

 

Filter – Choose – filters – unsupervised – attributes – NominalToBinary – Apply

 

Έτσι λοιπόν παίρνουμε τα ακόλουθα: 

 

 

 

 

 

 

 

 

 

 

 

 

 

Categories: εργασίες

Εργασία 06: (Ειρήνη Λυγκώνη)

May 12, 2008 · 1 Comment

      

 

Στην εργασία αυτή θα μετατρέψουμε nominal attributes ή class σε numeric και αντιστρόφως με την βοήθεια του filter  με την βοήθεια του Weka. Το αρχείο με τα δεδομένα labor.arff περιέχει numeric (1,2,3,4,6,8,9,11,12,17), nominal (5,7,10,12,13,14,15,16,) και ενα nominal class  attributes.

Όταν θέλω να κάνω  classification και συγκεκριμένα να τρέξω κάποιους αλγορίθμους, όπως τον M5Rules  παρατηρώ ότι το class attribute (bad or good) το δέχεται σαν binary και δεν τρέχει ο αλγόριθμος. Δεν υπάρχει αλγόριθμος που να αλλάζει το class attribute απο binary σε nominal. Επειδή όμως  το class attribute ειναι bad or good (2 κλάσεις μόνο) εύκολα μπορούμε να το μετατρέψουμε σε numeric με την εξής εντολή: 

Filter->Choose->filters->unsupervised->atttribute->NominalToBinary

Βάζοντας στα χαρακτηριστικά του αλγορίθμου μόνο για την τελευταία μεταβολή που είναι η τιμή στόχος (AttributesIndices->last)

Παρατηρώ ότι ο αλγόριθμος M5Rules μετά την αλλαγή υλοποιείται με την εξής εντολή:

Classify->Choose->M5Rules

Ακολουθεί το γράφημα με της class attribute που ειναι 0 ή 1.

 

 

 

Αν θέλουμε να αλλάξουμε τώρα και  τα υπόλοιπα  nominal attributes σε numeric ακολουθώ τα εξής βήματα όπως και παραπάνω:

Filter->Choose->filters->unsupervised->atttribute->NominalToBinary

Όμοια, αν θέλω να μετατρέψω τα numeric attributes σε nominal ακολουθούμε την εξής εντολή:

Filter->Choose->filters->unsupervised->attribute->NumericToNominal

Παντώντας το visualize all προκύπτει το παρακάτω γράφημα:

 

 

Categories: εργασίες

ΕΡΓΑΣΙΑ06: ΚΑΝΑΒΟΥ ΕΛΕΥΘΕΡΙΑ

May 12, 2008 · 1 Comment

Σε αυτήν την εργασία πρέπει να αναρτήσουμε τη διαδικασία με την οποία μετατρέπουμε nominal attributes ή class σε numeric και αντιστρόφως.

Σε εμένα έχει ανατεθεί το αρχείο με τα δεδομένα iris.arff

Σε αυτά τα data έχουμε numeric attributes και nominal class.

Έστω ότι θέλουμε να κάνουμε classification.

Πηγαίνοντας classify -> rules βλέπουμε ότι δεν τρέχουν οι αλγόριθμοι M5Rules και Prism.

O M5Rules επεξεργάζεται μόνο numeric class,

οπότε για να τρέξει στα δεδομένα μας πρέπει να μετατρέψουμε τη nominal class σε numeric. Ο μόνος τρόπος να γίνει αυτό είναι να την κάνουμε binary μέσω του φίλτρου NominalToBinary (Preprocess->choose->filters->unsupervised->attribute->NominalToBinary) και αλλάζοντας τη μεταβλήτη στόχο (Class) από class σε sepallength - για παράδειγμα (μετά επαναφέρουμε το αρχικό class).

 

Τότε όμως χάνεται η πληροφορία που είχαμε στη μεταβλητή στόχο καθώς το φίλτρο αυτό τη σπάει σε τρεις διαφορετικές numeric (binary) atributes (όσο δηλαδή και το distinct της αρχικής μας nominal class).

 

O M5Rules, πλέον, τρέχει αλλά έχουμε χάσει τη μεταβλητή στόχο μας, και την πληροφορία που περιέιχε πριν τη μετατροπή.

 Καταλήγουμε λοιπόν στο συμπέρασμα πως δεν έχει νόημα η μετατροπή της nominal class σε numeric, απλά δεν θα χρησιμοποιήσουμε τον αλγόριθμο αυτό.

 

O αλγόριθμος Prism δεν δέχεται numeric attributes,

 

οπότε πρέπει να μετατρέψουμε τις numeric attributes σε nominal. Αυτό γίνεται μέσω του φίλτρου NumericToNominal (Preprocess->choose->filters->unsupervised->attribute->NumericToNominal).

οπότε μπορούμε, πλέον, να εφαρμόσουμε τον αλγόριθμο Prism.

Categories: άλλο · εργασίες

Ergasia06:Irene Spartinou

May 12, 2008 · 1 Comment

Εργασια06

 

Το αρχείο weather-nominal.arff περιέχει όλα τα χαρακτηριστικά σε [nominal,nominal] μορφή.

 

1. [nominal,nominal]->[numeric,nominal]

Για τη μετατροπή αυτή επιλέγεται από το tab choose (filter):

Filters->unsupervised->Nominal to Binary

Με αυτό τον τρόπο προκύπτουν πλέον 9 μεταβλητές από 5 που υπήρχαν αρχικά και αυτό διότι τα nominal χαρακτηριστικά είναι σκόπιμο να διαιρούνται σε ξεχωριστά binary attributes όταν δεν μπορούν να διαταχθούν το ένα ως προς το άλλο (συνήθης περίπτωση)

<!–[if gte vml 1]> <![endif]–><!–[if !vml]–><!–[endif]–>

2. [nominal,nominal]->[numeric,numeric]

Ακολουθούμε ακριβώς τη διαδικασία του παραπάνω βήματος και επιλέγουμε κπ χαρακτηριστικό διαφορετικό από το play (class attribute) και επιλέγουμε το apply μια ακόμη φορά στο ίδιο φίλτρο (το γνωστό τρικ ).

<!–[if gte vml 1]> <![endif]–><!–[if !vml]–><!–[endif]–>

3. [nominal,nominal]->[numeric,nominal]

Ακολουθούμε μόνο το βήμα 2. δηλαδή Filters->unsupervised->Nominal to Binary, ( με attributeIndices : last), και με το γνωστό τρικ έχουμε την παρακάτω εικόνα

 

 

Categories: εργασίες
Tagged: ,

ΕΡΓΑΣΙΑ 06 Πανδή Αθηνά

May 12, 2008 · 1 Comment

Στην παρούσα εργάσια  ζητείται ο μετασχηματισμός των input και class attribute σε numeric και nominal ανάλογα με τον αλγόριθμο που τρέχουμε κάθε φορά.

Στο αρχείο segment-test.arff τα input attributes είναι numeric και το class attribute είναι nominal.

Αν τρέξουμε στο weka τον αλγόριθμο M5Rules ακολουθώντας τα παρακάτω βήματα

Classify->Choose->rules->M5Rule  εμφανίζεται το ακόλουθο μήνυμα

 

Για να μετατρέψουμε το class attribute σε nominal πάμε

Preprocess->Filter->Choose->unsupervised->attribute->nominal to binary

Παρατηρούμε ότι δεν έχει αλλάξει το class attribute παραμένει nominal. Πρέπει να ορίσουμε άλλη class attribute από το drop down list Class:Class (Nom). Έστω ότι η νέα μεταβλητή στόχος είναι το attribute hue-mean. Εφαρμόζοντας το παραπάνω φίλτρο η νέα μεταβλητή στόχος έγινε numeric έχοντας όμως “σπάσει” σε 7 διαφορετικές binary μεταβλητές,όσα και τα distinct της προηγούμενης class attribute όπως φαίνεται στο παρακάτω σχήμα.

 

 

Όπως είδαμε παραπάνω δεν έχει νόημα να μετατρέπουμε την class attribute, γι αυτό τον αλγόριθμο τον επιλέγουμε εξαρχής με βάσει τον τύπο της μεταβλητής στόχου.

Αυτό που είναι εφικτό στο συγκεκριμένο dataset είναι η μετροπή των input attributes από numeric σε nominal. Αν προσπαθήσουμε να τρέξουμε τον αλγόριθμο Prism

Classify->Classifier->Choose->rules->Prism

θα δούμε ότι τα input attributes πρέπει να είναι nominal για να τρέξει. Οπότε ακολουθούμε τα παρακάτω βήματα.

Preprocess->Filter->Choose->NumericToNominal

Αν πατήσουμε το visualize all έχουμε το παρακάτω γράφημα όπου φαίνεται ότι όλες οι μεταβλητές έγιναν nominal.

Categories: εργασίες

Eργασία06: Ανδρουλάκης Μάνος

May 12, 2008 · 1 Comment

Σκοπός της εργασίας είναι η μετατροπή των attributes από numeric σε  nominal ή αντιστρόφως, αναλόγως ποιο dataset έχει ο καθένας, ώστε να μπορούν να υλοποιηθούν αλγόριθμοι οι οποίοι απαιτούν συγκεκριμένη μορφή των δεδομένων.

Το dataset με το οποίο θα ασχοληθούμε είναι το contact-lenses. Με μια απλή οπτικοποίηση των δεδομένων από το Edit παρατηρούμε ότι όλα τα attributes μαζί με το class-attribute είναι nominal.

Image1

 

  

Oι αλγόριθμοι οι οποίοι παρουσιάζουν πρόβλημα, είναι ο Μ5Rules στο Classify, όπου αν επιχειρήσουμε να τον τρέξουμε μας βγάζει σφάλμα ότι δεν μπορεί να χρησιμοποιήσει nominal class και ο αλγόριθμος Xmeans στο Cluster ο οποίος δεν μπορεί να χρησιμοποιήσει nominal attributes.

 

Οπότε το μόνο που μπορούμε να κάνουμε αρχικά, είναι να μετατρέψουμε τα nominal attributes σε binary (ώστε να γίνουν numeric).

Αυτό υλοποιείται ως εξής:

Επιλέγουμε FilteràChooseàfiltersàunsupervisedàatttributeàNominalToBinary.

 

Image 2

 

Yποτίθεται τώρα ότι θα έπρεπε να τρέξει ο αλγόριθμος Xmeans. Όμως, όταν κάνουμε φιλτράρισμα στα δεδομένα, έστω κι αν έχουμε επιλέξει first-last στο AttributesIndices (στα χαρακτηριστικά του αλγορίθμου) πριν κάνουμε τον μετασχηματισμό από nominal σε binary, αλλάζουν όλα πλην του class (βλ. image2). Τελικά, πάλι δεν τρέχει ο Xmeans. Αυτό που μπορούμε να κάνουμε είναι, πριν το φιλτράρισμα, να ορίσουμε άλλο attribute ως class, και έπειτα να επιλέξουμε να γίνει η αλλαγή μόνο στο τελευταίο attribute (το οποίο είναι και το class atttribute). Αυτό όμως πάλι θα μας δημιουργήσει πρόβλημα, καθότι η αρχική nominal μορφή του class είχε 3 distinct values, οπότε και θα δημιουργηθούν 3 καινούργια binary attributes αντί του αρχικού class. Επίσης ως class attribute θα είναι πλέον το τελευταίο. Προφανώς δεν ωφελεί σε κάτι να γίνει η συγκεκριμένη αλλαγή, μιας και έτσι χαλάει εντελώς η μεταβλητή στόχος. Άρα πολύ απλά δεν πρέπει να γίνει οποιαδήποτε αλλαγή στο class attribute και δεν μπορούμε τελικά να χρησιμοποιήσουμε τον συγκεκριμένο αλγόριθμο.

Όσον αφορά τον M5Rules, πρέπει μόνο να αλλάξουμε το class attribute οπότε για τους λόγους που αναφέραμε πριν, κάτι τέτοιο δεν πρέπει να γίνει. Άρα δεν μπορεί να χρησιμοποιηθεί ούτε αυτός ο αλγόριθμος.

 

Categories: εργασίες

Εργασία06:Ηρώ Ζαχαρίδου

May 12, 2008 · 2 Comments

Το dataset που εξετάζουμε είναι το cpu.with.vendor. Έχει 7 input attribute εκ των οποίων ένα (vendor) είναι nominal και τα υπόλοιπα είναι numeric. Το class attribute είναι numeric. ’Αρα είμαστε στην περίπτωση,(both,numeric)

1.Numeric, numeric

Αλλάζουμε μόνο το πρώτο attribute

Για το μετασχηματισμό αυτό χρησιμοποιούμε από τα unsupervised φίλτρα του weka για τα attributes το NominalToBinary.

Εδώ βλέπουμε το ιστόγραμμα για το attribute vendor

Μετά την εφαρμογή του φίλτρου:

Να σημειωθεί πως για κάθε label του nominal attribute δημιουργείται ένα νέο numeric attribute.

‘Ετσι από 8 attribute που είχαμε πριν τώρα έχουμε 37.

2.Numeric, nominal

1 και Αλλάζουμε τον τύπο της κλάσης

Χρησιμοποιούμε από τα unsupervised φίλτρα για τα attributes το Discretize , για να μπορέσει όμως να γίνει η μετατροπή της κλάσης ,ορίζουμε κάποιο άλλο attribute ως class attribute.

Επιλέγοντας findNumBins=True(το παράθυρο εμφανίζεται κάνοντας διπλό κλικ στην «μπάρα» ανάμεσα από «filter” και “apply”) ,το weka ορίζει από μόνο του σε πόσα διαστήματα θα χωρίσει το (-∞,∞).

3.Nominal,nominal

Χρησιμοποιούμε από τα unsupervised φίλτρα για τα attributes το Discretize.

(findNumBins=True)

(bins=10)

4.Nominal, numeric

Discretize για όλα attributes εκτός από το class attribute.

Categories: εργασίες

ΕΡΓΑΣΙΑ6_Λίνα Μάσσου

May 12, 2008 · 1 Comment

Παρατηρούμε στο  dataset segment challenge ότι όλα τα attributes είναι της μορφής numeric, με εξαίρεση class attribute το οποίο είναι της μορφής nominal. Θα μετασχηματίσουμε το attributes της μορφής numeric σε attributes της μορφής nominal. Για το μετασχηματισμό αυτό ακολουθούμε τα εξής βήματα:

filter -> choose -> unsupervised -> attribute -> numeric to nominal

 Με αυτή τη διαδικασία  έχουν γίνει όλα τα attributes nominal, όπως φαίνεται και  στην παρακάτω εικόνα και οι αλγόριθμοι  που χρειάζονται  attributes αυτής της μορφής μπορούν πλέον να τρέξουν.

 

Παρατηρούμε ότι ο αλγόριθμος M5Rules δεν τρέχει. Γι’ αυτό επιλέγουμε διαφορετικό class attribute  και στη συνέχεια εφαρμόζουμε το φίλτρο nominal to binary, ορίζοντας στις επιλογές του attributeIndices: last attribute.

Categories: εργασίες