Kaip įdiegti tiesinę regresiją mašininiam mokymuisi?



Šiame straipsnyje aptariama mašininio mokymosi linijinės regresijos sąvoka su įvairiomis terminijomis ir naudojimo atvejis linijinei regresijai įgyvendinti.

Pagrindinis dėmesys sukasi aplink įvesties ir išvesties kintamuosius, naudodamas algoritmą rezultatui numatyti. Jei paveikslėlyje atsiranda naujas įvesties kintamasis. Linijinis regresijos algoritmas yra prižiūrima mokymosi technika, skirta apytiksliai įvertinti žemėlapio funkciją, kad gautumėte geriausias prognozes. Šiame straipsnyje sužinosime apie tiesinę mašininio mokymosi regresiją. Šiame tinklaraštyje aptariamos šios temos.

Kas yra regresija?

Pagrindinis regresijos tikslas yra sukurti efektyvų modelį, leidžiantį numatyti priklausomus požymius iš daugybės atributų kintamųjų. Regresijos problema yra tada, kai išvesties kintamasis yra realus arba ištisinis, t. Y. Atlyginimas, svoris, plotas ir kt.





Mes taip pat galime apibrėžti regresiją kaip statistinę priemonę, kuri naudojama tokiose programose kaip būstas, investavimas ir kt. Ji naudojama prognozuoti priklausomo kintamojo ir daugybės nepriklausomų kintamųjų ryšį. Pažvelkime į įvairius regresijos metodus.

mašininio mokymosi linijinės regresijos pavyzdys - edureka

Regresijos tipai

Toliau pateikiami regresijos tipai.



  1. Paprasta tiesinė regresija
  2. Polinominė regresija
  3. Palaikykite vektorinę regresiją
  4. Sprendimų medžio regresija
  5. Atsitiktinė miško regresija

Paprasta tiesinė regresija

Viena įdomiausių ir labiausiai paplitusių regresijos metodų yra paprasta tiesinė regresija. Tuo mes prognozuojame priklausomo kintamojo rezultatą, remdamiesi nepriklausomais kintamaisiais, santykis tarp kintamųjų yra tiesinis. Vadinasi, žodis tiesinė regresija.

paprastas hashmap diegimas java

Polinominė regresija

Taikant šią regresijos techniką, pradines ypatybes paverčiame tam tikro laipsnio polinominėmis savybėmis, tada atliekame jos regresiją.

Palaikykite vektorinę regresiją

Dėl regresija arba SVR, mes identifikuojame hiper plokštumą su didžiausia paraštėmis, kad maksimalus duomenų taškų skaičius būtų tose paraštėse. Jis yra gana panašus į atraminių vektorių mašinų klasifikavimo algoritmą.



Sprendimų medžio regresija

Į gali būti naudojamas tiek regresijai, tiek . Regresijos atveju mes naudojame ID3 algoritmą (Iterative Dichotomiser 3), kad nustatytume dalijantį mazgą, sumažinant standartinį nuokrypį.

Atsitiktinė miško regresija

Atsitiktinės miško regresijos metu mes sujungiame kelių sprendimų medžių regresijų prognozes. Dabar, kai žinome apie skirtingas regresijos rūšis, išsamiai pažvelkime į paprastą tiesinę regresiją.

Kas yra tiesinė regresija?

Paprasta tiesinė regresija yra regresijos metodas, kai nepriklausomas kintamasis turi tiesinį ryšį su priklausomu kintamuoju. Diagramoje esanti tiesė yra geriausiai tinkanti linija. Pagrindinis paprastos tiesinės regresijos tikslas yra atsižvelgti į pateiktus duomenų taškus ir nubrėžti geriausiai tinkančią liniją, kuri geriausiai atitiktų modelį.

Prieš pereidami prie to, kaip veikia tiesinės regresijos algoritmas, pažvelkime į keletą svarbių paprastos tiesinės regresijos terminų.

Linijinės regresijos terminijos

Šias terminologijas svarbu žinoti prieš pereinant prie tiesinės regresijos algoritmo.

Sąnaudų funkcija

Tinkamiausia linija gali būti pagrįsta žemiau pateikta linijine lygtimi.

  • Priklausomas kintamasis, kurį reikia numatyti, žymimas Y.
  • Linija, liečianti y ašį, žymima perėmimu b0.
  • bvienasyra tiesės nuolydis, x reiškia nepriklausomus kintamuosius, kurie lemia Y prognozavimą.
  • Rezultato prognozės paklaida žymima e.

Sąnaudų funkcija pateikia geriausias įmanomas b reikšmes0ir bvienaskad duomenų taškams būtų tinkamiausia linija. Mes tai darome konvertuodami šią problemą į minimizavimo problemą, kad gautume geriausias b reikšmes0ir bvienas. Šioje problemoje sumažinama klaida tarp faktinės vertės ir numatomos vertės.

Mes pasirenkame aukščiau esančią funkciją, kad sumažintume klaidą. Mes išlyginame klaidų skirtumą ir susumuojame klaidą per visus duomenų taškus, padalijimą tarp bendro duomenų taškų skaičiaus. Tada sukurta vertė pateikia visų duomenų taškų vidutinę kvadratinę paklaidą.

Jis taip pat žinomas kaip MSE (Mean Squared Error) ir mes keičiame b reikšmes0ir bvienaskad MSE reikšmė būtų nustatyta minimaliai.

Gradiento nusileidimas

Kita svarbi terminologija, suprantanti tiesinę regresiją, yra gradientinis nusileidimas. Tai b atnaujinimo metodas0ir bvienasvertės, siekiant sumažinti MSE. Idėja yra nuolat kartoti b0ir bvienasreikšmes, kol MSE sumažinsime iki minimumo.

Norėdami atnaujinti b0ir bvienas, gradientus imame iš sąnaudų funkcijos. Norėdami rasti šiuos gradientus, imame dalinius darinius b atžvilgiu0ir bvienas. Šie daliniai dariniai yra gradientai ir naudojami atnaujinti b reikšmes0ir bvienas.

Mažesnis mokymosi greitis priartėja prie minimumo, tačiau tam reikia daugiau laiko ir didesnio mokymosi greičio atveju. Laikas užtrunka greičiau, tačiau yra galimybė viršyti minimalią vertę. Dabar, kai išgyvename tiesinės regresijos terminologiją, pažvelkime į keletą linijinės regresijos privalumų ir trūkumų mokymuisi mašina.

Privalumai ir trūkumai

Privalumai Trūkumai
Linijinė regresija yra ypač gera tiesiškai atskiriamiems duomenimsLinijiškumo tarp priklausomų ir nepriklausomų kintamųjų prielaida
Lengviau įgyvendinti, interpretuoti ir efektyviai mokytiDažnai jis yra gana linkęs į triukšmą ir per daug
Jis gana gerai susidoroja su per dideliu montavimu, naudodamas matmenų mažinimo metodus, reguliavimą ir kryžminį patvirtinimąLinijinė regresija yra gana jautri pašaliniams rodikliams
Dar vienas privalumas yra ekstrapoliacija už konkretaus duomenų rinkinio ribųTai yra linkusi į daugialypiškumą

Linijinės regresijos naudojimo atvejai

  • Pardavimų prognozavimas

  • Rizikos analizė

  • Būsto paraiškos numatyti kainas ir kitus veiksnius

    c ++ rūšiavimo sąrašas
  • Finansų programos numatyti akcijų kainas, investicijų vertinimą ir kt.

Pagrindinė tiesinės regresijos idėja yra rasti priklausomų ir nepriklausomų kintamųjų ryšį. Jis naudojamas norint gauti geriausią pritaikymo liniją, kuri nuspėtų rezultatą su mažiausiomis klaidomis. Linijinę regresiją galime naudoti paprastose realiose situacijose, pavyzdžiui, numatant SAT balus atsižvelgiant į studijų valandų skaičių ir kitus lemiamus veiksnius.

Atsižvelgdami į tai, pažvelkime į naudojimo atvejį.

Naudojimo atvejis - tiesinės regresijos įgyvendinimas

Procesas vyksta šiais veiksmais:

  1. Įkeliami duomenys
  2. Duomenų tyrimas
  3. Duomenų pjaustymas
  4. Traukinio ir padalijimo duomenys
  5. Generuoti modelį
  6. Įvertinkite tikslumą

Panagrinėkime kiekvieno žingsnio detales, kad įgyvendintume tiesinę regresiją.

1. Duomenų įkėlimas

Mes galime pradėti nuo pagrindinių diabeto duomenų rinkinio, kuris jau yra sklearn (scikit-learn) duomenų rinkinių modulyje, kad galėtume pradėti savo kelionę tiesine regresija.

iš „sklearn“ importuoti duomenų rinkinius liga = duomenų rinkiniai.load_diabetes () spausdinti (liga)

Išvestis:

2. Duomenų tyrimas

Baigę įkelti duomenis, galime pradėti tyrinėti paprasčiausiai patikrinę etiketes naudodami šį kodą.

spausdinti (liga. raktai ())

Išvestis:

Aukščiau pateiktas kodas suteikia visas etiketes iš duomenų rinkinio, po to mes galime supjaustyti duomenis taip, kad galų gale galėtume nubrėžti liniją. Mes taip pat naudosime visus duomenų taškus, kol kas iš duomenų supjaustysime 2 stulpelį.

importuoti numerį kaip np liga_X = liga.duomenys [:, np.newaxis, 2] spausdinti (liga_X)

Išvestis:

Po šio veiksmo duomenis padalinsime į traukinį ir bandymų rinkinį.

3. Duomenų padalijimas

liga_X_traukinys = liga_X [: - 30] liga_X_testas = liga_X [-20:] liga_Y_traukinys = liga.tikslas [: - 30] liga_Y_testas = liga.tikslas [-20:]

Kita dalis apima modelio generavimą, kuris apims „line_model“ importavimą iš „sklearn“.

4. Modelio generavimas

programa pakeisti skaičių java
from sklearn import line_model reg = linear_model.LinearRegression () reg.fit (ligos_X_traukinys, ligos_Y_traukinys) y_predict = reg.predict (ligos_X_testas)

Norėdami įvertinti modelio tikslumą, naudosime „scikit-learn“ vidutinę kvadrato paklaidą.

5. Įvertinimas

tikslumas = vidutinis_kvadratas_klaidos (ligos_Y_testas, y_prognozė) spausdinimas (tikslumas) svoriai = reg.coef_ perimamas = reg.intercept_ spausdinimas (svoriai, perėmimas)

Išvestis:

Kad grafike būtų aiškiau, kaip duomenų taškai atrodo, nubraižykime ir grafikus.

importuoti matplotlib.pyplot kaip plt plt.scatter (ligos_X_testas, ligos_Y_testas) plt.plot (ligos_X_testas, y_predict) plt.show ()

Išvestis:

Norėdami gauti tikslesnį modelį pagal šį scenarijų, galime naudoti visus duomenis, o ne tik 2 stulpelį. Tai suteiktų tikslumą, kaip parodyta žemiau:

# šiek tiek pakeiskite aukščiau esantį kodą ir pašalinkite braižymo kodą, kad išvengtumėte klaidų disease_X = disease.data

Išvestis:

Tai priveda prie šio straipsnio pabaigos, kur mes sužinojome apie tiesinę mašininio mokymosi regresiją. Tikiuosi, kad jums aišku viskas, kas su jumis buvo pasidalinta šioje pamokoje.

Jei jums pasirodė svarbus straipsnis „Linijinė regresija mašininiam mokymuisi“, peržiūrėkite patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą, pasklido po visą pasaulį.

Jei kyla klausimų, nedvejodami užduokite visus klausimus komentarų skiltyje „Linijinė regresija mašininiam mokymuisi“, ir mūsų komanda mielai atsakys.