Σκοπός της εργασίας είναι η μετατροπή των 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 οπότε για τους λόγους που αναφέραμε πριν, κάτι τέτοιο δεν πρέπει να γίνει. Άρα δεν μπορεί να χρησιμοποιηθεί ούτε αυτός ο αλγόριθμος.

