Wil jy graag begin met machine learning?
Ek het 'n eenvoudige en maklike tutoriaal vir volledige beginners geskep. Saam gaan ons oor die basiese stappe van die opleiding van 'n masjienleermodel.
Terwyl ek die stappe van die opleiding van 'n model een vir een verduidelik, sal ek ook 'n baie basiese voorbeeld van 'n masjienleerprobleem gee. Dus, as jy wil volg, kan jy hierdie voorbeelddatastel hiervan aflaai skakel.
Dit is net 'n voorbeelddatastel om jou te help om met masjienleer te begin.
Ons het 18 waardes van mense van verskillende ouderdomme en geslagte wat hul gunsteling musiek gedefinieer het. Deur die kenmerke van "ouderdom" en "geslag" te gebruik, sal ons probeer raai watter musiekgenre hul gunsteling is.
Let wel: 1 en 0 word aan geslagte as vroulik en manlik in hierdie datastel toegewys.
As jy egter nie die voorbeeld wil volg nie, is dit ook heeltemal in orde. Ek sal al hierdie stappe in detail verduidelik. So, kom ons duik in!
Eerste dinge om te weet
Voordat ons in die stappe van die opleiding van 'n model gaan, laat ons 'n paar punte verduidelik. Masjienleer is 'n kunsmatige intelligensie dissipline wat fokus op die ontwikkeling van algoritmes wat uit data kan leer.
Om dit te doen, word masjienleermodelle opgelei op 'n datastel wat die model leer hoe om korrekte voorspellings of klassifikasie op vars, voorheen onbekende data.
So, wat is hierdie modelle? A masjienleermodel is soortgelyk aan 'n resep wat 'n rekenaar gebruik om datavoorspellings of keuses te genereer.
'n Model, soos 'n resep, volg 'n stel instruksies om data te evalueer en voorspellings of oordeel te genereer gebaseer op patrone wat in die data gevind word. Hoe meer data waarop die model opgelei is, hoe akkurater word sy voorspellings.
Watter soort modelle kan ons oplei?
Kom ons kyk wat is die basiese masjienleermodelle.
- Lineêre regressie: 'n model wat 'n kontinue teikenveranderlike van een of meer insetveranderlikes voorspel.
- Neurale netwerke: 'n netwerk van gekoppelde nodusse wat kan leer om ingewikkelde patrone in data op te spoor.
- Besluitbome: 'n besluitnemingsbenadering gebou op 'n ketting van vertakkende if-else stellings.
- Groepering: 'n stel modelle wat vergelykbare datapunte groepeer op grond van ooreenkoms.
- Logistiese regressie: 'n model vir binêre klassifikasieprobleme waarin die teikenveranderlike twee potensiële waardes het.
- Besluitbome: 'n besluitnemingsbenadering gebou op 'n ketting van vertakkende if-else stellings.
- Random Forest: 'n ensemblemodel wat uit talle besluitnemingsbome bestaan. Hulle word gereeld gebruik vir klassifikasie- en regressietoepassings.
- K-naaste bure: 'n model wat die teikenveranderlike voorspel deur die k-naaste datapunte in die opleidingstel te gebruik.
Afhangende van ons probleem en datastel, besluit ons watter masjienleermodel die beste by ons situasie pas. Tog kom ons later hierop terug. Kom ons begin nou ons model oplei. Ek hoop jy het reeds die dataset as jy ons voorbeeld wil volg.
Ek beveel ook aan om Jupyter Notaboek op u plaaslike masjien geïnstalleer en dit vir u masjienleerprojekte gebruik.
1: Definieer die probleem
Die eerste fase in opleiding van 'n masjienleer model definieer die probleem wat opgelos moet word. Dit behels die keuse van die veranderlikes wat jy wil voorspel (bekend as die teikenveranderlike) en die veranderlikes wat gebruik sal word om daardie voorspellings te genereer (bekend as kenmerke of voorspellers).
Jy moet ook besluit watter soort masjienleerprobleem jy probeer aanspreek (klassifikasie, regressie, groepering, ensovoorts) en watter tipe data jy sal moet insamel of kry om jou model op te lei.
Die soort model wat jy gebruik, sal bepaal word deur die tipe masjienleerprobleem wat jy wil oplos. Klassifikasie, regressie en groepering is die drie primêre kategorieë van masjienleer-uitdagings. Wanneer jy 'n kategoriese veranderlike wil voorspel, soos of 'n e-pos 'n strooipos is of nie, gebruik jy klassifikasie.
Wanneer jy 'n deurlopende veranderlike wil voorspel, soos die prys van 'n huis, gebruik jy regressie. Groepering word gebruik om vergelykbare data-items saam te stel op grond van hul gemeenskaplikhede.
As ons na ons voorbeeld kyk; ons uitdaging is om 'n persoon se voorkeur musiekstyl uit hul geslag en ouderdom te bepaal. Ons sal 'n datastel van 18 mense gebruik vir hierdie voorbeeld en inligting oor hul ouderdom, geslag en gunsteling musiekstyl.
2. Berei die data voor
Nadat jy die probleem gespesifiseer het, sal jy die data moet voorberei vir opleiding van die model. Dit behels die skoonmaak en verwerking van die data. Dus, dat ons kan verseker dat dit in 'n formaat is wat die masjienleer-algoritme kan gebruik.
Dit kan aktiwiteite insluit soos die verwydering van ontbrekende waardes, die transformasie van kategoriese data na numeriese data, en die skaal of normalisering van die data om te verseker dat alle kenmerke op dieselfde skaal is.
Byvoorbeeld, dit is hoe jy ontbrekende waardes uitvee:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Klein nota: In die reël o "import pandas as pd",
ons voer die Pandas-biblioteek in en ken dit die alias "pd" toe om dit makliker te maak om later in die kode na sy funksies en voorwerpe te verwys.
Pandas is 'n bekende module vir Python vir datamanipulasie en -analise, veral wanneer daar met gestruktureerde of tabelvormige data gewerk word.
In ons voorbeeld van die bepaling van musiekgenres. Ons sal eers die datastel invoer. Ek het dit music.csv genoem, maar jy kan dit noem soos jy wil.
Om die data voor te berei vir die opleiding van 'n masjienleermodel, verdeel ons dit in eienskappe (ouderdom en geslag) en doelwitte (musiekgenre).
Ons sal die data ook in 80:20-opleidings- en toetsstelle verdeel om die werkverrigting van ons model te assesseer en ooraanpassing te vermy.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Kies 'n masjienleermodel.
Nadat jy die data voorberei het, moet jy 'n masjienleermodel kies wat geskik is vir jou taak.
Daar is verskeie algoritmes om van te kies, soos besluitbome, logistiese regressie, ondersteuningsvektormasjiene, neurale netwerke en ander. Die algoritme wat u kies, sal bepaal word deur die soort probleem wat u probeer beantwoord, die tipe data wat u het en u prestasiebehoeftes.
Ons sal 'n besluitboomklassifiseerder vir hierdie voorbeeld gebruik omdat ons met 'n klassifikasieprobleem werk (wat kategoriese data voorspel).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Hier is 'n visualisering van hoe die Decision Tree Classifier werk:
4. Lei die model op
Jy kan begin om die model op te lei wanneer jy 'n aanvaarbare masjienleeralgoritme gekies het. Dit behels die gebruik van die voorheen gegenereerde data om die algoritme op te voed oor hoe om voorspellings te maak op vars, voorheen ongesiene data.
Die algoritme sal sy interne parameters tydens opleiding verander om die verskil tussen sy voorspelde waardes en die werklike waardes in die opleidingsdata te minimaliseer. Die hoeveelheid data wat vir opleiding gebruik word, sowel as die algoritme se spesifieke parameters, kan almal 'n effek hê op die akkuraatheid van die resulterende model.
In ons spesifieke voorbeeld, noudat ons op 'n metode besluit het, kan ons ons model oplei met die opleidingsdata.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Evalueer die model
Nadat die model opgelei is, moet dit op nuwe data geëvalueer word om te verseker dat dit akkuraat en betroubaar is. Dit behels die toetsing van die model met data wat nie tydens opleiding gebruik is nie en die vergelyking van die geprojekteerde waardes daarvan met die werklike waardes in die toetsdata.
Hierdie hersiening kan help met die identifisering van enige modelfoute, soos oorpas of onderpas, en kan lei tot enige fynafstelling wat nodig mag wees.
Deur die toetsdata te gebruik, sal ons die korrektheid van ons model assesseer.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Die akkuraatheid telling is nie so sleg vir nou. 🙂 Om jou akkuraatheidtelling te verbeter, kan jy altyd die data meer skoonmaak of verskillende masjienleermodelle probeer om te sien watter een die hoogste telling gee.
6. Verfyn die model
As die model se doeltreffendheid nie voldoende genoeg is nie, kan jy dit verfyn deur verskeie algoritme-parameters te verander of deur heeltemal met nuwe algoritmes te eksperimenteer.
Hierdie prosedure kan eksperimentering met alternatiewe leertempo's, die wysiging van regulariseringsinstellings of die verandering van die aantal of grootte van versteekte lae in 'n neurale netwerk insluit.
7. Gebruik die model
Sodra jy tevrede is met die model se werkverrigting, kan jy dit begin gebruik om voorspellings oor nuwe data te genereer.
Dit kan behels dat vars data in die model ingevoer word en die model se aangeleerde parameters gebruik word om voorspellings oor daardie data te genereer, of om die model in 'n breër toepassing of stelsel te integreer.
Ons kan ons model gebruik om voorspellings oor nuwe data te genereer nadat ons tevrede is met die akkuraatheid daarvan. Jy kan verskillende waardes van geslag en ouderdom probeer.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Afsluit
Ons het ons eerste masjienleermodel klaar opgelei.
Ek hoop jy het dit nuttig gevind. Jy kan nou probeer om verskillende masjienleermodelle soos Lineêre Regressie of Random Forest te gebruik.
Daar is baie datastelle en uitdagings in Kaggle as jy jou kodering en begrip van masjienleer wil verbeter.
Lewer Kommentaar