Hoffech chi ddechrau arni dysgu peiriant?
Rwyf wedi creu tiwtorial syml a hawdd ar gyfer dechreuwyr pur. Gyda'n gilydd, byddwn yn mynd dros y camau sylfaenol o hyfforddi model dysgu peiriant.
Wrth esbonio'r camau o hyfforddi model fesul un, byddaf hefyd yn rhoi enghraifft sylfaenol iawn o broblem dysgu peiriant hefyd. Felly, os hoffech chi ddilyn ymlaen, gallwch chi lawrlwytho'r set ddata sampl hon o hwn cyswllt.
Dim ond sampl o set ddata yw hon i'ch helpu i ddechrau dysgu peirianyddol.
Mae gennym ni 18 o werthoedd o bobl o wahanol oedran a rhyw sydd â'u hoff gerddoriaeth wedi'i diffinio. Trwy ddefnyddio, nodweddion “oedran” a “rhyw” byddwn yn ceisio dyfalu pa genre o gerddoriaeth yw eu ffefryn.
Sylwer: Mae 1 a 0 wedi’u neilltuo i rywedd benywaidd a gwrywaidd yn y set ddata hon.
Fodd bynnag, os nad ydych am ddilyn yr enghraifft, mae hefyd yn berffaith iawn. Byddaf yn esbonio'r holl gamau hyn yn fanwl. Felly, gadewch i ni blymio i mewn!
Pethau Cyntaf i'w Gwybod
Cyn mynd i'r camau o hyfforddi model, gadewch i ni egluro rhai pwyntiau. Mae dysgu peirianyddol yn deallusrwydd artiffisial disgyblaeth sy'n canolbwyntio ar ddatblygu algorithmau a all ddysgu o ddata.
I wneud hyn, mae modelau dysgu peirianyddol yn cael eu hyfforddi ar set ddata sy'n dysgu'r model sut i wneud rhagfynegiadau cywir neu dosbarthiadau ar ddata ffres, anhysbys o'r blaen.
Felly, beth yw'r modelau hyn? A model dysgu peiriant yn debyg i rysáit y mae cyfrifiadur yn ei ddefnyddio i gynhyrchu rhagfynegiadau neu ddewisiadau data.
Mae model, fel rysáit, yn dilyn set o gyfarwyddiadau i werthuso data a chynhyrchu rhagfynegiadau neu farnau yn seiliedig ar batrymau a geir yn y data. Po fwyaf o ddata y mae'r model wedi'i hyfforddi arno, y mwyaf cywir y daw ei ragfynegiadau.
Pa Fath o Fodelau y gallwn eu hyfforddi?
Gadewch i ni weld beth yw'r modelau dysgu peiriant sylfaenol.
- Atchweliad Llinol: model sy'n rhagweld newidyn targed parhaus o un neu fwy o newidynnau mewnbwn.
- Rhwydweithiau niwral: rhwydwaith o nodau cysylltiedig a all ddysgu canfod patrymau cymhleth mewn data.
- Coed Penderfyniadau: dull o wneud penderfyniadau wedi’i seilio ar gadwyn o ddatganiadau canghennog os-arall.
- Clystyru: set o fodelau sy'n grwpio pwyntiau data cymaradwy ar sail tebygrwydd.
- Atchweliad Logistaidd: model ar gyfer problemau dosbarthu deuaidd lle mae gan y newidyn targed ddau werth posibl.
- Coed Penderfyniadau: dull o wneud penderfyniadau wedi’i seilio ar gadwyn o ddatganiadau canghennog os-arall.
- Random Forest: model ensemble sy'n cynnwys nifer o goed penderfynu. Fe'u defnyddir yn aml ar gyfer ceisiadau dosbarthu ac atchweliad.
- K-Cymdogion Agosaf: model sy'n rhagfynegi'r newidyn targed gan ddefnyddio'r pwyntiau data k-agosaf yn y set hyfforddi.
Yn dibynnu ar ein problem a'n set ddata, rydym yn penderfynu pa fodel dysgu peiriant sy'n gweddu fwyaf i'n sefyllfa. Eto i gyd, byddwn yn dod yn ôl at hyn yn ddiweddarach. Nawr, gadewch i ni ddechrau hyfforddi ein model. Rwy'n gobeithio eich bod eisoes wedi llwytho i lawr y set ddata os hoffech chi ddilyn ein hesiampl.
Hefyd, rwy'n argymell cael Llyfr Nodiadau Jupyter gosod ar eich peiriant lleol a'i ddefnyddio ar gyfer eich prosiectau dysgu peiriant.
1: Diffiniwch y broblem
Y cam cyntaf yn hyfforddi dysgu peiriant model yn diffinio'r mater i'w ddatrys. Mae hyn yn golygu dewis y newidynnau yr ydych am eu rhagweld (a elwir yn newidyn targed) a'r newidynnau a ddefnyddir i gynhyrchu'r rhagfynegiadau hynny (a elwir yn nodweddion neu ragfynegyddion).
Dylech hefyd benderfynu pa fath o broblem dysgu peiriant yr ydych yn ceisio mynd i'r afael â hi (dosbarthiad, atchweliad, clystyru, ac yn y blaen) a pha fath o ddata y bydd angen i chi ei gasglu neu ei gael i hyfforddi'ch model.
Bydd y math o fodel a ddefnyddiwch yn cael ei bennu gan y math o broblem dysgu peirianyddol yr ydych yn ceisio ei datrys. Dosbarthiad, atchweliad, a chlystyru yw'r tri phrif gategori o heriau dysgu peiriannau. Pan fyddwch chi eisiau rhagweld newidyn categorïaidd, megis a yw e-bost yn sbam ai peidio, rydych chi'n defnyddio dosbarthiad.
Pan fyddwch chi'n dymuno rhagweld newidyn parhaus, fel pris tŷ, rydych chi'n defnyddio atchweliad. Defnyddir clystyru i roi eitemau data cymaradwy at ei gilydd ar sail eu nodweddion cyffredin.
Os edrychwn ar ein hesiampl; ein her yw penderfynu ar arddull gerddorol sydd orau gan berson o'u rhyw a'u hoedran. Byddwn yn defnyddio set ddata o 18 o bobl ar gyfer yr enghraifft hon a gwybodaeth am eu hoedran, rhyw, a'u hoff arddull cerddorol.
2. Paratowch y data
Ar ôl i chi nodi'r broblem, bydd angen i chi baratoi'r data ar gyfer hyfforddi'r model. Mae hyn yn golygu glanhau a phrosesu'r data. Felly, y gallwn sicrhau ei fod mewn fformat y mae'r algorithm dysgu peiriant yn gallu defnyddio.
Gallai hyn gynnwys gweithgareddau fel dileu gwerthoedd coll, trawsnewid data categorïaidd yn ddata rhifiadol, a graddio neu normaleiddio’r data i sicrhau bod yr holl nodweddion ar yr un raddfa.
Er enghraifft, dyma sut rydych chi'n dileu gwerthoedd coll:
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())
Nodyn bach: Yn y llinell o “import pandas as pd",
rydym yn mewnforio'r llyfrgell Pandas ac yn aseinio'r alias “pd” iddi i'w gwneud yn haws cyfeirio at ei swyddogaethau a'i gwrthrychau yn ddiweddarach yn y cod.
Mae Pandas yn fodiwl adnabyddus i Python ar gyfer trin a dadansoddi data, yn enwedig wrth weithio gyda data strwythuredig neu dablau.
Yn ein hesiampl o bennu genres cerddoriaeth. Yn gyntaf byddwn yn mewnforio'r set ddata. Yr wyf wedi ei enwi music.csv, fodd bynnag, gallwch ei enwi sut bynnag y dymunwch.
Er mwyn paratoi'r data ar gyfer hyfforddi model dysgu peirianyddol, fe wnaethom ei rannu'n briodoleddau (oedran a rhyw) ac amcanion (genre cerddoriaeth).
Byddwn hefyd yn rhannu'r data yn setiau hyfforddi a phrofi 80:20 i asesu perfformiad ein model ac osgoi gorffitio.
# 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. Dewiswch fodel dysgu peiriant.
Ar ôl i chi baratoi'r data, rhaid i chi ddewis model dysgu peiriant sy'n addas i'ch tasg.
Mae yna nifer o algorithmau i ddewis ohonynt, megis coed penderfynu, atchweliad logistaidd, peiriannau fector cymorth, rhwydweithiau niwral, ac eraill. Bydd yr algorithm a ddewiswch yn cael ei bennu gan y math o fater yr ydych yn ceisio ei ateb, y math o ddata sydd gennych, a'ch anghenion perfformiad.
Byddwn yn defnyddio dosbarthwr coeden benderfynu ar gyfer yr enghraifft hon oherwydd ein bod yn gweithio gyda phroblem ddosbarthu (rhagweld data categorïaidd).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Dyma ddelwedd o sut mae'r Dosbarthwr Coeden Benderfynu yn gweithio:
4. Hyfforddwch y model
Gallwch chi ddechrau hyfforddi'r model pan fyddwch chi wedi dewis algorithm dysgu peiriant derbyniol. Mae hyn yn golygu defnyddio'r data a gynhyrchwyd yn flaenorol i addysgu'r algorithm ar sut i wneud rhagfynegiadau ar ddata ffres, nas gwelwyd o'r blaen.
Bydd yr algorithm yn addasu ei baramedrau mewnol yn ystod yr hyfforddiant i leihau'r gwahaniaeth rhwng ei werthoedd a ragfynegir a'r gwerthoedd gwirioneddol yn y data hyfforddi. Gall maint y data a ddefnyddir ar gyfer hyfforddiant, yn ogystal â pharamedrau penodol yr algorithm, i gyd gael effaith ar gywirdeb y model canlyniadol.
Yn ein hesiampl benodol, nawr ein bod wedi penderfynu ar ddull, gallwn hyfforddi ein model gyda'r data hyfforddi.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Gwerthuswch y model
Ar ôl i'r model gael ei hyfforddi, rhaid ei werthuso ar ddata newydd i sicrhau ei fod yn gywir ac yn ddibynadwy. Mae hyn yn golygu profi'r model gyda data na chafodd ei ddefnyddio yn ystod yr hyfforddiant a chymharu ei werthoedd rhagamcanol â'r gwerthoedd gwirioneddol yn y data prawf.
Gall yr adolygiad hwn helpu i nodi unrhyw wendidau model, megis gorffitio neu dan-ffitio, a gall arwain at unrhyw fireinio a all fod yn ofynnol.
Gan ddefnyddio'r data profi, byddwn yn asesu cywirdeb ein model.
# 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)
Nid yw'r sgôr cywirdeb mor ddrwg am y tro. 🙂 Er mwyn gwella'ch sgôr cywirdeb, gallwch chi bob amser lanhau'r data yn fwy neu roi cynnig ar wahanol fodelau dysgu peiriant i weld pa un sy'n rhoi'r sgôr uchaf.
6. Coethwch y model
Os nad yw effeithlonrwydd y model yn ddigonol, gallwch ei fireinio trwy newid paramedrau algorithm amrywiol neu trwy arbrofi gydag algorithmau newydd yn gyfan gwbl.
Gall y weithdrefn hon gynnwys arbrofi gyda chyfraddau dysgu amgen, addasu gosodiadau rheoleiddio, neu newid nifer neu faint yr haenau cudd mewn rhwydwaith niwral.
7. Defnyddiwch y model
Unwaith y byddwch yn fodlon ar berfformiad y model, gallwch ddechrau ei ddefnyddio i gynhyrchu rhagfynegiadau ar ddata newydd.
Gallai hyn olygu bwydo data newydd i'r model a defnyddio paramedrau dysgedig y model i gynhyrchu rhagfynegiadau ar y data hwnnw, neu integreiddio'r model i gymhwysiad neu system ehangach.
Gallwn ddefnyddio ein model i gynhyrchu rhagfynegiadau ar ddata newydd ar ôl i ni fod yn fodlon ar ei gywirdeb. Gallwch roi cynnig ar wahanol werthoedd rhyw ac oedran.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Llwytho i fyny
Rydym wedi gorffen hyfforddi ein model dysgu peiriant cyntaf.
Gobeithio eich bod wedi ei chael yn ddefnyddiol. Gallwch nawr roi cynnig ar ddefnyddio gwahanol fodelau dysgu peirianyddol fel Llinellol Atchweliad neu Random Forest.
Mae llawer o setiau data a heriau yn Kaggle os hoffech wella eich codio a'ch dealltwriaeth o ddysgu peirianyddol.
Gadael ymateb