Gusto ka ba nga magsugod sa pagkat-on sa makina?
Naghimo ako usa ka yano ug dali nga panudlo alang sa kompleto nga mga nagsugod. Mag-uban, atong hisgotan ang sukaranang mga lakang sa pagbansay sa usa ka modelo sa pagkat-on sa makina.
Samtang gipatin-aw ang mga lakang sa pagbansay sa usa ka modelo sa tinagsa, maghatag usab ako usa ka sukaranan nga pananglitan sa usa ka problema sa pagkat-on sa makina. Busa, kung gusto nimong sundon, mahimo nimong i-download kini nga sample data set gikan niini link.
Usa lang kini ka sample dataset aron matabangan ka nga makasugod sa pagkat-on sa makina.
Adunay kami 18 nga mga kantidad sa mga tawo nga lainlain ang edad ug gender nga adunay gipasabut sa ilang paborito nga musika. Pinaagi sa paggamit, ang mga bahin sa "edad" ug "gender" atong sulayan pagtag-an kung unsang genre sa musika ang ilang paborito.
Matikdi: Ang 1 ug 0 gi-assign sa mga gender isip babaye ug lalaki niini nga dataset.
Bisan pa, kung dili nimo gusto nga sundon ang panig-ingnan, maayo usab kini. Akong ipasabut ang tanan niini nga mga lakang sa detalye. Busa, mosalom ta!
Unang mga Butang nga Hibal-an
Sa dili pa moadto sa mga lakang sa pagbansay sa usa ka modelo, atong ipatin-aw ang pipila ka mga punto. Ang pagkat-on sa makina usa ka artipisyal nga intelligence nga disiplina nga nagtutok sa pagpalambo sa mga algorithm nga makakat-on gikan sa datos.
Aron mahimo kini, ang mga modelo sa pagkat-on sa makina gibansay sa usa ka dataset nga nagtudlo sa modelo kung giunsa paghimo ang husto nga mga panagna o klasipikasyon sa bag-o, wala pa mailhi nga datos.
Busa, unsa kini nga mga modelo? A modelo sa pagkat-on sa makina susama sa usa ka resipe nga gigamit sa usa ka kompyuter sa pagmugna og mga panagna o mga pagpili sa datos.
Ang usa ka modelo, sama sa usa ka resipe, nagsunod sa usa ka hugpong sa mga instruksyon aron sa pagtimbang-timbang sa datos ug pagmugna og mga panagna o paghukom base sa mga sumbanan nga makita sa datos. Ang mas daghang datos nga gibansay sa modelo, mas tukma ang mga panagna niini.
Unsang Matang sa mga Modelo ang Atong Mabansay?
Atong tan-awon kung unsa ang sukaranan nga mga modelo sa pagkat-on sa makina.
- Linear Regression: usa ka modelo nga nagtagna sa usa ka padayon nga target variable gikan sa usa o daghan pa nga input variable.
- Mga Neural Network: usa ka network sa nalambigit nga mga node nga makakat-on sa pag-ila sa mga komplikadong pattern sa datos.
- Mga Desisyon nga Punoan: usa ka pamaagi sa paghimog desisyon nga gitukod sa usa ka kutay sa nagsanga nga kung-lain nga mga pahayag.
- Clustering: usa ka hugpong sa mga modelo nga naggrupo sa mga matandi nga mga punto sa datos base sa pagkaparehas.
- Logistic Regression: usa ka modelo alang sa binary classification nga mga problema diin ang target variable adunay duha ka potensyal nga kantidad.
- Mga Desisyon nga Punoan: usa ka pamaagi sa paghimog desisyon nga gitukod sa usa ka kutay sa nagsanga nga kung-lain nga mga pahayag.
- Random Forest: usa ka modelo sa ensemble nga gilangkuban sa daghang mga punoan sa desisyon. Kanunay kini nga gigamit alang sa mga aplikasyon sa klasipikasyon ug regression.
- K-Nearest Neighbors: usa ka modelo nga nagtagna sa target variable gamit ang k-pinakaduol nga mga punto sa datos sa set sa pagbansay.
Depende sa among problema ug dataset, kami ang magdesisyon kung unsang modelo sa pagkat-on sa makina ang labing haom sa among kahimtang. Bisan pa niana, kita mobalik niini sa ulahi. Karon, magsugod kita sa pagbansay sa atong modelo. Nanghinaut ko nga na-download na nimo ang set sa datos kung gusto nimo sundon ang among ehemplo.
Usab, girekomenda ko nga adunay Notebook ni Jupiter gi-install sa imong lokal nga makina ug gigamit kini alang sa imong mga proyekto sa pagkat-on sa makina.
1: Ipasabot ang problema
Ang unang yugto sa pagbansay sa pagkat-on sa makina Ang modelo naghubit sa isyu nga sulbaron. Naglangkob kini sa pagpili sa mga variable nga gusto nimo nga matagna (nailhan nga target variable) ug ang mga variable nga gamiton aron makamugna ang mga panagna (nailhan nga mga bahin o prediktor).
Kinahanglan ka usab nga magdesisyon kung unsang klase sa problema sa pagkat-on sa makina ang imong gisulayan nga sulbaron (klasipikasyon, pagbag-o, clustering, ug uban pa) ug kung unsang klase sa datos ang kinahanglan nimong kolektahon o mabansay ang imong modelo.
Ang matang sa modelo nga imong gigamit matino pinaagi sa matang sa problema sa pagkat-on sa makina nga imong gitinguha nga sulbaron. Klasipikasyon, regression, ug clustering mao ang tulo ka nag-unang mga kategoriya sa mga hagit sa pagkat-on sa makina. Kung gusto nimo nga matagna ang usa ka kategorya nga variable, sama sa kung ang usa ka email usa ka spam o dili, gigamit nimo ang klasipikasyon.
Kung gusto nimo nga magtagna sa usa ka padayon nga variable, sama sa presyo sa usa ka balay, gigamit nimo ang regression. Ang Clustering gigamit aron mahiusa ang mga ikatandi nga mga aytem sa datos base sa ilang pagkaparehas.
Kon atong tan-awon ang atong panig-ingnan; Ang among hagit mao ang pagtino sa gusto sa usa ka tawo nga istilo sa musika gikan sa ilang gender ug edad. Maggamit kami ug dataset sa 18 ka tawo para niini nga pananglitan ug impormasyon sa ilang edad, gender, ug paborito nga estilo sa musika.
2. Andama ang datos
Human nimo matino ang problema, kinahanglan nimo nga andamon ang datos alang sa pagbansay sa modelo. Naglangkob kini sa paglimpyo ug pagproseso sa datos. Busa, nga atong masiguro nga kini anaa sa usa ka format nga ang algorithm sa pagkat-on sa makina makagamit.
Mahimong maglakip kini sa mga kalihokan sama sa pagtangtang sa nawala nga mga kantidad, pagbag-o sa kategorya nga datos ngadto sa numerical data, ug pag-scale o pag-normalize sa datos aron masiguro nga ang tanan nga mga kinaiya anaa sa parehas nga sukod.
Pananglitan, mao kini kung giunsa nimo pagtangtang ang nawala nga mga kantidad:
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())
Gamay nga nota: Sa linya o "import pandas as pd",
gi-import namo ang library sa Pandas ug gi-assign kini sa alias nga "pd" aron mas sayon ang pag-refer sa mga function ug mga butang niini sa ulahi sa code.
Ang Pandas usa ka ilado nga module alang sa Python alang sa pagmaniobra ug pagtuki sa datos, labi na kung nagtrabaho uban ang istruktura o tabular nga datos.
Sa among pananglitan sa pagtino sa mga genre sa musika. Una namo nga i-import ang dataset. Gihinganlan nako kini og music.csv, bisan pa niana, mahimo nimo kining hinganlan sa imong gusto.
Aron maandam ang datos alang sa pagbansay sa usa ka modelo sa pagkat-on sa makina, gibahin namo kini sa mga hiyas (edad ug gender) ug mga tumong (genre sa musika).
Dugang namo nga bahinon ang mga datos ngadto sa 80:20 nga training ug testing sets aron masusi ang performance sa among modelo ug malikayan 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. Pagpili ug machine learning model.
Human nimo maandam ang datos, kinahanglang mopili ka ug machine-learning nga modelo nga haum sa imong buluhaton.
Adunay daghang mga algorithm nga pilion, sama sa mga punoan sa desisyon, logistic regression, pagsuporta sa mga vector machine, neural network, ug uban pa. Ang algorithm nga imong pilion matino pinaagi sa matang sa isyu nga imong gisulayan pagtubag, ang matang sa datos nga imong nabatonan, ug ang imong mga kinahanglanon sa pasundayag.
Maggamit mi ug decision tree classifier alang niini nga pananglitan tungod kay nagtrabaho mi sa problema sa klasipikasyon (pagtagna sa categorical data).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Ania ang usa ka pagtan-aw kung giunsa ang Decision Tree Classifier nagtrabaho:
4. Bansaya ang modelo
Mahimo nimong sugdan ang pagbansay sa modelo kung gipili nimo ang usa ka madawat nga algorithm sa pagkat-on sa makina. Naglangkob kini sa paggamit sa kaniadto nga nahimo nga datos aron matudloan ang algorithm kung giunsa paghimo ang mga panagna sa bag-o, wala pa makita nga datos.
Ang algorithm mag-usab sa iyang internal nga mga parameter sa panahon sa pagbansay aron mamenosan ang kalainan tali sa iyang gitagna nga mga bili ug ang aktwal nga mga bili sa datos sa pagbansay. Ang gidaghanon sa datos nga gigamit alang sa pagbansay, ingon man ang piho nga mga parameter sa algorithm, ang tanan adunay epekto sa katukma sa resulta nga modelo.
Sa among piho nga pananglitan, karon nga nakahukom na kami sa usa ka pamaagi, mahimo namong bansayon ang among modelo gamit ang datos sa pagbansay.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Timbang-timbanga ang modelo
Human mabansay ang modelo, kinahanglan nga susihon kini sa bag-ong datos aron masiguro nga kini tukma ug kasaligan. Naglangkob kini sa pagsulay sa modelo nga adunay mga datos nga wala magamit sa panahon sa pagbansay ug pagtandi sa giplano nga mga kantidad sa aktwal nga mga kantidad sa datos sa pagsulay.
Kini nga pagrepaso makatabang sa pag-ila sa bisan unsang mga depekto sa modelo, sama sa sobra nga pag-ayo o underfitting, ug mahimong mosangpot sa bisan unsang maayong pag-tune nga mahimong gikinahanglan.
Gamit ang datos sa pagsulay, atong susihon ang pagkahusto sa atong 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 katukma nga marka dili kaayo daotan sa pagkakaron. 🙂 Aron mapauswag ang imong marka sa katukma, mahimo nimong limpyohan kanunay ang mga datos o sulayan ang lainlaing mga modelo sa pagkat-on sa makina aron makita kung kinsa ang naghatag labing taas nga marka.
6. Pag-ayo sa modelo
Kung ang kaepektibo sa modelo dili igo, mahimo nimo kini mabag-o pinaagi sa pag-usab sa lainlaing mga parameter sa algorithm o pinaagi sa pag-eksperimento sa bag-ong mga algorithm.
Kini nga pamaagi mahimong maglakip sa pag-eksperimento sa alternatibong mga rate sa pagkat-on, pag-usab sa mga setting sa regularization, o pag-usab sa gidaghanon o gidak-on sa mga tinago nga mga layer sa usa ka neural network.
7. Gamita ang modelo
Kung nalipay ka sa pasundayag sa modelo, mahimo nimong sugdan ang paggamit niini aron makamugna mga panagna sa bag-ong datos.
Mahimong maglakip kini sa pagpakaon sa bag-ong datos sa modelo ug paggamit sa nakat-unan nga mga parameter sa modelo aron makamugna ang mga panagna sa kana nga datos, o pag-integrate sa modelo sa usa ka mas lapad nga aplikasyon o sistema.
Mahimo namong gamiton ang among modelo aron makamugna og mga panagna sa bag-ong datos human kami malipay sa katukma niini. Mahimo nimong sulayan ang lainlaing mga kantidad sa gender ug edad.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
wrap Up
Nahuman na namo ang pagbansay sa among unang modelo sa pagkat-on sa makina.
Nanghinaut ko nga nakaplagan nimo kini nga mapuslanon. Mahimo nimong sulayan ang paggamit sa lainlaing mga modelo sa pagkat-on sa makina sama sa Linear Regression o Random Forest.
Adunay daghang mga datos ug mga hagit sa Kaggle kung gusto nimo pauswagon ang imong coding ug pagsabot sa pagkat-on sa makina.
Leave sa usa ka Reply