Ar norėtumėte pradėti nuo mašininis mokymasis?
Sukūriau paprastą ir lengvą mokymo programą visiškai pradedantiesiems. Kartu apžvelgsime pagrindinius mašininio mokymosi modelio mokymo veiksmus.
Aiškindamas modelio mokymo žingsnius po vieną, taip pat pateiksiu labai paprastą mašininio mokymosi problemos pavyzdį. Taigi, jei norite sekti, galite atsisiųsti šį pavyzdinį duomenų rinkinį iš čia ryšys.
Tai tik pavyzdinis duomenų rinkinys, padėsiantis pradėti mašininį mokymąsi.
Turime 18 vertybių, skirtų įvairaus amžiaus ir lyties žmonėms, kurių mėgstama muzika yra apibrėžta. Naudodami „amžiaus“ ir „lyties“ ypatybes bandysime atspėti, kuris muzikos žanras yra jų mėgstamiausias.
Pastaba: 1 ir 0 šiame duomenų rinkinyje priskiriamos lytims kaip moterims ir vyrams.
Tačiau jei nenorite sekti pavyzdžiu, tai taip pat yra puiku. Aš išsamiai paaiškinsiu visus šiuos veiksmus. Taigi, pasinerkime!
Pirmieji dalykai, kuriuos reikia žinoti
Prieš eidami į modelio mokymo etapus, paaiškinkime kai kuriuos dalykus. Mašininis mokymasis yra dirbtinis intelektas disciplina, orientuota į algoritmų, galinčių mokytis iš duomenų, kūrimą.
Norėdami tai padaryti, mašininio mokymosi modeliai mokomi naudojant duomenų rinkinį, kuris moko modelį, kaip atlikti teisingas prognozes arba klasifikacijos apie naujus, anksčiau nežinomus duomenis.
Taigi, kas yra šie modeliai? A mašininio mokymosi modelis yra panašus į receptą, kurį kompiuteris naudoja duomenų prognozėms ar pasirinkimams generuoti.
Modelis, kaip ir receptas, vadovaujasi instrukcijų rinkiniu, kad įvertintų duomenis ir generuotų prognozes ar sprendimus pagal duomenų šablonus. Kuo daugiau duomenų apmokomas modelis, tuo tikslesnės jo prognozės.
Kokius modelius galime treniruoti?
Pažiūrėkime, kokie yra pagrindiniai mašininio mokymosi modeliai.
- Tiesinė regresija: modelis, numatantis nuolatinį tikslinį kintamąjį iš vieno ar daugiau įvesties kintamųjų.
- Neuroniniai tinklai: susietų mazgų tinklas, galintis išmokti aptikti sudėtingus duomenų modelius.
- Sprendimų medžiai: sprendimų priėmimo metodas, pagrįstas šakojančių „jei-kita“ teiginių grandine.
- Klasterizavimas: modelių rinkinys, grupuojantis palyginamus duomenų taškus pagal panašumą.
- Logistinė regresija: dvejetainių klasifikavimo problemų modelis, kuriame tikslinis kintamasis turi dvi potencialias reikšmes.
- Sprendimų medžiai: sprendimų priėmimo metodas, pagrįstas šakojančių „jei-kita“ teiginių grandine.
- Atsitiktinis miškas: ansamblio modelis, sudarytas iš daugybės sprendimų medžių. Jie dažnai naudojami klasifikavimo ir regresijos programoms.
- K-artimiausi kaimynai: modelis, numatantis tikslinį kintamąjį, naudojant k-arčiausius duomenų taškus mokymo rinkinyje.
Atsižvelgdami į mūsų problemą ir duomenų rinkinį, nusprendžiame, kuris mašininio mokymosi modelis labiausiai atitinka mūsų situaciją. Tačiau prie to grįšime vėliau. Dabar pradėkime treniruoti savo modelį. Tikiuosi, kad jau atsisiuntėte duomenų rinkinys jei norėtumėte pasekti mūsų pavyzdžiu.
Taip pat rekomenduoju turėti „Jupyter“ užrašų knygelė įdiegtas vietiniame kompiuteryje ir naudojamas mašininio mokymosi projektams.
1: apibrėžkite problemą
Pirmasis etapas m mašininio mokymosi mokymas modelis apibrėžia problemą, kurią reikia išspręsti. Tai reiškia, kad reikia pasirinkti kintamuosius, kuriuos norite prognozuoti (žinomus kaip tikslinis kintamasis), ir kintamuosius, kurie bus naudojami toms prognozėms generuoti (vadinamomis ypatybėmis arba prognozėmis).
Taip pat turėtumėte nuspręsti, kokią mašininio mokymosi problemą bandote išspręsti (klasifikavimas, regresija, grupavimas ir t. t.) ir kokio tipo duomenų jums reikės rinkti ar gauti, kad išmokytumėte savo modelį.
Tai, kokį modelį naudosite, priklausys nuo mašininio mokymosi problemos, kurią norite išspręsti, tipo. Klasifikavimas, regresija ir grupavimas yra trys pagrindinės kategorijos mašininio mokymosi iššūkiai. Jei norite numatyti kategorinį kintamąjį, pvz., ar el. laiškas yra šlamštas, ar ne, naudokite klasifikaciją.
Kai norite prognozuoti nuolatinį kintamąjį, pvz., namo kainą, naudojate regresiją. Klasterizavimas naudojamas palyginamiems duomenų elementams sujungti pagal jų bendrumus.
Jei pažvelgsime į mūsų pavyzdį; mūsų iššūkis yra nustatyti žmogaus pageidaujamą muzikinį stilių pagal jo lytį ir amžių. Šiam pavyzdžiui naudosime 18 žmonių duomenų rinkinį ir informaciją apie jų amžių, lytį ir mėgstamą muzikos stilių.
2. Paruoškite duomenis
Nurodę problemą, turėsite paruošti duomenis modeliui apmokyti. Tai apima duomenų valymą ir apdorojimą. Taigi, kad galėtume užtikrinti, kad jis būtų tokio formato, kaip mašininio mokymosi algoritmas gali naudoti.
Tai gali apimti tokias veiklas kaip trūkstamų reikšmių ištrynimas, kategorinių duomenų transformavimas į skaitinius duomenis ir duomenų mastelio keitimas arba normalizavimas, siekiant užtikrinti, kad visos charakteristikos būtų tos pačios skalės.
Pavyzdžiui, taip ištrinate trūkstamas reikšmes:
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())
Maža pastaba: eilutėje o “import pandas as pd",
importuojame Pandas biblioteką ir priskiriame jai slapyvardį „pd“, kad vėliau kode būtų lengviau nurodyti jos funkcijas ir objektus.
„Pandas“ yra gerai žinomas „Python“ duomenų apdorojimo ir analizės modulis, ypač dirbant su struktūriniais arba lentelės duomenimis.
Mūsų muzikos žanrų nustatymo pavyzdyje. Pirmiausia importuosime duomenų rinkinį. Pavadinau jį music.csv, tačiau galite pavadinti taip, kaip norite.
Norėdami paruošti mašininio mokymosi modelio mokymo duomenis, suskirstome juos į atributus (amžių ir lytį) ir tikslus (muzikos žanras).
Duomenis papildomai suskirstysime į 80:20 treniruočių ir testavimo rinkinius, kad įvertintume savo modelio veikimą ir išvengtume permontavimo.
# 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. Pasirinkite mašininio mokymosi modelį.
Paruošę duomenis, turite pasirinkti mašininio mokymosi modelį, atitinkantį jūsų užduotį.
Galima rinktis iš kelių algoritmų, tokių kaip sprendimų medžiai, logistinė regresija, paramos vektorinės mašinos, neuroniniai tinklai ir kt. Pasirinktas algoritmas priklausys nuo problemos, kurią bandote išspręsti, tipo, turimų duomenų tipo ir našumo poreikių.
Šiame pavyzdyje naudosime sprendimų medžio klasifikatorių, nes dirbame su klasifikavimo problema (numatydami kategorinius duomenis).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Štai vizualizacija, kaip veikia sprendimų medžio klasifikatorius:
4. Treniruokite modelį
Galite pradėti mokyti modelį, kai pasirinksite priimtiną mašininio mokymosi algoritmą. Tam reikia panaudoti anksčiau sugeneruotus duomenis, kad būtų išmokytas algoritmas, kaip prognozuoti naujus, anksčiau nematytus duomenis.
Algoritmas modifikuoja savo vidinius parametrus treniruotės metu, kad sumažintų skirtumą tarp numatomų verčių ir faktinių treniruočių duomenų verčių. Duomenų, naudojamų mokymui, kiekis, taip pat specifiniai algoritmo parametrai gali turėti įtakos gauto modelio tikslumui.
Mūsų konkrečiame pavyzdyje dabar, kai nusprendėme dėl metodo, galime parengti savo modelį naudodami mokymo duomenis.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Įvertinkite modelį
Kai modelis buvo išmokytas, jis turi būti įvertintas remiantis naujais duomenimis, siekiant užtikrinti, kad jis yra tikslus ir patikimas. Tam reikia išbandyti modelį naudojant duomenis, kurie nebuvo panaudoti treniruočių metu, ir lyginti jo prognozuojamas vertes su tikrosiomis bandymo duomenų vertėmis.
Ši peržiūra gali padėti nustatyti bet kokius modelio trūkumus, pvz., perdėtą ar netinkamą pritaikymą, ir gali prireikti patikslinti.
Naudodami testavimo duomenis įvertinsime savo modelio teisingumą.
# 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)
Taiklumo balas kol kas ne toks jau prastas. 🙂 Norėdami pagerinti savo tikslumo balą, visada galite daugiau išvalyti duomenis arba išbandyti skirtingus mašininio mokymosi modelius, kad sužinotumėte, kuris iš jų duoda aukščiausią balą.
6. Tiksliai sureguliuokite modelį
Jei modelio efektyvumas nėra pakankamas, galite jį tiksliai sureguliuoti keisdami įvairius algoritmo parametrus arba visiškai eksperimentuodami su naujais algoritmais.
Ši procedūra gali apimti eksperimentavimą su alternatyviais mokymosi tempais, reguliavimo nustatymų keitimą arba paslėptų sluoksnių skaičiaus ar dydžio keitimą neuroniniame tinkle.
7. Naudokite modelį
Kai būsite patenkinti modelio našumu, galite pradėti jį naudoti kurdami naujų duomenų prognozes.
Tai gali apimti naujų duomenų įvedimą į modelį ir modelio išmoktų parametrų panaudojimą tų duomenų prognozėms generuoti arba modelio integravimą į platesnę programą ar sistemą.
Mes galime naudoti savo modelį naujų duomenų prognozėms generuoti, kai esame patenkinti jo tikslumu. Galite išbandyti skirtingas lyties ir amžiaus vertybes.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Apvynioti
Baigėme mokyti savo pirmąjį mašininio mokymosi modelį.
Tikiuosi, kad tai buvo naudinga. Dabar galite pabandyti naudoti skirtingus mašininio mokymosi modelius, pvz., tiesinę regresiją arba atsitiktinį mišką.
Yra daug duomenų rinkinių ir iššūkių Kabinti jei norite pagerinti savo kodavimą ir supratimą apie mašininį mokymąsi.
Palikti atsakymą