Gusto mo bang magsimula sa machine learning?
Gumawa ako ng simple at madaling tutorial para sa kumpletong mga baguhan. Magkasama, tatalakayin natin ang mga pangunahing hakbang ng pagsasanay ng modelo ng machine learning.
Habang ipinapaliwanag ang mga hakbang ng pagsasanay ng isang modelo nang paisa-isa, magbibigay din ako ng isang napakapangunahing halimbawa ng problema sa machine-learning. Kaya, kung gusto mong sumunod, maaari mong i-download ang sample na set ng data mula dito link.
Isa lang itong sample na dataset para matulungan kang magsimula sa machine learning.
Mayroon kaming 18 mga halaga ng mga taong may iba't ibang edad at kasarian na tinukoy ang kanilang paboritong musika. Sa pamamagitan ng paggamit, ang mga tampok ng "edad" at "kasarian" ay susubukan naming hulaan kung aling genre ng musika ang kanilang paborito.
Tandaan: Ang 1 at 0 ay itinalaga sa mga kasarian bilang babae at lalaki sa dataset na ito.
Gayunpaman, kung ayaw mong sundin ang halimbawa, ayos lang din ito. Ipapaliwanag ko nang detalyado ang lahat ng mga hakbang na ito. Kaya, sumisid tayo!
Mga Unang Bagay na Dapat Malaman
Bago pumunta sa mga hakbang ng pagsasanay ng isang modelo, linawin natin ang ilang mga punto. Ang machine learning ay isang artificial intelligence disiplina na nakatuon sa pagbuo ng mga algorithm na maaaring matuto mula sa data.
Para magawa ito, sinasanay ang mga modelo ng machine learning sa isang dataset na nagtuturo sa modelo kung paano gumawa ng mga tamang hula o mga pag-uuri sa bago, dati nang hindi kilalang data.
Kaya, ano ang mga modelong ito? A modelo ng pag-aaral ng makina ay katulad ng isang recipe na ginagamit ng isang computer upang makabuo ng mga hula o pagpipilian ng data.
Ang isang modelo, tulad ng isang recipe, ay sumusunod sa isang hanay ng mga tagubilin upang suriin ang data at bumuo ng mga hula o paghuhusga batay sa mga pattern na makikita sa data. Kung mas maraming data ang sinanay ng modelo, nagiging mas tumpak ang mga hula nito.
Anong Uri ng Mga Modelo ang Maaari Natin Sanayin?
Tingnan natin kung ano ang mga pangunahing modelo ng machine learning.
- Linear Regression: isang modelo na hinuhulaan ang tuluy-tuloy na target na variable mula sa isa o higit pang input variable.
- Mga Neural Network: isang network ng mga naka-link na node na matututong tumukoy ng mga kumplikadong pattern sa data.
- Mga Puno ng Desisyon: isang diskarte sa paggawa ng desisyon na binuo sa isang hanay ng mga sumasanga kung-ibang mga pahayag.
- Clustering: isang hanay ng mga modelong nagpapangkat ng mga maihahambing na punto ng data batay sa pagkakatulad.
- Logistic Regression: isang modelo para sa mga problema sa pag-uuri ng binary kung saan ang target na variable ay may dalawang potensyal na halaga.
- Mga Puno ng Desisyon: isang diskarte sa paggawa ng desisyon na binuo sa isang hanay ng mga sumasanga kung-ibang mga pahayag.
- Random Forest: isang ensemble model na binubuo ng maraming decision tree. Ang mga ito ay madalas na ginagamit para sa pag-uuri at pagbabalik ng mga aplikasyon.
- K-Nearest Neighbors: isang modelo na hinuhulaan ang target na variable gamit ang k-pinakamalapit na mga punto ng data sa set ng pagsasanay.
Depende sa aming problema at dataset, kami ang magpapasya kung aling machine learning model ang pinakaangkop sa aming sitwasyon. Gayunpaman, babalikan natin ito mamaya. Ngayon, simulan natin ang pagsasanay sa ating modelo. Sana na-download mo na ang dataset kung gusto mong sundin ang aming halimbawa.
Gayundin, inirerekumenda kong magkaroon Jupiter Notebook naka-install sa iyong lokal na makina at ginagamit ito para sa iyong mga proyekto sa pag-aaral ng makina.
1: Tukuyin ang problema
Ang unang yugto sa pagsasanay ng machine learning Tinutukoy ng modelo ang isyu na lutasin. Nangangailangan ito ng pagpili sa mga variable na gusto mong hulaan (kilala bilang target na variable) at ang mga variable na gagamitin upang bumuo ng mga hula na iyon (kilala bilang mga feature o predictors).
Dapat ka ring magpasya kung anong uri ng problema sa machine-learning ang sinusubukan mong tugunan (classification, regression, clustering, at iba pa) at kung anong uri ng data ang kakailanganin mong ipunin o makuha para sanayin ang iyong modelo.
Ang uri ng modelong gagamitin mo ay matutukoy sa pamamagitan ng uri ng problema sa machine learning na nilalayon mong lutasin. Ang klasipikasyon, regression, at clustering ay ang tatlong pangunahing kategorya ng mga hamon sa machine learning. Kapag gusto mong hulaan ang isang kategoryang variable, tulad ng kung ang isang email ay isang spam o hindi, gumagamit ka ng pag-uuri.
Kapag gusto mong hulaan ang isang tuluy-tuloy na variable, tulad ng presyo ng isang bahay, ginagamit mo ang regression. Ginagamit ang clustering upang pagsama-samahin ang mga maihahambing na item ng data batay sa kanilang pagkakapareho.
Kung titingnan natin ang ating halimbawa; ang aming hamon ay upang matukoy ang ginustong istilo ng musika ng isang tao mula sa kanilang kasarian at edad. Gagamitin namin ang isang dataset ng 18 tao para sa halimbawang ito at impormasyon sa kanilang edad, kasarian, at paboritong istilo ng musika.
2. Ihanda ang datos
Pagkatapos mong tukuyin ang problema, kakailanganin mong ihanda ang data para sa pagsasanay sa modelo. Nangangailangan ito ng paglilinis at pagproseso ng data. Kaya, upang matiyak natin na ito ay nasa isang format na ang algorithm sa pag-aaral ng machine maaaring magamit.
Maaaring kabilang dito ang mga aktibidad tulad ng pagtanggal ng mga nawawalang value, pagbabago ng kategoryang data sa numerical na data, at pag-scale o pag-normalize ng data upang matiyak na ang lahat ng katangian ay nasa parehong sukat.
Halimbawa, ito ay kung paano mo tatanggalin ang mga nawawalang halaga:
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())
Maliit na tala: Sa linya o “import pandas as pd",
ini-import namin ang library ng Pandas at itinalaga ito ng alyas na "pd" upang gawing mas madaling i-reference ang mga function at object nito mamaya sa code.
Ang Pandas ay isang kilalang module para sa Python para sa pagmamanipula at pagsusuri ng data, lalo na kapag nagtatrabaho sa structured o tabular na data.
Sa aming halimbawa ng pagtukoy ng mga genre ng musika. Ii-import muna namin ang dataset. Pinangalanan ko itong music.csv, gayunpaman, maaari mo itong pangalanan kahit anong gusto mo.
Para ihanda ang data para sa pagsasanay ng isang machine learning model, hinati namin ito sa mga attribute (edad at kasarian) at mga layunin (genre ng musika).
Hahatiin din namin ang data sa 80:20 training at testing set para masuri ang performance ng aming modelo at maiwasan ang overfitting.
# 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. Pumili ng modelo ng machine learning.
Pagkatapos mong maihanda ang data, dapat kang pumili ng modelo ng machine-learning na angkop sa iyong gawain.
Mayroong ilang mga algorithm upang pumili mula sa, tulad ng mga puno ng desisyon, logistic regression, suporta vector machine, neural network, at iba pa. Ang algorithm na pipiliin mo ay matutukoy sa pamamagitan ng uri ng isyu na sinusubukan mong sagutin, ang uri ng data na mayroon ka, at ang iyong mga pangangailangan sa pagganap.
Gagamit kami ng decision tree classifier para sa halimbawang ito dahil nagtatrabaho kami sa isang problema sa pag-uuri (paghula ng data sa kategorya).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Narito ang isang visualization kung paano gumagana ang Decision Tree Classifier:
4. Sanayin ang modelo
Maaari mong simulan ang pagsasanay sa modelo kapag nakapili ka ng katanggap-tanggap na machine-learning algorithm. Nangangahulugan ito ng paggamit ng dati nang nabuong data upang turuan ang algorithm kung paano gumawa ng mga hula sa bago, dati nang hindi nakikitang data.
Babaguhin ng algorithm ang mga panloob na parameter nito sa panahon ng pagsasanay upang mabawasan ang pagkakaiba sa pagitan ng mga hinulaang halaga nito at ang aktwal na mga halaga sa data ng pagsasanay. Ang dami ng data na ginamit para sa pagsasanay, pati na rin ang mga partikular na parameter ng algorithm, ay maaaring magkaroon ng epekto sa katumpakan ng resultang modelo.
Sa aming partikular na halimbawa, ngayong nakapagpasya na kami sa isang paraan, maaari naming sanayin ang aming modelo gamit ang data ng pagsasanay.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Suriin ang modelo
Matapos masanay ang modelo, dapat itong suriin sa bagong data upang matiyak na ito ay tumpak at maaasahan. Nangangailangan ito ng pagsubok sa modelo na may data na hindi nagamit sa panahon ng pagsasanay at paghahambing ng mga inaasahang halaga nito sa aktwal na mga halaga sa data ng pagsubok.
Makakatulong ang pagsusuri na ito sa pagtukoy ng anumang mga bahid ng modelo, gaya ng overfitting o underfitting, at maaaring humantong sa anumang fine-tuning na maaaring kailanganin.
Gamit ang data ng pagsubok, susuriin namin ang kawastuhan ng aming 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)
Ang katumpakan na marka ay hindi masyadong masama sa ngayon. 🙂 Upang mapabuti ang iyong katumpakan na marka, maaari mong linisin ang data anumang oras o subukan ang iba't ibang modelo ng machine-learning upang makita kung alin ang nagbibigay ng pinakamataas na marka.
6. I-fine-tune ang modelo
Kung ang kahusayan ng modelo ay hindi sapat, maaari mo itong ayusin sa pamamagitan ng pagbabago ng iba't ibang mga parameter ng algorithm o sa pamamagitan ng ganap na pag-eksperimento sa mga bagong algorithm.
Maaaring kasama sa pamamaraang ito ang pag-eksperimento sa mga alternatibong rate ng pag-aaral, pagbabago ng mga setting ng regularization, o pagbabago sa bilang o laki ng mga nakatagong layer sa isang neural network.
7. Gamitin ang modelo
Kapag nasiyahan ka na sa pagganap ng modelo, maaari mo itong simulang gamitin upang bumuo ng mga hula sa bagong data.
Maaaring kailanganin nito ang pagpapakain ng bagong data sa modelo at paggamit ng mga natutunang parameter ng modelo upang bumuo ng mga hula sa data na iyon, o pagsasama ng modelo sa isang mas malawak na application o system.
Magagamit namin ang aming modelo upang makabuo ng mga hula sa bagong data pagkatapos naming masiyahan sa katumpakan nito. Maaari mong subukan ang iba't ibang halaga ng kasarian at edad.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Balutin
Natapos na namin ang pagsasanay sa aming unang machine learning model.
Umaasa ako na nakita mo itong kapaki-pakinabang. Maaari mo na ngayong subukan ang paggamit ng iba't ibang modelo ng machine learning tulad ng Linear Regression o Random Forest.
Mayroong maraming mga dataset at hamon sa Kaggle kung gusto mong pagbutihin ang iyong coding at pag-unawa sa machine learning.
Mag-iwan ng Sagot