Scikit Learn tutorial: Helppo opas koneoppimiseen
Scikit Learn on yksi suosituimmista Python-kirjastoista koneoppimisen ja datatieteiden alalla. Se tarjoaa tehokkaita työkaluja monenlaisiin koneoppimisen tehtäviin, kuten luokitteluun, regressioon ja klusterointiin. Tässä artikkelissa tutustumme Scikit Learnin perusteisiin ja käymme läpi, kuinka voit käyttää sitä omissa projekteissasi.
Scikit Learnin asennus
Ennen kuin voimme aloittaa Scikit Learnin käytön, meidän täytyy asentaa se. Asennus on hyvin yksinkertaista, ja se voidaan tehdä helposti Pythonin pip-paketinhallinnan avulla. Avaa komentorivisi ja suorita seuraava komento:
pip install scikit-learn
Jos käytät Anacondaa, voit asentaa sen myös conda-paketinhallinnan avulla seuraavalla komennolla:
conda install scikit-learn
Kun asennus on valmis, voit aloittaa Scikit Learnin käytön Python-koodissasi.
Ensimmäinen esimerkki: Lineaarinen regressio
Scikit Learnin avulla voimme helposti luoda koneoppimismalleja. Aloitetaan yksinkertaisella esimerkillä: lineaarinen regressio. Lineaarinen regressio on malli, joka ennustaa jatkuvia arvoja, kuten esimerkiksi asunnon hintaa pinta-alan mukaan.
Luodaan ensin yksinkertainen datasetti, jossa on satunnaisia lukuja. Käytämme NumPy-kirjastoa, joka on kätevä työkalu matemaattisiin laskelmiin Pythonissa.
import numpy as np from sklearn.linear_model import LinearRegression # Luodaan esimerkkidata X = np.array([[1], [2], [3], [4], [5]]) # Itsellinen muuttuja (esim. pinta-ala) y = np.array([1, 2, 1.3, 3.75, 2.25]) # Ennustettava arvo (esim. hinta) # Luodaan malli ja sovitetaan se dataan model = LinearRegression() model.fit(X, y) # Ennustetaan uuden datan arvo prediction = model.predict([[6]]) print(prediction)
Tässä esimerkissä meillä on datasetti, jossa on yksi syöte (X) ja yksi ennustettava arvo (y). Luomme lineaarisen regression mallin ja sovitamme sen dataan. Lopuksi käytämme mallia ennustamaan arvon, kun syöte on 6.0.
Scikit Learnin perusteet: Luokittelu
Scikit Learn ei ole vain regressiota varten, vaan se tarjoaa myös työkaluja luokittelutehtäviin. Luokittelu tarkoittaa sen selvittämistä, mihin luokkaan uusi havainto kuuluu. Yksi tunnetuimmista luokittelumenetelmistä on logistinen regressio.
Seuraavassa esimerkissä luomme luokittelumallin, joka käyttää tunnettua Iris-kukadatasettiä. Tämä datasetti sisältää tietoja eri kukkaluokkien ominaisuuksista, kuten petalin ja sepalin pituus ja leveys.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# Ladataan Iris datasetti
iris = load_iris()
X = iris.data
y = iris.target
# Jaetaan data koulutus- ja testisetteihin
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Luodaan logistisen regression malli ja koulutetaan se
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# Ennustetaan testisetin tulokset
y_pred = model.predict(X_test)
# Lasketaan tarkkuus
accuracy = accuracy_score(y_test, y_pred)
print(f'Malli ennustaa oikein {accuracy * 100:.2f}% testihavainnoista.')
Tässä esimerkissä luomme luokittelumallin, joka ennustaa Iris-kukan luokan sen ominaisuuksien perusteella. Käytämme logistista regressiota ja jaamme datasetin koulutus- ja testisetteihin. Testaamme mallin tarkkuuden ja tulostamme sen.
Scikit Learnin edistyneemmät ominaisuudet
Scikit Learn ei rajoitu vain perusmallien käyttöön. Se tarjoaa monia edistyneempiä ominaisuuksia, kuten parametrin virittämisen (tuning) ja mallien validoinnin. Näiden työkalujen avulla voit parantaa mallisi tarkkuutta ja tehdä siitä luotettavamman.
Esimerkiksi, voit käyttää GridSearchCV-luokkaa etsimään parhaiten soveltuvat hyperparametrit mallillesi. Tämä voi olla hyödyllistä esimerkiksi silloin, kun kokeilet eri algoritmeja tai haluat optimoida mallisi suorituskyvyn.
from sklearn.model_selection import GridSearchCV
# Määritetään hyperparametrit, joita haluamme kokeilla
param_grid = {'C': [0.1, 1, 10], 'max_iter': [100, 200, 300]}
# Luodaan GridSearchCV objekti
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)
# Koulutetaan malli
grid_search.fit(X_train, y_train)
# Tulostetaan paras löydetty malli
print(f'Paras malli: {grid_search.best_estimator_}')
Tässä esimerkissä käytämme GridSearchCV:tä etsimään parhaiten toimivat hyperparametrit logistiselle regression mallille. GridSearchCV käy läpi kaikki mahdolliset parametriyhdistelmät ja valitsee parhaan. Tämä voi merkittävästi parantaa mallin tarkkuutta.
Yhteenveto ja seuraavat askeleet
Scikit Learn on erittäin tehokas ja monipuolinen työkalu koneoppimiseen Pythonissa. Olemme tässä artikkelissa käyneet läpi perusmallit, kuten lineaarisen regression ja logistisen regression, sekä joitain edistyneempiä ominaisuuksia kuten hyperparametrien virittäminen.
Jos olet kiinnostunut syventymään Scikit Learnin käyttöön, suosittelen tutustumaan virallisiin dokumentaatioihin ja kokeilemaan omia projektejasi. Voit myös kokeilla muita algoritmeja, kuten tuki-vektori-koneita (SVM), päätöksentekopuita ja klusterointimenetelmiä, kuten k-means.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!