Ĉu vi ŝatus komenci kun maŝinlernado?
Mi kreis simplan kaj facilan lernilon por kompletaj komencantoj. Kune, ni trarigardos la bazajn paŝojn de trejnado de maŝinlernada modelo.
Dum mi klarigas la paŝojn de trejnado de modelo unu post la alia, mi ankaŭ donos tre bazan ekzemplon de problemo pri maŝinlernado ankaŭ. Do, se vi ŝatus sekvi, vi povas elŝuti ĉi tiun specimenan datuman aron de ĉi tio ligilo.
Ĉi tio estas nur ekzempla datumaro por helpi vin komenci kun maŝina lernado.
Ni havas 18 valorojn de homoj de malsamaj aĝoj kaj seksoj, kiuj havas sian plej ŝatatan muzikon difinita. Uzante la trajtojn de "aĝo" kaj "genro" ni provos diveni, kiu ĝenro de muziko estas ilia plej ŝatata.
Noto: 1 kaj 0 estas asignitaj al seksoj kiel ino kaj masklo en ĉi tiu datumaro.
Tamen, se vi ne volas sekvi la ekzemplon, ĝi ankaŭ estas tute bone. Mi klarigos ĉiujn ĉi tiujn paŝojn detale. Do, ni plonĝu!
Unuaj Aferoj Sciindaj
Antaŭ ol eniri la paŝojn de trejnado de modelo, ni klarigu kelkajn punktojn. Maŝina lernado estas artefarita inteligento disciplino kiu temigas evoluigado de algoritmoj kiuj povas lerni de datenoj.
Por fari tion, maŝinlernantaj modeloj estas trejnitaj sur datumaro, kiu instruas al la modelo kiel fari ĝustajn antaŭdirojn aŭ klasifikoj sur freŝaj, antaŭe nekonataj datumoj.
Do, kio estas ĉi tiuj modeloj? A maŝina lernada modelo similas al recepto, kiun komputilo uzas por generi datumajn prognozojn aŭ elektojn.
Modelo, kiel recepto, sekvas aron da instrukcioj por taksi datumojn kaj generi prognozojn aŭ juĝojn bazitajn sur ŝablonoj trovitaj en la datumoj. Ju pli da datumoj la modelo estas trejnita, des pli precizaj fariĝas ĝiaj prognozoj.
Kiajn Modelojn Ni Povas Trejni?
Ni vidu, kiuj estas la bazaj maŝinlernantaj modeloj.
- Lineara regreso: modelo kiu antaŭdiras kontinuan celvariablon de unu aŭ pluraj enigvariabloj.
- Neŭralaj Retoj: reto de ligitaj nodoj kiuj povas lerni detekti komplikajn padronojn en datenoj.
- Decidaj Arboj: decida aliro konstruita sur ĉeno de disbranĉiĝantaj se-alie deklaroj.
- Clustering: aro de modeloj kiuj grupigas kompareblajn datenpunktojn bazitajn sur simileco.
- Loĝistika Regreso: modelo por binaraj klasifikproblemoj en kiuj la celvariablo havas du eblajn valorojn.
- Decidaj Arboj: decida aliro konstruita sur ĉeno de disbranĉiĝantaj se-alie deklaroj.
- Hazarda Arbaro: ensemblomodelo kunmetita de multaj decidarboj. Ili estas ofte uzitaj por klasifiko kaj regresaplikoj.
- K-Nearest Neighbors: modelo kiu antaŭdiras la celvariablon uzante la k-plej proksimajn datenpunktojn en la trejnadaro.
Depende de nia problemo kaj datumaro, ni decidas, kiu maŝinlernada modelo plej taŭgas por nia situacio. Tamen, ni revenos al ĉi tio poste. Nun, ni komencu trejni nian modelon. Mi esperas, ke vi jam elŝutis la datumaro se vi ŝatus sekvi nian ekzemplon.
Ankaŭ mi rekomendas havi Kajero Jupyter instalita sur via loka maŝino kaj uzante ĝin por viaj maŝinlernado projektoj.
1: Difinu la problemon
La unua etapo en trejnado de maŝinlernado modelo difinas la solvitan problemon. Ĉi tio implicas elekti la variablojn, kiujn vi volas antaŭvidi (konataj kiel la cela variablo) kaj la variabloj kiuj estos uzataj por generi tiujn antaŭdirojn (konataj kiel trajtoj aŭ prognoziloj).
Vi ankaŭ decidu kian maŝinlernadon vi provas trakti (klasifiko, regreso, grupigo, ktp) kaj kiajn datumojn vi bezonos kolekti aŭ akiri por trejni vian modelon.
La speco de modelo, kiun vi uzas, estos determinita de la speco de maŝinlernada problemo, kiun vi celas solvi. Klasifiko, regreso kaj grupigo estas la tri primaraj kategorioj de maŝinlernado defioj. Kiam vi volas antaŭdiri kategorian variablon, kiel ĉu retpoŝto estas spamo aŭ ne, vi uzas klasifikon.
Kiam vi volas antaŭvidi kontinuan variablon, kiel la prezon de domo, vi uzas regreson. Clustering kutimas kunmeti kompareblajn datumaĵojn bazitajn sur iliaj komunaĵoj.
Se ni rigardas nian ekzemplon; nia defio estas determini la preferatan muzikan stilon de homo laŭ ilia sekso kaj aĝo. Ni uzos datumaron de 18 homoj por ĉi tiu ekzemplo kaj informojn pri ilia aĝo, sekso kaj plej ŝatata muzika stilo.
2. Preparu la datumojn
Post kiam vi specifis la problemon, vi devos prepari la datumojn por trejni la modelon. Ĉi tio implicas purigadon kaj prilaboradon de la datumoj. Do, ke ni povas certigi ke ĝi estas en formato ke la algoritmo de maŝina lernado povas uzi.
Ĉi tio povus inkluzivi agadojn kiel forigi mankantajn valorojn, transformi kategoriajn datumojn al nombraj datumoj, kaj skali aŭ normaligi la datumojn por certigi, ke ĉiuj karakterizaĵoj estas sur la sama skalo.
Ekzemple, jen kiel vi forigas mankantajn valorojn:
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())
Eta noto: En la linio o “import pandas as pd",
ni importas la Pandas-bibliotekon kaj asignas al ĝi la kaŝnomon "pd" por plifaciligi referenci ĝiajn funkciojn kaj objektojn poste en la kodo.
Pandoj estas konata modulo por Python por datummanipulado kaj analizo, precipe kiam oni laboras kun strukturitaj aŭ tabelaj datumoj.
En nia ekzemplo determini muzikĝenrojn. Ni unue importos la datumaron. Mi nomis ĝin music.csv, tamen vi povas nomi ĝin kiel vi volas.
Por prepari la datumojn por trejnado de maŝinlernada modelo, ni dividas ĝin en atributojn (aĝo kaj sekso) kaj celoj (muzika ĝenro).
Ni krome dividos la datumojn en 80:20-trejnajn kaj testajn arojn por taksi la agadon de nia modelo kaj eviti troagordon.
# 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. Elektu maŝinlerndan modelon.
Post kiam vi preparis la datumojn, vi devas elekti maŝinlernantan modelon, kiu taŭgas por via tasko.
Estas pluraj algoritmoj por elekti, kiel decidarboj, loĝistika regreso, subtenaj vektoraj maŝinoj, neŭralaj retoj kaj aliaj. La algoritmo, kiun vi elektas, estos determinita de la speco de problemo, kiun vi provas respondi, la tipo de datumoj, kiujn vi havas, kaj viaj agado-bezonoj.
Ni uzos decidan arbon klasigilon por ĉi tiu ekzemplo ĉar ni laboras kun klasifikproblemo (antaŭdirante kategoriajn datumojn).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Jen bildigo pri kiel funkcias la Decida Arba Klasigilo:
4. Trejnu la modelon
Vi povas komenci trejni la modelon kiam vi elektis akcepteblan maŝinlernantan algoritmon. Ĉi tio implicas uzi la antaŭe generitajn datumojn por eduki la algoritmon pri kiel fari antaŭdirojn pri freŝaj, antaŭe neviditaj datumoj.
La algoritmo modifos siajn internajn parametrojn dum trejnado por minimumigi la diferencon inter siaj antaŭdiritaj valoroj kaj la realaj valoroj en la trejnaj datumoj. La kvanto de datenoj utiligitaj por trejnado, same kiel la specifaj parametroj de la algoritmo, povas ĉiuj havi efikon al la precizeco de la rezulta modelo.
En nia specifa ekzemplo, nun kiam ni decidis pri metodo, ni povas trejni nian modelon kun la trejnaj datumoj.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Taksi la modelon
Post kiam la modelo estas trejnita, ĝi devas esti taksita laŭ novaj datumoj por certigi, ke ĝi estas preciza kaj fidinda. Ĉi tio implicas testi la modelon kun datumoj kiuj ne estis utiligitaj dum trejnado kaj kompari ĝiajn projekciitajn valorojn kun la realaj valoroj en la testaj datumoj.
Ĉi tiu revizio povas helpi identigi iujn ajn modelajn difektojn, kiel troa agordo aŭ subĝustigo, kaj povas konduki al iu ajn fajnagordado, kiu povas esti postulata.
Uzante la testajn datumojn, ni taksos la ĝustecon de nia modelo.
# 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)
La precizeca poentaro ne estas tiel malbona nuntempe. 🙂 Por plibonigi vian precizecan poentaron, vi ĉiam povas pli purigi la datumojn aŭ provi malsamajn maŝinlernajn modelojn por vidi, kiu donas la plej altan poentaron.
6. Agordi la modelon
Se la efikeco de la modelo ne sufiĉas, vi povas fajnagordi ĝin ŝanĝante diversajn algoritmo-parametrojn aŭ eksperimentante kun novaj algoritmoj tute.
Ĉi tiu proceduro povas inkluzivi eksperimenti kun alternativaj lernprocentoj, modifi reguligajn agordojn aŭ ŝanĝi la nombron aŭ grandecon de kaŝitaj tavoloj en neŭrala reto.
7. Uzu la modelon
Kiam vi estas kontenta pri la agado de la modelo, vi povas komenci uzi ĝin por generi prognozojn pri novaj datumoj.
Tio eble implicos provizi freŝajn datenojn en la modelon kaj utiligi la lernitajn parametrojn de la modelo por generi prognozojn pri tiuj datenoj, aŭ integri la modelon en pli larĝan aplikiĝon aŭ sistemon.
Ni povas uzi nian modelon por generi prognozojn pri novaj datumoj post kiam ni estas kontenta pri ĝia precizeco. Vi povas provi malsamajn valorojn de sekso kaj aĝo.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Enŝipiĝi
Ni finis trejni nian unuan maŝinlerndan modelon.
Mi esperas, ke vi trovis ĝin utila. Vi nun povas provi uzi malsamajn maŝinlernajn modelojn kiel Lineara Regreso aŭ Hazarda Arbaro.
Estas multaj datenoj kaj defioj en Kaggle se vi ŝatus plibonigi vian kodigon kaj komprenon de maŝinlernado.
Lasi Respondon