Je, ungependa kuanza na mashine kujifunza?
Nimeunda mafunzo rahisi na rahisi kwa Kompyuta kamili. Kwa pamoja, tutapitia hatua za msingi za kufunza modeli ya kujifunza mashine.
Wakati nikielezea hatua za kufundisha mwanamitindo mmoja baada ya mwingine, pia nitatoa mfano wa msingi sana wa tatizo la kujifunza mashine pia. Kwa hivyo, ikiwa ungependa kufuata, unaweza kupakua seti hii ya data kutoka kwa hii kiungo.
Huu ni mfano wa mkusanyiko wa data wa kukusaidia kuanza kujifunza mashine.
Tuna thamani 18 za watu wa rika na jinsia tofauti ambazo zimefafanuliwa muziki waupendao. Kwa kutumia, vipengele vya "umri" na "jinsia" tutajaribu kukisia ni aina gani ya muziki wanayopenda zaidi.
Kumbuka: 1 na 0 zimetolewa kwa jinsia kama wanawake na wanaume katika mkusanyiko huu wa data.
Walakini, ikiwa hutaki kufuata mfano, pia ni sawa kabisa. Nitaelezea hatua hizi zote kwa undani. Kwa hivyo, wacha tuzame!
Mambo ya Kwanza Kujua
Kabla ya kwenda katika hatua za mafunzo ya mfano, wacha tufafanue vidokezo kadhaa. Kujifunza kwa mashine ni bandia akili nidhamu ambayo inalenga katika kuendeleza algoriti ambazo zinaweza kujifunza kutoka kwa data.
Ili kufanya hivyo, miundo ya mashine ya kujifunza hufunzwa kwenye mkusanyiko wa data unaofunza modeli jinsi ya kufanya ubashiri sahihi au uainishaji kwenye data mpya, isiyojulikana hapo awali.
Kwa hivyo, mifano hii ni nini? A modeli ya kujifunza mashine ni sawa na kichocheo ambacho kompyuta hutumia kutoa ubashiri wa data au chaguo.
Muundo, kama kichocheo, hufuata seti ya maagizo ya kutathmini data na kutoa ubashiri au hukumu kulingana na ruwaza zinazopatikana katika data. Kadiri modeli inavyofunzwa data zaidi, ndivyo utabiri wake unavyokuwa sahihi zaidi.
Je! Tunaweza Kufunza Aina Gani za Miundo?
Hebu tuone ni mifano gani ya msingi ya kujifunza mashine.
- Urejeshaji wa Mstari: kielelezo ambacho hutabiri kigeu chenye lengwa chenye kuendelea kutoka kwa vigeuzo moja au zaidi vya ingizo.
- Mitandao ya Neural: mtandao wa nodi zilizounganishwa ambazo zinaweza kujifunza kugundua ruwaza changamano katika data.
- Miti ya Uamuzi: mbinu ya kufanya maamuzi iliyojengwa juu ya mlolongo wa taarifa za matawi ikiwa ni vinginevyo.
- Clustering: seti ya miundo inayoweka pamoja pointi za data zinazolingana kulingana na ufanano.
- Urejeleaji wa Kijenzi: kielelezo cha matatizo ya uainishaji wa mfumo wa jozi ambapo utofauti unaolengwa una thamani mbili zinazowezekana.
- Miti ya Uamuzi: mbinu ya kufanya maamuzi iliyojengwa juu ya mlolongo wa taarifa za matawi ikiwa ni vinginevyo.
- Msitu wa nasibu: mfano wa kukusanyika unaojumuisha miti mingi ya maamuzi. Zinatumika mara kwa mara kwa uainishaji na urekebishaji maombi.
- Majirani wa K-Karibu Zaidi: muundo unaotabiri kigezo lengwa kwa kutumia alama za data za k-karibu zaidi katika seti ya mafunzo.
Kulingana na tatizo letu na seti ya data, tunaamua ni modeli ipi ya mashine ya kujifunza inayofaa zaidi hali yetu. Walakini, tutarudi kwa hii baadaye. Sasa, wacha tuanze kufundisha mtindo wetu. Natumaini tayari umeshapakua daftari kama ungependa kufuata mfano wetu.
Pia, napendekeza kuwa nayo Jupyter Daftari iliyosakinishwa kwenye mashine yako ya karibu na kuitumia kwa miradi yako ya kujifunza mashine.
1: Bainisha tatizo
Hatua ya kwanza katika kufundisha mashine ya kujifunza model inafafanua suala la kutatuliwa. Hii inajumuisha kuchagua vigeuzo unavyotaka kutabiri (vinajulikana kama kigezo lengwa) na vigeu vitakavyotumika kutoa utabiri huo (unaojulikana kama vipengele au vitabiri).
Unapaswa pia kuamua ni aina gani ya tatizo la kujifunza kwa mashine unajaribu kushughulikia (uainishaji, urekebishaji, mkusanyiko, na kadhalika) na ni aina gani ya data utahitaji kukusanya au kupata ili kutoa mafunzo kwa mtindo wako.
Aina ya muundo unaotumia itabainishwa na aina ya tatizo la kujifunza kwa mashine ambalo unalenga kutatua. Uainishaji, urejeshaji nyuma, na nguzo ni kategoria tatu za msingi za changamoto za kujifunza mashine. Unapotaka kutabiri tofauti ya kategoria, kama vile kama barua pepe ni barua taka au la, unatumia uainishaji.
Unapotaka kutabiri mabadiliko yanayoendelea, kama vile bei ya nyumba, unatumia regression. Kuunganisha hutumiwa kuweka pamoja vipengee vya data vinavyoweza kulinganishwa kulingana na mambo yao ya kawaida.
Tukiangalia mfano wetu; changamoto yetu ni kuamua mtindo wa muziki anaopendelea mtu kutoka kwa jinsia na umri wake. Tutatumia mkusanyiko wa watu 18 kwa mfano huu na maelezo kuhusu umri wao, jinsia na mtindo wao wa muziki wanaoupenda.
2. Tayarisha data
Baada ya kutaja shida, utahitaji kuandaa data ya kufunza mfano. Hii inajumuisha kusafisha na kuchakata data. Kwa hivyo, ili tuweze kuhakikisha kuwa iko katika muundo ambao algorithm ya kujifunza mashine inaweza kutumia.
Hii inaweza kujumuisha shughuli kama vile kufuta thamani zinazokosekana, kubadilisha data ya kategoria hadi data ya nambari, na kuongeza au kurekebisha data ili kuhakikisha sifa zote ziko kwenye kipimo sawa.
Kwa mfano, hivi ndivyo unavyofuta maadili yanayokosekana:
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())
Kumbuka kidogo: Katika mstari o "import pandas as pd",
tunaingiza maktaba ya Pandas na kuipa jina lak "pd" ili kurahisisha kurejelea kazi na vitu vyake baadaye kwenye msimbo.
Pandas ni moduli inayojulikana ya Python ya upotoshaji na uchanganuzi wa data, haswa wakati wa kufanya kazi na data iliyoundwa au ya jedwali.
Katika mfano wetu wa kuamua aina za muziki. Kwanza tutaleta mkusanyiko wa data. Nimeipa jina music.csv, hata hivyo, unaweza kuipa jina upendavyo.
Ili kuandaa data ya kufunza muundo wa kujifunza kwa mashine, tunaigawanya katika sifa (umri na jinsia) na malengo (aina ya muziki).
Pia tutagawanya data katika seti za 80:20 za mafunzo na majaribio ili kutathmini utendakazi wa muundo wetu na kuepuka kufaa kupita kiasi.
# 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. Chagua mtindo wa kujifunza mashine.
Baada ya kuandaa data, lazima uchague kielelezo cha kujifunza kwa mashine ambacho kinafaa kwa kazi yako.
Kuna algoriti kadhaa za kuchagua kutoka, kama vile miti ya maamuzi, urekebishaji wa vifaa, mashine za vekta za usaidizi, mitandao ya neva, na zingine. Kanuni utakayochagua itabainishwa na aina ya suala unalojaribu kujibu, aina ya data uliyo nayo na mahitaji yako ya utendaji.
Tutatumia kiaina cha mti wa maamuzi kwa mfano huu kwa sababu tunashughulikia tatizo la uainishaji (kutabiri data ya kategoria).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Hapa kuna taswira ya jinsi Kiainisho cha Mti wa Uamuzi kinavyofanya kazi:
4. Treni mfano
Unaweza kuanza kufundisha kielelezo wakati umechagua kanuni inayokubalika ya kujifunza mashine. Hii inajumuisha kutumia data iliyozalishwa awali ili kuelimisha algoriti kuhusu jinsi ya kufanya ubashiri kuhusu data mpya, isiyoonekana hapo awali.
Algorithm itarekebisha vigezo vyake vya ndani wakati wa mafunzo ili kupunguza tofauti kati ya maadili yaliyotabiriwa na maadili halisi katika data ya mafunzo. Idadi ya data inayotumika kwa mafunzo, pamoja na vigezo mahususi vya algorithm, vyote vinaweza kuwa na athari kwa usahihi wa kielelezo tokeo.
Katika mfano wetu mahususi, kwa kuwa sasa tumeamua mbinu, tunaweza kufunza muundo wetu na data ya mafunzo.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Tathmini mfano
Baada ya modeli kupewa mafunzo, ni lazima itathminiwe kwenye data mpya ili kuhakikisha kuwa ni sahihi na inategemewa. Hii inajumuisha kupima kielelezo kwa data ambayo haikutumika wakati wa mafunzo na kulinganisha thamani zake zilizokadiriwa na zile halisi katika data ya jaribio.
Ukaguzi huu unaweza kusaidia katika kutambua dosari zozote za muundo, kama vile kufifisha kupita kiasi au kutofaa, na unaweza kusababisha urekebishaji wowote unaofaa.
Kwa kutumia data ya majaribio, tutatathmini usahihi wa mfano wetu.
# 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)
Alama ya usahihi sio mbaya sana kwa sasa. 🙂 Ili kuboresha alama zako za usahihi, unaweza kusafisha data zaidi kila wakati au ujaribu miundo tofauti ya kujifunza kwa mashine ili kuona ni ipi inatoa alama za juu zaidi.
6. Fanya vizuri mfano
Ikiwa ufanisi wa mfano hautoshi, unaweza kuifanya vizuri kwa kubadilisha vigezo mbalimbali vya algorithm au kwa kujaribu algorithms mpya kabisa.
Utaratibu huu unaweza kujumuisha kujaribu viwango mbadala vya kujifunza, kurekebisha mipangilio ya urekebishaji, au kubadilisha idadi au ukubwa wa tabaka zilizofichwa katika mtandao wa neva.
7. Tumia mfano
Mara tu unapofurahishwa na utendaji wa modeli, unaweza kuanza kuitumia kutoa utabiri kwenye data mpya.
Hii inaweza kujumuisha kulisha data mpya katika modeli na kutumia vigezo vilivyofunzwa vya modeli kutoa utabiri wa data hiyo, au kuunganisha kielelezo kwenye programu au mfumo mpana.
Tunaweza kutumia muundo wetu kutoa ubashiri kwenye data mpya baada ya kufurahishwa na usahihi wake. Unaweza kujaribu maadili tofauti ya jinsia na umri.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Maliza
Tumemaliza kutoa mafunzo kwa modeli yetu ya kwanza ya kujifunza mashine.
Natumaini umepata kuwa muhimu. Sasa unaweza kujaribu kutumia miundo tofauti ya kujifunza kwa mashine kama vile Regression ya Linear au Random Forest.
Kuna hifadhidata nyingi na changamoto ndani Kaggle ikiwa ungependa kuboresha usimbaji wako na uelewa wa kujifunza kwa mashine.
Acha Reply