weka dataset classifier
In deze tutorial worden WEKA Dataset, Classifier en J48-algoritme voor beslissingsboom uitgelegd. Biedt ook informatie over voorbeeld-ARFF-datasets voor Weka:
In de Vorige tutorial leerden we over de Weka Machine Learning-tool, de functies ervan en hoe je Weka Machine Learning-software kunt downloaden, installeren en gebruiken.
WEKA is een bibliotheek met algoritmen voor machine learning om dataminingproblemen op basis van echte gegevens op te lossen. WEKA biedt ook een omgeving om veel algoritmen voor machine learning te ontwikkelen. Het heeft een set tools voor het uitvoeren van verschillende dataminingtaken, zoals dataclassificatie, dataclustering, regressie, attribuutselectie, frequente itemset-mining, enzovoort.
Al deze taken kunnen worden uitgevoerd op het sample.ARFF-bestand dat beschikbaar is in de WEKA-repository of gebruikers kunnen hun gegevensbestanden voorbereiden. De voorbeeld .arff-bestanden zijn datasets met ingebouwde historische gegevens die door onderzoekers zijn verzameld.
Lees de complete serie Machine Learning-trainingen door
In deze tutorial zullen we enkele voorbeelddatasets in WEKA zien en zullen we ook datamining van beslissingsboomalgoritmen uitvoeren met behulp van de weather.arff-dataset.
Wat je leert:
WEKA-datasets verkennen
De WEKA-tool voor machine learning biedt een directory met enkele voorbeeldgegevenssets. Deze datasets kunnen rechtstreeks in WEKA worden geladen, zodat gebruikers onmiddellijk modellen kunnen ontwikkelen.
De WEKA-datasets kunnen worden bekeken via de link 'C: Program Files Weka-3-8 data'. De datasets zijn in .arff-indeling.
Voorbeeld van WEKA-datasets
Enkele voorbeelddatasets die aanwezig zijn in WEKA zijn opgenomen in de onderstaande tabel:
S.No. | Voorbeeldgegevenssets |
---|---|
7. | diabetes.arff |
1. | luchtvaartmaatschappij.arff |
2. | borstkanker.arff |
3. | contact-lens.arff |
Vier. | cpu.arff |
5. | cpu.with-vendor.arff |
6. | credit-g.arff |
8. | glass.arff |
9. | hypothyroid.arff |
10. | ionospehre.arff |
elf. | iris.2D.arff |
12. | iris.arff |
13. | labour.arff |
14. | ReutersCorn-train.arff |
vijftien. | ReutersCorn-test.arff |
16. | ReutersGrain-train.arff |
17. | ReutersGrain-test.arff |
18. | segment-challenge.arff |
19. | segment-test.arff |
twintig. | soja.arff |
eenentwintig. | supermarkt.arff |
22. | onevenwichtig. arff |
2. 3. | stem.arff |
24. | weather.numeric.arff |
25. | weather.nominal.arff |
Laten we een paar van deze bekijken:
contact-lens.arff
contact-lens.arff dataset is een database voor het aanpassen van contactlenzen. Het werd in 1990 geschonken door de donateur, Benoit Julien.
Databank: Deze database is compleet. De voorbeelden die in deze database worden gebruikt, zijn compleet en ruisvrij. De database heeft 24 instances en 4 attributen.
Attributen: Alle vier attributen zijn nominaal. Er ontbreken geen kenmerkwaarden. De vier attributen zijn als volgt:
# 1) Leeftijd van de patiënt: Het kenmerk leeftijd kan waarden aannemen:
- jong
- pre-presbyopisch
- presbyopisch
#twee) Brilrecept: Dit kenmerk kan waarden aannemen:
- kortzichtig
- hypermetroop
# 3) Astigmatisch: dit kenmerk kan waarden aannemen
- Nee
- Ja
# 4) Scheurproductiesnelheid: de waarden kunnen zijn
- verminderd
- normaal
Klasse: hier worden drie klassenlabels gedefinieerd. Dit zijn:
- de patiënt moet harde contactlenzen dragen.
- de patiënt moet zachte contactlenzen dragen.
- de patiënt mag geen contactlenzen dragen.
Klasseverdeling: de instanties die zijn geclassificeerd in klasselabels, worden hieronder vermeld:
Klasse Label | Aantal instanties | |
---|---|---|
1. | Harde contactlenzen | 4 |
2. | Zachte contactlenzen | 5 |
3. | Geen contactlenzen | vijftien |
iris.arff
De iris.arff-dataset is in 1988 gemaakt door Michael Marshall. Het is de Iris Plants-database.
beste spionage-apps voor mobiele telefoons voor Android
Databank: Deze database wordt gebruikt voor patroonherkenning. De dataset bevat 3 klassen van 50 instanties. Elke klasse vertegenwoordigt een soort irisplant. De ene klasse is lineair te scheiden van de andere 2, maar de laatste zijn niet lineair van elkaar te scheiden. Het voorspelt tot welke soort van de 3 irisbloem de waarneming behoort. Dit wordt een classificatiedataset met meerdere klassen genoemd.
Attributen: Het heeft 4 numerieke, voorspellende attributen en de klasse. Er ontbreken geen attributen.
De attributen zijn:
- kelkblad lengte in cm
- kelkblad breedte in cm
- bloemblad lengte in cm
- bloemblad breedte in cm
- klasse:
- Iris Setosa
- Iris Versicolor
- Iris Virginica
Samenvattende statistieken:
Min | Max. Hoogte | Gemeen | SD | Klassecorrelatie | |
---|---|---|---|---|---|
kelkblad lengte | 4.3 | 7.9 | 5,84 | 0,83 | 0,7826 |
kelkblad breedte | 2.0 | 4.4 | 3.05 | 0,43 | -0,4194 |
bloemblaadje lengte | 1.0 | 6.9 | 3,76 | 1,76 | 0.9490 (hoog!) |
bloemblad breedte | 0.1 | 2.5 | 1.20 | 0,76 | 0,9565 (hoog!) |
Klasse distributie: 33,3% voor elk van de 3 klassen
Enkele andere datasets:
diabetes.arff
De database van deze dataset is Pima Indians Diabetes. Deze dataset voorspelt of de patiënt in de komende 5 jaar vatbaar is voor diabetes. De patiënten in deze dataset zijn allemaal vrouwen van minimaal 21 jaar oud uit Pima Indian Heritage. Het heeft 768 instanties en 8 numerieke attributen plus een klasse. Dit is een gegevensset met binaire classificatie waarvan de voorspelde uitvoervariabele nominaal is en bestaat uit twee klassen.
ionosphere.arff
Dit is een populaire dataset voor binaire classificatie. Het exemplaar in deze dataset beschrijft de eigenschappen van radarretouren uit de atmosfeer. Het wordt gebruikt om te voorspellen waar de ionosfeer een structuur heeft of niet. Het heeft 34 numerieke attributen en een klasse.
Het class-attribuut is 'goed' of 'slecht', wat wordt voorspeld op basis van 34 attributenobservatie. De ontvangen signalen worden verwerkt door de autocorrelatiefunctie waarbij tijdpuls en pulsnummer als argumenten worden genomen.
Regressiegegevenssets
De regressiedatasets kunnen worden gedownload vanaf de WEKA-webpagina ' Verzamelingen van datasets Het heeft 37 regressieproblemen die uit verschillende bronnen zijn verkregen. Het gedownloade bestand zal een numerieke / directory maken met regressiegegevenssets in .arff-indeling.
De populaire datasets die in de directory aanwezig zijn, zijn: Longley economische dataset (longley.arff), Boston huizenprijs dataset (housing.arff), en sleep in zoogdieren dataset (sleep.arff).
Laten we nu kijken hoe we met WEKA explorer reële en nominale attributen in de dataset kunnen identificeren.
Wat zijn echt gewaardeerde en nominale kenmerken
Echt gewaardeerde attributen zijn numerieke attributen die alleen echte waarden bevatten. Dit zijn meetbare grootheden. Deze attributen kunnen intervalgeschaald zijn zoals temperatuur of ratio geschaald zoals gemiddelde, mediaan.
Nominale attributen vertegenwoordigen namen of een weergave van dingen. Er is geen volgorde in dergelijke attributen en ze vertegenwoordigen een categorie. Bijvoorbeeld, kleur.
Volg de onderstaande stappen om WEKA te gebruiken voor het identificeren van echte waarden en nominale attributen in de dataset.
# 1) Open WEKA en selecteer 'Explorer' onder 'Toepassingen'.
#twee) Selecteer het tabblad 'Pre-Process'. Klik op 'Bestand openen'. Met een WEKA-gebruiker hebt u toegang tot WEKA-voorbeeldbestanden.
# 3) Selecteer het invoerbestand uit de WEKA3.8-map die op het lokale systeem is opgeslagen. Selecteer het voorgedefinieerde .arff-bestand 'credit-g.arff' -bestand en klik op 'Openen'.
# 4) Een attributenlijst wordt geopend in het linkerpaneel. De geselecteerde attribuutstatistieken worden samen met het histogram in het rechterpaneel weergegeven.
Analyse van de dataset:
In het linkerpaneel toont de huidige relatie:
- Relatie naam: german_credit is het voorbeeldbestand.
- Gevallen: 1000 aantal gegevensrijen in de gegevensset.
- Attributen: 21 attributen in de dataset.
Het paneel onder de huidige relatie toont de naam van attributen.
In het rechterpaneel, de geselecteerde attribuutstatistieken worden weergegeven. Selecteer de attribuut 'check_status'.
Het laat zien:
- Naam van het kenmerk
- Missend: Eventuele ontbrekende waarden van het kenmerk in de gegevensset. 0% in dit geval.
- Onderscheiden: Het kenmerk heeft vier verschillende waarden.
- Type: Het attribuut is van het nominale type, dat wil zeggen dat het geen numerieke waarde heeft.
- Tellen: Van de 1000 instanties wordt de telling van elk afzonderlijk klassenlabel in de kolom count geschreven.
- Histogram: Het zal het label van de uitvoerklasse voor het attribuut weergeven. Het klassenlabel in deze gegevensset is goed of slecht. Er zijn 700 gevallen van goed (blauw gemarkeerd) en 300 gevallen van slecht (rood gemarkeerd).
- Voor het label<0, the instances for good or bad are almost the same in number.
- Voor label, 0<= X<200, the instances with decision good are more than instances with bad.
- Evenzo komen voor label> = 200 het maximum aantal instanties voor voor goed en heeft geen controlelabel meer instanties met goed besluit.
Voor het volgende kenmerk 'duur'.
Het rechterpaneel toont:
- Naam: Dit is de naam van het attribuut.
- Type: Het type kenmerk is numeriek.
- Missende waarde: Het kenmerk heeft geen ontbrekende waarde.
- Onderscheiden: Het heeft 33 verschillende waarden in 1000 gevallen. Het betekent dat het in 1000 gevallen 33 verschillende waarden heeft.
- Uniek: Het heeft 5 unieke waarden die niet bij elkaar passen.
- Minimale waarde: De minimumwaarde van het kenmerk is 4.
- Maximale waarde: De maximale waarde van het kenmerk is 72.
- Gemeen: Gemiddelde is het optellen van alle waarden gedeeld door instanties.
- Standaardafwijking: Standaardafwijking van kenmerkduur.
- Histogram: Het histogram geeft de duur van 4 eenheden weer, het maximale aantal gevallen komt voor voor een goede klasse. Naarmate de duur toeneemt tot 38 eenheden, neemt het aantal instanties af voor labels van goede kwaliteit. De duur bereikt 72 eenheden die slechts één instantie hebben die de beslissing als slecht classificeert.
De klasse is het classificatiekenmerk van het nominale type. Het heeft twee verschillende waarden: goed en slecht. Het label van de goede klasse heeft 700 exemplaren en het label van de slechte klasse 300.
Om alle attributen van de dataset te visualiseren, klik op “Visualize All”.
# 5) Om alleen numerieke attributen te zien, klikt u op de Filter-knop. Klik vanaf daar op Kies -> WEKA> FILTERS -> Type zonder toezicht -> Type verwijderen.
WEKA-filters hebben veel functionaliteiten om de attribuutwaarden van de dataset te transformeren om deze geschikt te maken voor de algoritmen. Bijvoorbeeld, de numerieke transformatie van attributen.
Het filteren van de nominale en reële attributen uit de dataset is een ander voorbeeld van het gebruik van WEKA-filters.
# 6) Klik op het RemoveType op het filtertabblad. Er wordt een objecteditorvenster geopend. Selecteer attribuuttype 'Numerieke attributen verwijderen' en klik op OK.
# 7) Pas het filter toe. Alleen numerieke attributen worden getoond.
Het class-attribuut is van het nominale type. Het classificeert de uitvoer en kan daarom niet worden verwijderd. Het wordt dus gezien met het numerieke attribuut.
Uitgang:
De attributen met reële waarde en nominale waarden in de dataset worden geïdentificeerd. Visualisatie met het klassenlabel wordt gezien in de vorm van histogrammen.
Weka-classificatiealgoritmen voor beslissingsstructuren
Nu zullen we zien hoe de classificatie van de beslissingsboom op de weather.nominal.arff dataset geïmplementeerd kan worden met behulp van de J48 classifier.
weather.nominal.arff
Het is een voorbeelddataset aanwezig in de directe versie van WEKA. Deze dataset voorspelt of het weer geschikt is om cricket te spelen. De dataset heeft 5 attributen en 14 instances. Het klassenlabel 'play' classificeert de uitvoer als 'ja' of 'nee'.
Wat is beslissingsboom
Decision Tree is de classificatietechniek die bestaat uit drie componenten root-node, branch (edge of link) en leaf-node. Root vertegenwoordigt de testconditie voor verschillende attributen, de branch vertegenwoordigt alle mogelijke uitkomsten die er in de test kunnen zijn, en leaf-nodes bevatten het label van de klasse waartoe het behoort. Het root-knooppunt bevindt zich aan het begin van de boom, ook wel de bovenkant van de boom genoemd.
J48 Classifier
Het is een algoritme om een beslissingsboom te genereren die wordt gegenereerd door C4.5 (een extensie van ID3). Het is ook bekend als een statistische classifier. Voor de classificatie van de beslisboom hebben we een database nodig.
Stappen zijn onder meer:
# 1) Open WEKA-verkenner.
#twee) Selecteer het weather.nominal.arff-bestand uit het 'kies bestand' onder de optie voor het tabblad preproces.
# 3) Ga naar het tabblad 'Classificeren' om de niet-geclassificeerde gegevens te classificeren. Klik op de knop 'Kiezen'. Selecteer hieruit 'bomen -> J48'. Laten we ook snel kijken naar andere opties in de knop Kiezen:
- Bayes: Het is een schatting van de dichtheid voor numerieke attributen.
- Meta: Het is een lineaire regressie met meerdere reacties.
- Functies: Het is logistieke regressie.
- Lui: Het stelt de blend-entropie automatisch in.
- Regel: Het is een regelleerling.
- Bomen: Trees classificeert de gegevens.
# 4) Klik op de Start-knop. De classifier-output is te zien op het rechterpaneel. Het toont de run-informatie in het paneel als:
- Regeling: Het gebruikte classificatie-algoritme.
- Gevallen: Aantal gegevensrijen in de gegevensset.
- Attributen: De dataset heeft 5 attributen.
- Het aantal bladeren en de grootte van de boom beschrijft de beslissingsboom.
- Tijd die nodig is om het model te bouwen: Tijd voor de output.
- Volledige classificatie van de J48 gesnoeid met de attributen en het aantal exemplaren.
# 5) Om de boom te visualiseren, klikt u met de rechtermuisknop op het resultaat en selecteert u de boom visualiseren.
Uitvoer
De output heeft de vorm van een beslissingsboom. Het belangrijkste kenmerk is 'vooruitzichten'.
Als het uitzicht zonnig is, dan analyseert de boom verder de vochtigheid. Als de luchtvochtigheid hoog is, dan is class label play = 'yes'.
Als de vooruitzichten bewolkt zijn, het klassenlabel, spelen is 'ja'. Het aantal instanties dat aan de classificatie voldoet, is 4.
Als het vooruitzicht regenachtig is, verdere classificatie vindt plaats om het attribuut 'winderig' te analyseren. Als winderig = waar, de play = 'nee'. Het aantal gevallen dat voldoet aan de classificatie voor Outlook = winderig en winderig = waar is 2.
Gevolgtrekking
WEKA biedt een breed scala aan voorbeelddatasets om algoritmen voor machine learning toe te passen. De gebruikers kunnen machine learning-taken uitvoeren, zoals classificatie, regressie, attribuutselectie, associatie op deze voorbeelddatasets, en kunnen de tool ook leren door ze te gebruiken.
WEKA explorer wordt gebruikt voor het uitvoeren van verschillende functies, te beginnen met de voorbewerking. Voorverwerking neemt invoer als een .arff-bestand, verwerkt de invoer en geeft een uitvoer die door andere computerprogramma's kan worden gebruikt. In WEKA geeft de output van preprocessing de attributen die aanwezig zijn in de dataset die verder gebruikt kunnen worden voor statistische analyse en vergelijking met klasselabels.
WEKA biedt ook veel classificatie-algoritmen voor beslissingsboom. J48 is een van de populaire classificatie-algoritmen die een beslissingsboom uitvoert. Met behulp van het tabblad Classificeren kan de gebruiker de beslissingsboom visualiseren. Als de beslissingsboom te vol is, kan het snoeien van bomen worden toegepast vanaf het tabblad Preprocess door de attributen te verwijderen die niet nodig zijn en het classificatieproces opnieuw te starten.
Bezoek hier voor de exclusieve Machine Learning-serie
Aanbevolen literatuur
- Weka-zelfstudie - Weka-tool downloaden, installeren en gebruiken
- Hoe complexe testscenario's voor bedrijfslogica te schrijven met behulp van de beslissingstabeltechniek
- WEKA Explorer: visualisatie, clustering, associatieregels mijnbouw
- Voorbeelden van beslissingsboomalgoritmen in datamining
- Besluitvormingsconstructies in C ++
- B Tree en B + Tree gegevensstructuur in C ++
- Binaire boomgegevensstructuur in C ++
- AVL Tree and Heap-gegevensstructuur in C ++