You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/fi/2-Regression/1-Tools
localizeflow[bot] 079a792511
[da,no,fi] chore(i18n): sync translations
1 month ago
..
solution chore(i18n): sync translations with latest source changes (chunk 1/1, 300 changes) 7 months ago
README.md [da,no,fi] chore(i18n): sync translations 1 month ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 300 changes) 7 months ago
notebook.ipynb 🌐 Update translations via Co-op Translator 12 months ago

README.md

Aloita Pythonin ja Scikit-learnin kanssa regressiomallien tekeminen

Yhteenveto regressioista sketchnote-kuvana

Sketchnote tekijältä Tomomi Imura

Alkuverkkokysely

Tämä opetus on saatavilla myös R:llä!

Johdanto

Näissä neljässä oppitunnissa opit rakentamaan regressiomalleja. Keskustelemme pian, mihin niitä tarvitaan. Mutta ennen kuin aloitat, varmista, että sinulla on oikeat työkalut käytettävissä prosessin aloittamiseksi!

Tässä oppitunnissa opit:

  • Konfiguroimaan tietokoneesi paikallisia koneoppimistehtäviä varten.
  • Työskentelemään Jupyter Notebookien kanssa.
  • Käyttämään Scikit-learnia, mukaan lukien asennuksen.
  • Tutustumaan lineaariseen regressioon käytännön harjoituksen avulla.

Asennukset ja asetukset

Aloittelijoille ML - Valmistele työkalut koneoppimismallien rakentamista varten

🎥 Klikkaa yllä olevaa kuvaa lyhyen videon katsomiseksi, jossa käydään läpi tietokoneen konfigurointi ML:ää varten.

  1. Asenna Python. Varmista, että Python on asennettu tietokoneellesi. Käytät Pythonia monissa datatieteen ja koneoppimisen tehtävissä. Useimmissa tietokonejärjestelmissä on valmiiksi asennettuna Python. On myös hyödyllisiä Python-koodauspaketteja, jotka helpottavat asennusta joillekin käyttäjille.

    Joissakin Pythonin käyttötapauksissa tarvitaan yksi ohjelmistoversio, kun taas toiset vaativat toisen version. Tästä syystä on hyödyllistä työskennellä virtuaaliympäristössä.

  2. Asenna Visual Studio Code. Varmista, että sinulla on Visual Studio Code asennettuna tietokoneellesi. Noudata näitä ohjeita Visual Studio Coden asentamiseksi perusasennusta varten. Aiot käyttää Pythonia Visual Studio Codessa tässä kurssissa, joten saatat haluta kerrata, miten konfiguroidaan Visual Studio Code Python-kehitystä varten.

    Tutustu Pythonin käyttöön työskentelemällä tämän kokoelman Learn-moduulien parissa

    Pythonin asennus Visual Studio Codeen

    🎥 Klikkaa yllä olevaa kuvaa näyttääksesi videon Pythonin käytöstä VS Codessa.

  3. Asenna Scikit-learn seuraamalla näitä ohjeita. Koska sinun täytyy käyttää Python 3:sta, on suositeltavaa käyttää virtuaaliympäristöä. Huomaa, että jos asennat tätä kirjastoa M1-Macille, sivulla on erikoisohjeita.

  4. Asenna Jupyter Notebook. Sinun tulee asenna Jupyter-paketti.

ML:n kirjoitusympäristö

Aiot käyttää notebookeja Python-koodin kehittämiseen ja koneoppimismallien luomiseen. Tällainen tiedosto on yleinen työkalu datatieteilijöille, ja ne tunnistaa tiedostopäätteestä .ipynb.

Notebookit ovat interaktiivinen ympäristö, joka sallii kehittäjän sekä koodata että lisätä muistiinpanoja ja kirjoittaa dokumentaatiota koodin ympärille, mikä on hyödyllistä kokeellisissa tai tutkimuspainotteisissa projekteissa.

Aloittelijoille ML - Jupyter Notebookien asennus regressiomallien rakentamisen aloittamiseksi

🎥 Klikkaa yllä olevaa kuvaa lyhyen videon katsomiseksi, jossa käydään läpi tämä harjoitus.

Harjoitus - työskentely notebookin kanssa

Tässä kansiossa löydät tiedoston notebook.ipynb.

  1. Avaa notebook.ipynb Visual Studio Codessa.

    Jupyter-palvelin käynnistyy, jossa Python 3+ on aloittaen. Löydät notebookin alueita, joita voi ajaa, eli koodilohkoja. Voit ajaa koodilohkon valitsemalla painikkeen, joka näyttää toistopainikkeelta.

  2. Valitse md-ikoni ja lisää vähän markdown-koodia sekä seuraava teksti # Tervetuloa notebookiisi.

    Lisää seuraavaksi hieman Python-koodia.

  3. Kirjoita koodilohkoon print('hello notebook').

  4. Valitse nuoli koodin ajamiseksi.

    Näet tulosteen:

    hello notebook
    

VS Code, jossa notebook avoinna

Voit sijoittaa koodin väliin kommentteja dokumentoidaksesi notebookia itse.

Mieti hetki, kuinka erilainen web-kehittäjän työympäristö on verrattuna datatieteilijän ympäristöön.

Scikit-learn käyttöön

Nyt kun Python on asennettu paikalliseen ympäristöösi ja tunnet olosi mukavaksi Jupyter Notebookien kanssa, tutustutaan yhtä hyvin Scikit-learniin (lausutaan sci kuten science). Scikit-learn tarjoaa laajan API:n auttamaan ML-tehtävissä.

Heidän verkkosivustonsa mukaan "Scikit-learn on avoimen lähdekoodin koneoppimiskirjasto, joka tukee valvottua ja valvomattomia oppimista. Se tarjoaa myös työkaluja mallin sovittamiseen, datan esikäsittelyyn, mallin valintaan ja arviointiin sekä monia muita apuvälineitä."

Tässä kurssissa käytät Scikit-learnia ja muita työkaluja koneoppimismallien rakentamiseen niin sanottujen perinteisten koneoppimistehtävien suorittamiseen. Olemme tietoisesti välttäneet neuroverkkoja ja syväoppimista, jotka käsitellään paremmin tulevassa 'AI for Beginners' -oppiaineistossamme.

Scikit-learn tekee mallien rakentamisen ja arvioinnin helpoksi. Se keskittyy pääsääntöisesti numeerisen datan käyttöön ja sisältää valmiita datasettejä opetustarkoituksiin. Siinä on myös valmiita malleja opiskelijoiden kokeiltavaksi. Tutkitaan ensin, miten ladataan valmiiksi pakattua dataa ja käytetään sisäänrakennettua estimaattoria ensimmäisen Scikit-learn -mallin kanssa perusdatan avulla.

Harjoitus - ensimmäinen Scikit-learn -notebookisi

Tämä opetus on inspiroitunut Scikit-learnin verkkosivun lineaarisen regression esimerkistä.

Aloittelijoille ML - Ensimmäinen projektisi lineaarisessa regressiossa Pythonilla

🎥 Klikkaa yllä olevaa kuvaa lyhyen videon katsomiseksi, jossa käydään läpi tämä harjoitus.

Tyhjennä kaikki solut notebook.ipynb -tiedostosta painamalla 'roskakorin' kuvaketta.

Tässä osassa työskentelet pienen diabetesaiheisen datasetin kanssa, joka on osa Scikit-learnia opetustarkoituksiin. Kuvittele, että haluaisit testata hoitokeinoa diabeetikoilla. Koneoppimismallit voivat auttaa määrittämään, mitkä potilaat reagoisivat hoitoon paremmin eri muuttujayhdistelmien perusteella. Jo hyvin peruskäyttöinen regressiomalli, kun se visualisoidaan, voi näyttää tietoja muuttujista, jotka auttaisivat teoreettisten kliinisten kokeiden järjestämistä.

Regressiomenetelmiä on monia, ja valinta riippuu etsimästäsi vastauksesta. Jos haluat ennustaa tietyn ikäisen henkilön mahdollisen pituuden, käytät lineaarista regressiota, koska tarvitset numeerisen arvon. Jos taas haluat selvittää, pitäisikö erään ruokalajin luokitella vegaaniseksi, etsit kategorian määrittämistä ja käyttäisit logistista regressiota. Opit logistisesta regressiosta myöhemmin. Mieti hieman kysymyksiä, joita voit dataan esittää, ja mitkä menetelmät olisivat sopivimpia.

Aloitetaan tehtävästä.

Kirjastojen tuonti

Tätä tehtävää varten tuotamme joitakin kirjastoja:

  • matplotlib. Se on hyödyllinen graafinen työkalu, jota käytämme viivakaavion luomiseen.
  • numpy. numpy on hyödyllinen kirjasto numeerisen datan käsittelyyn Pythonissa.
  • sklearn. Tämä on Scikit-learn -kirjasto.

Tuo joitakin kirjastoja tehtävien tueksi.

  1. Lisää tuontikoodit kirjoittamalla seuraava koodi:

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets, linear_model, model_selection
    

    Yllä tuot matplotlibin, numpyn ja datasets, linear_model sekä model_selection tuodaan sklearnista. model_selection on tarkoitettu datan jakamiseen harjoitus- ja testisarjoihin.

Diabetes-datasetti

Sisäänrakennettu diabetes-datasetti sisältää 442 näytettä diabetesta koskevaa dataa, 10 piirre-muuttujaa, joista osa on:

  • age: ikä vuosissa
  • bmi: painoindeksi
  • bp: keskimääräinen verenpaine
  • s1 tc: T-solut (eräs valkosolutyyppi)

Tämä datasetti sisältää 'sukupuoli' -käsitteen piirre-muuttujana, mikä on tärkeä diabetestutkimuksissa. Monet lääketieteelliset datasetit sisältävät tällaisen binaariluokittelun. Mieti hetki, miten tällaiset luokitukset voivat sulkea pois osia väestöstä hoidoista.

Ladataan nyt X- ja y-data.

🎓 Muista, että tämä on valvottua oppimista, ja tarvitsemme nimettyä 'y' kohdetta.

Lisää uuteen koodisoluun diabetes-datasetin latauskutsu load_diabetes(). Parametri return_X_y=True tarkoittaa, että X on datamatriisi ja y on regressiokohde.

  1. Lisää print-komennot näyttämään datamatriisin muoto ja sen ensimmäinen alkio:

    X, y = datasets.load_diabetes(return_X_y=True)
    print(X.shape)
    print(X[0])
    

    Saat vastauksena tuplen. Teet siten, että tuple:n kaksi ensimmäistä arvoa annetaan muuttujille X ja y. Lue lisää tupleista.

    Näet, että data sisältää 442 kohdetta, joissa kussakin on 10 alkiota taulukkona:

    (442, 10)
    [ 0.03807591  0.05068012  0.06169621  0.02187235 -0.0442235  -0.03482076
    -0.04340085 -0.00259226  0.01990842 -0.01764613]
    

    Mieti hetki datan ja regressiokohteen välistä suhdetta. Lineaarinen regressio ennustaa suhteita piirteiden X ja kohde-muuttujan y välillä. Löydätkö kohteen diabetes-datakokonaisuudesta dokumentaatiosta? Mitä datasetti esittää kyseisen kohteen perusteella?

  2. Valitse seuraavaksi osa tästä datasetistä plottia varten valitsemalla datan 3. sarake. Voit tehdä sen käyttämällä :-operaattoria kaikkien rivien valitsemiseen ja sitten 3. sarakkeen valitsemiseen indeksillä (2). Voit myös muotoilla datan uudelleen 2-ulotteiseksi taulukoksi - joka vaaditaan plottia varten - käyttäen reshape(n_rivit, n_sarakkeet). Jos jompikumpi parametristä on -1, vastaava ulottuvuus lasketaan automaattisesti.

    X = X[:, 2]
    X = X.reshape((-1,1))
    

    Tulosta milloin tahansa data tarkistaaksesi sen muodon.

  3. Nyt kun sinulla on data valmiina plottiin, voit kokeilla, voisiko kone auttaa määrittämään loogisen rajan lukujen välille tässä datasetissä. Tätä varten sinun täytyy jakaa sekä data (X) että kohde (y) testiin ja harjoitusjoukkoon. Scikit-learn tarjoaa yksinkertaisen tavan tehdä tämä, avulla voit jakaa testidatan tietystä kohdasta.

    X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
    
  4. Nyt olet valmis kouluttamaan mallisi! Lataa lineaarinen regressiomalli ja kouluta se X- ja y-harjoitusjoukoillasi käyttämällä model.fit()-funktiota:

    model = linear_model.LinearRegression()
    model.fit(X_train, y_train)
    

    model.fit()-funktion näet monissa ML-kirjastoissa, kuten TensorFlowssa

  5. Tee sitten ennuste testidatalle funktiolla predict(). Tätä käytetään piirtämään viiva dataryhmien väliin.

    y_pred = model.predict(X_test)
    
  6. On aika näyttää data plottina. Matplotlib on erittäin hyödyllinen tähän tehtävään. Luo hajontakuvio kaikista X- ja y-testidatasta ja käytä ennustetta piirtääksesi viiva mahdollisimman sopivaan kohtaan mallin dataryhmien välille.

    plt.scatter(X_test, y_test,  color='black')
    plt.plot(X_test, y_pred, color='blue', linewidth=3)
    plt.xlabel('Scaled BMIs')
    plt.ylabel('Disease Progression')
    plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
    plt.show()
    

    hajontakuvio, joka näyttää datapisteitä diabetestä koskien

    Mieti hetki, mitä tässä tapahtuu. Suora viiva kulkee monien pienten datapisteiden läpi, mutta mitä se tarkalleen tekee? Näetkö, miten tämän viivan pitäisi pystyä ennustamaan, mihin uusi, näkymätön datapiste sopisi suhteen kuvaajan y-akseliin? Yritä muotoilla käytännön hyöty tämän mallin käytöstä.

Onnittelut, rakensit ensimmäisen lineaarisen regressiomallisi, teit sillä ennusteen ja näytit sen kuvaajassa!


🚀Haaste

Kuvioi toinen muuttuja tästä aineistosta. Vihje: muokkaa tätä riviä: X = X[:,2]. Kun otetaan huomioon tämän aineiston tavoite, mitä voit havaita diabeteksen etenemisestä sairautena?

Luentotestin jälkeinen visailu

Kertaus & Itseopiskelu

Tässä tutoriaalissa työskentelit yksinkertaisen lineaarisen regressiomallin kanssa, etkä univariaatin tai moninkertaisen lineaarisen regressiomallin kanssa. Lue hieman näiden menetelmien eroista tai tutustu tähän videoon

Lue lisää regressiokäsitteestä ja pohdi, millaisia kysymyksiä tällä tekniikalla voidaan vastata. Käy tämä tutoriaali syventääksesi ymmärrystäsi.

Tehtävä

Eri aineisto


Vastuuvapauslauseke: Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielellä on virallinen lähde. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.