„Scikit learn“ - mašininis mokymasis naudojant „Python“



Tinklaraštis „Scikit learn“ supažindins jus su mašininiu mokymusi python. Tai apima naudojimo atvejį, kai įgyvendinsime logistinę regresiją naudodami „scikit“ mokymąsi.

Šiame tinklaraštyje aptarsime „Scikit“ mokymąsi pitone. Prieš kalbėdami apie „Scikit learn“, turite suprasti mašininio mokymosi sąvokąir turi mokėti naudotis . Mokantis mašinomis, nereikia įžvalgų rinkti rankiniu būdu. Jums tiesiog reikia algoritmo, o mašina padarys visa kita už jus! Ar tai nėra įdomu? „Scikit“ mokymasis yra viena iš atrakcijų, kur galime įgyvendinti mašininį mokymąsi naudodami „Python“. Taiyra nemokama mašininio mokymosi biblioteka, kurioje yra paprastų ir efektyvių įrankių duomenų analizei ir kasybos tikslams.Apžvelgsiu šias temas, kurios bus pagrindas būsimiems tinklaraščiams:

Kas yra mašininis mokymasis?

Mašininis mokymasis yra dirbtinio intelekto rūšis, leidžianti programinės įrangos programoms mokytis iš duomenų ir tiksliau nuspėti rezultatus be žmogaus įsikišimo. Bet kaip tai vyksta? Tam mašiną reikia mokyti pagal kai kuriuos duomenis ir, remdamasis tuo, ji aptiks modelio sukūrimo modelį.Šis žinių įgijimo iš duomenų procesas ir galingų įžvalgų teikimas yra mašininis mokymasis. Norėdami geriau suprasti jo veikimą, žiūrėkite žemiau esantį vaizdą:





„MachineLearning“ - „Scikit Learn“ - „Edureka“

Naudodama duomenis, sistema išmoksta algoritmo ir paskui jį panaudoja kurdama nuspėjamąjį modelį. Vėliau mes pritaikome modelį arba padidiname modelio tikslumą naudodami grįžtamojo ryšio duomenis. Naudodamiesi šiais grįžtamojo ryšio duomenimis, mes suderiname modelį ir numatome naujojo duomenų rinkinio veiksmus. Mesdiskutuoti a naudojimo atvejis vieno iš algoritmo metodo, kur mes mokysime ir išbandysime duomenis, kurie padės geriau suprasti, ar tai bus tinkama jūsų konkrečiai problemai, ar ne.



Be to, yra trys mašininio mokymosi tipai:

    • Vadovaujamasi mokymuisi : Tai algoritmo mokymosi iš mokymo duomenų rinkinio procesas. Prižiūrimas mokymas yra tas, kur jūs generuojate įvesties kintamojo (X) ir išvesties kintamojo (Y) susiejimo funkciją ir naudojate algoritmą, kad sukurtumėte funkciją tarp jų. Jis taip pat žinomas kaip nuspėjamasis modeliavimas, kuris reiškia prognozių sudarymo procesą naudojant duomenis. Kai kurie algoritmai apima tiesinę regresiją, logistinę regresiją, sprendimų medį, atsitiktinių miškų ir naiviųjų įlankų klasifikatorių. Toliau aptarsime prižiūrimo mokymosi naudojimo atvejį, kai mokome mašiną logistinė regresija .
    • Neprižiūrimas mokymasis : Tai procesas, kai modelis mokomas naudojant informaciją, kuri nėra paženklinta. Šis procesas gali būti naudojamas klasifikuojant įvesties duomenis klasėse, remiantis jų statistinėmis savybėmis. Neprižiūrimas mokymasis taip pat vadinamas cgriežta analizė, kuri reiškia objektų grupavimą pagal informaciją, esančią objektuose ar jų santykius apibūdinančiuose duomenyse. Tikslas yra tai, kad vienos grupės objektai turėtų būti panašūs vienas į kitą, bet skirtingi nuo kitos grupės objektų. Kai kurie algoritmai apima K reikšmių grupavimą, hierarchinį klasterizavimą ir kt.
    • Mokymasis sustiprinti: Mokymasis sustiprinti yra mokymasis bendraujant su erdve ar aplinka.RL agentas mokosi iš savo veiksmų pasekmių, o ne iš to, kad būtų aiškiai mokomas. Savo veiksmus jis pasirenka atsižvelgdamas į savo ankstesnę patirtį (išnaudojimą) ir į naujus pasirinkimus (tyrinėjimą).

„Scikit Learn“ apžvalga

„Scikit learn“ yra biblioteka, naudojama mašininiam mokymuisi atlikti „Python“. „Scikit learn“ yra atvirojo kodo biblioteka, licencijuota pagal BSD ir daugkartinio naudojimo įvairiuose kontekstuose, skatinant naudoti akademinį ir komercinį. Tai pateikia daugybę prižiūrimų ir neprižiūrimų „Python“ mokymosi algoritmų.„Scikit learn“ sudaro populiarūs algoritmai ir bibliotekos. Be to, jame taip pat yra šie paketai:



  • NumPy
  • Matplotlib
  • „SciPy“ (mokslinis pitonas)

Norėdami įdiegti „Scikit learn“, pirmiausia turime importuoti aukščiau nurodytus paketus. Jei nesate susipažinę su šiomis bibliotekomis, galite peržiūrėti ankstesnius mano tinklaraščius ir . Šiuos du paketus galite atsisiųsti naudodami komandų eilutę arba jei naudojate PYŽavesio, galite tiesiogiai jį įdiegti, eidami į savo nustatymą taip pat, kaip tai darote kitiems paketams.

Kitas, panašiu būdu, turite importuoti „Sklearn“.„Scikit“ mokymasis yra paremtas „SciPy“ („Scientific Python“), kuris turi būti įdiegtas prieš naudojant „Scikit-learn“. Galite tai nurodyti Interneto svetainė atsisiųsti tą patį. Be to, įdiekite „Scipy“ ir ratų paketą, jei jo nėra, galite įvesti žemiau esančią komandą:

pip įdiegti scipy

Aš jį jau atsisiunčiau ir įdiegiau. Jei turite painiavos, galite kreiptis į žemiau pateiktą ekrano kopiją.

Importavę minėtas bibliotekas, įsigilinkime ir supraskime, kaip tiksliai naudojama „Scikit learn“.

kas yra charat java

„Scikit learn“ pateikiama su pavyzdiniais duomenų rinkiniais, pvz rainelė ir skaitmenų . Galite importuoti duomenų rinkinius ir žaisti su jais. Po to turite importuoti SVM, kuris reiškia „Support Vector Machine“. SVM yra mašininio mokymosi forma, naudojama duomenims analizuoti.

Paimkime pavyzdį, kur mes imsimės skaitmenų duomenų rinkinį ir jis suskirstys mums numerius, pavyzdžiui, 0 1 2 3 4 5 6 7 8 9. Žr. žemiau pateiktą kodą:

importuoti matplotlib.pyplot kaip plt iš sklearn importuoti duomenų rinkinius iš sklearn importuoti svm digits = datasets.load_digits () print (digits.data)

Rezultatas -

[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Čia ką tik importavome bibliotekas, SVM, duomenų rinkinius ir išspausdinome duomenis. Tai ilgas skaitmenų duomenų masyvas, kuriame saugomi duomenys. Tai suteikia prieigą prie funkcijų, kurias galima naudoti klasifikuojant skaitmenų pavyzdžiai. Be to, galite išbandyti keletą kitų operacijų, tokių kaip taikinys, vaizdai ir pan. Apsvarstykite toliau pateiktą pavyzdį:

importuoti matplotlib.pyplot kaip plt iš sklearn importuoti duomenų rinkinius iš sklearn importuoti svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

Rezultatas -

[0 1 2 ..., 8 9 8] // duomenų tikslas [[0. 0. 5. 13. 9. 1. 0. 0.] // duomenų vaizdas [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Kaip matote aukščiau, tiksliniai skaitmenys ir skaitmenų vaizdas atspausdinami. skaitmenys.tikslas suteikia pagrindą tiesai skaitmenų duomenų rinkinį, tai yra skaičius, atitinkantis kiekvieną skaitmeninį vaizdą. Toliau duomenys visada yra 2D masyvas, kurio forma yra (n_samples, n_features), nors pirminiai duomenys galėjo turėti kitokią formą. Bet skaitmenų atveju kiekvienas originalus pavyzdys yra formos atvaizdas (8,8) ir prie jo galima prisijungti naudojant skaitmenų . vaizdas.

Mokymasis ir nuspėjimas

Be to, „Scikit learn“ naudojome duomenų rinkinį (10 galimų klasių pavyzdys, skaitmenys nuo nulio iki devynių) ir turime numatyti skaitmenis, kai pateikiamas vaizdas. Norint nuspėti klasę, mums reikia vertintojas kuris padeda nuspėti klases, kurioms priklauso nematyti pavyzdžiai. Programoje „Scikit learn“ turime klasifikatorių, kuris yra pitono objektas, įgyvendinantis metodus tinka (x, y) ir numatyti (T). Panagrinėkime žemiau pateiktą pavyzdį:

importuoti matplotlib.pyplot kaip plt iš sklearn importuoti duomenų rinkinius iš sklearn importuoti svm skaitmenys = datasets.load_digits () // duomenų rinkinys clf = svm.SVC (gama = 0,001, C = 100) spausdinti (len (skaitmenys.duomenys)) x, y = digits.data [: - 1], digits.target [: - 1] // mokykite duomenis clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // numatyti duomenis plt.imshow (skaitmenys.vaizdai [-1], cmap = plt.cm.gray_r, interpoliacija = 'artimiausias') plt.show ()

Rezultatas -

1796 m
Spėjimas: [8]


Pirmiau pateiktame pavyzdyje mes pirmiausia radome ilgį ir įkėlėme 1796 pavyzdžius. Toliau šiuos duomenis panaudojome kaip mokymosi duomenis, kur turime išbandyti paskutinį ir pirmąjį neigiamą elementą. Be to, turime patikrinti, ar mašina numatė teisingus duomenis, ar ne. Tam mes naudojome „Matplotlib“, kur rodėme skaitmenų vaizdą.Taigi darau išvadą, kad turite skaitmeninių duomenų, turite tikslą, tinkate ir nuspėjate jį, taigi jums gera eiti! Tai tikrai greita ir lengva, ar ne?

Taip pat galite vizualizuoti tikslines etiketes su vaizdu, tiesiog žiūrėkite žemiau pateiktą kodą:

importuoti matplotlib.pyplot kaip plt iš sklearn importuoti duomenų rinkinius iš sklearn importuoti svm digits = datasets.load_digits () # Prisijunkite prie vaizdų ir tikslinių etikečių sąraše images_and_labels = list (zip (digits.images, digits.target)) # kiekvienam elementui rodyklės sąraše, (paveikslėlis, etiketė) surašyti (images_and_labels [: 8]): # inicializuoti 2X4 poskyrį i + 1-oje pozicijoje plt. subplot (2, 4, index + 1) # Rodyti vaizdus visuose subplotuose plt.imshow (image, cmap = plt.cm.gray_r, interpolation = 'artimiausias') # Pridėkite pavadinimą kiekvienam subplotui plt.title ('Training:' + str (label)) # Rodyti plot plot. Rodyti()

Rezultatas-


Kaip matote aukščiau pateiktame kode, mes naudojome funkciją „zip“, kad sujungtume vaizdus ir tikslines etiketes į sąrašą, o tada išsaugotume juos kintamajame, tarkim, images_and_labels. Po to mes indeksavome pirmuosius aštuonis elementus tinklelyje nuo 2 iki 4 kiekvienoje padėtyje. Po to mes ką tik parodėme vaizdus naudodami „Matplotlib“ ir pridėjome pavadinimą kaip „mokymai“.

Naudojimo atvejis - Spėjimas naudojant logistinę regresiją

Problemos pareiškimas - Automobilių įmonė rinkoje išleido naują visureigį. Naudodamiesi ankstesniais duomenimis apie savo visureigių pardavimą, jie nori numatyti žmonių, kuriems gali būti įdomu tai įsigyti, kategoriją.

Norėdami tai pamatyti, pamatykime duomenų rinkinį ten, kur aš turiu „UserId“, lytis, amžius, numatomas atlyginimas ir įsigytas kaip stulpeliai. Tai tik pavyzdinis duomenų rinkinys, iš kurio galite atsisiųsti visą duomenų rinkinį čia . Kai importuosime duomenis į pyCharm, jie atrodys maždaug taip.

Dabar leiskite mums suprasti šiuos duomenis. Kaip matote aukščiau pateiktame duomenų rinkinyje, turime tokias kategorijas kaip ID, lytis, amžius ir kt. Dabar, remdamiesi šiomis kategorijomis, mes mokysime savo mašiną ir numatysime „ne“. pirkimų. Taigi, mes turime nepriklausomi kintamieji kaip „amžius“, „numatomas atlyginimas“ ir priklausomas kintamasis kaip „pirktas“. Dabar taikysime prižiūrimą mokymąsi, t logistinės regresijos algoritmas norint sužinoti pirkimo skaičių naudojant esamus duomenis.

Pirmiausia apžvelkime logistinę regresiją.

Logistinė regresija - Logistinė regresija pateikia dvejetainį formatą, kuris naudojamas prognozuoti kategorinio priklausomo kintamojo rezultatą. Jis yra plačiausiai naudojamas, kai priklausomas kintamasis yra dvejetainis, ty galimų kategorijų skaičius yra du, pavyzdžiui, įprasti logistinės regresijos išėjimai yra -

kaip konvertuoti eilutės datą į datą Java
  • Taip ir ne
  • Tiesa ir melas
  • Aukštas ir žemas
  • Perduoti ir nesėkmę

Pradedant kodu, pirmiausia importuosime šias bibliotekas - „Numpy“, „Matplotlib“ ir „Pandas“. Importuoti pandas į „Pycharm“ yra gana lengva, atlikdami šiuos veiksmus:

Nustatymai -> Pridėti paketą -> Pandos -> Įdiegti

Po to importuosime duomenų rinkinį ir atskirą priklausomą kintamąjį (įsigytą) ir nepriklausomą kintamąjį (amžių, atlyginimą):

duomenų rinkinys = pd.read_csv ('Social_Network_Ads.csv') X = duomenų rinkinys.iloc [:, [2, 3]]. reikšmės y = duomenų rinkinys.iloc [:, 4]. reikšmės spausdinti (X) spausdinti (y)

Kitas žingsnis būtų mokymai ir duomenų testavimas. Bendra strategija yra paimti visus pažymėtus duomenis ir suskirstyti į mokymo ir testavimo pogrupius, kurie paprastai imami naudojant 70–80% mokymo pogrupiui ir 20–30% testavimo pogrupiui. Taigi mes sukūrėme mokymo ir testavimo rinkinius, naudodami kryžminį patvirtinimą.

iš sklearn.cross_validation importuoti traukinio_testo_split X_train, X_test, y_train, y_test = traukinio_test_split (X, y, test_size = 0.25, random_state = 0)

Mes taip pat galime keisti įvesties vertes, kad būtų geresnis našumas naudojant „StandarScaler“, kaip parodyta žemiau:

iš „sklearn.preprocessing“ importavimo „StandardScaler“ sc = „StandardScaler“ () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Dabar sukursime savo logistinės regresijos modelį.

iš sklearn.linear_model importuoti LogisticRegression klasifikatorius = LogisticRegression (random_state = 0) klasifikatorius.fit (X_train, y_train)

Mes galime tai naudoti ir nuspėti savo bandymų rinkinio rezultatus.

y_pred = klasifikatorius. numatyti (X_test)

Dabar galime patikrinti, kiek prognozių buvo tikslūs ir kiek nenaudojo sumišimo matrica . Apibrėžkime Y kaip teigiamus, o N - kaip neigiamus. Keturi rezultatai suformuluoti 2 * 2 painiavos matricoje, kaip parodyta žemiau:

iš sklearn.metrics importuoti confusion_matrix cm = confusion_matrix (y_test, y_pred) spausdinti (cm)

Rezultatas-

[[65 3] [8 24]]

Toliau, remdamiesi savo sumišimo matrica, galime apskaičiuoti tikslumą. Taigi mūsų aukščiau pateiktame pavyzdyje tikslumas būtų:

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89%

Mes tai padarėme rankiniu būdu! Dabar pažiūrėkime, kaip mašina apskaičiuoja tą patį mums, todėl mes turime integruotą funkciją „tikslumo_ balas“, kuri apskaičiuoja tikslumą ir atspausdina, kaip parodyta žemiau:

fibonacci c ++
iš sklearn.metrics importuoti tikslumo_ balą // importuoti funkcijos tikslumo_spausdinimo funkciją (tikslumo_vertas (y_test, y_pred) * 100) // spausdina tikslumą

Rezultatas -

89,0

Valio! Taigi sėkmingai įgyvendinome logistinę regresiją naudodami „Scikit“ mokymąsi 89% tikslumu.

Paspauskite čia kad gautumėte visą pirmiau minėtos prognozės šaltinį naudojant „Python Scikit“ mokymosi biblioteką.

Tai apėmė tik vieną iš daugelio populiarių algoritmų, kuriuos gali pasiūlyti pitonas.Apžvelgėme visus „Scikit“ mokymosi bibliotekoje pagrindus,kad galėtumėte pradėti praktikuoti jau dabar. Kuo daugiau praktikuositės, tuo daugiau sužinosite. Sekite naujus „python“ mokymo tinklaraščius!

Turite mums klausimą? Prašau tai paminėti šio „Scikit learn“ tinklaraščio komentarų skyriuje, ir mes kuo greičiau susisieksime su jumis. Norėdami gauti išsamių žinių apie „Python“ kartu su įvairiomis jo programomis, galite tiesioginėms internetinėms treniruotėms, palaikančioms visą parą visą parą ir visą gyvenimą.