Informatica

Mînaka Fêrbûna Makîneyê bi Python: Regression Linear Simple

Di vê mînaka fêrbûna makîneyê de em ê vegerek xêzek bi tenê yek taybetmendiyek têketinê bibînin. Vegerînek xêzikek hêsan.

Berî ku hûn bidomînin, ez ji we re şîret dikim ku hûn du gotarên kurt bixwînin, ku hûn ê çendan bibînin defiramanên:

  1. Fêrbûna Makîneyê çi ye, ew çi ye û armancên wê
  2. Cureyên Fêrbûna Makîneyê

Ji ber ku em ê Python bikar bînin, heke we hîna li ser PC-ya xwe tune be, bixwînin Meriv çawa Python li ser Microsoft Windows saz dike

Ji bo nimûne, em du navnîşên Python binirxînin: ya yekem nirxên têketinê nîşan dide (taybetî), ya duyemîn nirxên derketinê (armanc).

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

y = [28, 26, 35, 21, 33, 35, 41, 44, 42, 51]

Van her du navnîşan dikarin li ser nexşeyek xala belavkirî bêne temsîl kirin

Du lîsteyên li ser grafîkê

Ji grafîkê em dikarin bibînin ku xal, her çend ne li ser heman xetê ne, lêbelê xwedan dabeşek hema hema xêzek in, ji xala çepê ya jêrîn berbi xala jorîn rastê. Dabeşkirina xalên li ser grafîkê dikare wekî meyla navnîşên ku bingeha modela ku dê makîneya meya fêrbûna otomatîkî li ser bingeha wê be were nas kirin.

Cins

Ji ber vê yekê em dikarin bibêjin ku heke X mezin dibe, heta Y mezin dibe, mîna ku xal li dora xeteke xeyalî bin. Armanca vegerandinê tam naskirina vê xetê, vê xeta rast e. Nasnameya vê xetê dê ji me re bibe alîkar ku em xalên Y ji bo nirxên X yên ku di navnîşê de ne diyar bikin.

Bi rastî, dibe ku em ji xwe bipirsin ka meriv çawa nirxa Y-yê ji bo X-ya ku di nav bûyeran de ne, di nav du navnîşan de ne tê pêşbînîkirin? Di bingeh de heke X nirxa 11, an 12, an 13-ê bûya dê nirxa Y çi be?

Regresîyona xêz xêza ku herî baş nêzî xalan dibe, ango xeta ku di navbera xalan de derbas dibe hesab dike, dûrahiya ji her yekê ji wan kêm dike. Û ji ber ku paşveçûnek hêsan dê xêzek rast bide me, diyar e ku pêşbînkirin dê ne ewqas rast be, lê dîsa jî em ê karibin astek maqûl, pir nêzî Y-ê texmîn bikin.

Ka em wê bi scikit-learn bikin:

# em modela regresyona xêzik ji scikit-learn derdixin

numpy wek np import bike

ji sklearn.linear_model import LinearRegression

# em modelê destnîşan dikin

model = LinearRegression ()

# em nirxên ku em ê hewce bikin ku makîneyê rêwerz bikin dest pê dikin

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

y = [28, 26, 35, 21, 33, 35, 41, 44, 42, 51]

# em daneyan bi forma du-alî ava dikin

X = np.array (x) .reshape (-1,1)

# em modelê perwerde dikin

model.fit (X, y)

Encama ku ji koda Python hatî wergirtin a modela perwerdekirî. Tişta modelê ji hêla çîna regresyonê ya xêz ve hate destnîşan kirin, û piştî bangkirina modela guncan, modela daneyan lêkolîn kiriye û amade ye ku pêşbîniyan bike.

Pêşbîniya

Ji bo ku pêşbîniyê hebe divê em rêbaza pêşbîniyê, ku berpirsiyarê pêşbînkirina senaryoyên pêşerojê ye, bişopînin. Ka em rêzê lê zêde bikin

çapkirin (model.pêşbînî ([[11], [12], [13], [14]])))

ji nû ve bernameyê dest pê bikin, em ê çar nirxên pêşbînîkirî yên ku bi taybetmendiyên 11, 12, 13 û 14 re têkildar in bistînin:

nûçenameya Innovation
Nûçeyên herî girîng ên li ser nûjeniyê ji bîr nekin. Sign up ji bo wergirtina wan bi e-nameyê.

[49.8 52.38181818 54.96363636 57.54545455]

Ji ber vê yekê çar nirxên ku di pêwendiyê de têne wergirtin ev in:

  • 11 —> 49.8
  • 12 —> 52.38181818
  • 13 —> 54.96363636
  • 14 —> 57.54545455

Wekî ku em dibînin, zêdekirina nirxên X bi zêdebûna nirxên Y re têkildar e, û ev yek watedar e. Ka em hewl bidin ku bibînin ka li ser grafîkê çi diqewime

Xeta sor encama paşveçûnê nîşan dide. Xêz dixuye ku şiroveya geometrîk û bi taybetî jî xêzkirî ya belavkirina xalan e. Di bingeh de ew e ku meriv bêje ku modela ku ji bo zêdekirina pêşbîniyê hatî hilbijartin modelek hêsan û xêz e.

Em dikarin bibêjin ku pêşbînî ne pir rast e, lê şiroveyek e.

Meriv çawa encaman dinirxîne

Dema ku encamên pêşbîniyê hatin bidestxistin, ew ê girîng be ku hûn her gav zanibin ka meriv çawa bandora modelek binirxîne. Ji bo vê yekê em hewce ne ku metrîkên ku bibînin scikit-fêr bibin di pakêta sklearn.metrics de peyda dike.

Metrîk li ser bingeha têgeha mayî ye, ango xet çiqas ji nirxa rastîn a y-yê ji bo x-ya diyar dûr dikeve. Bi pratîkî ji bo her nuqteyê dûrbûna ji xeta rast a xalê bixwe.

Em dikarin bermayiyan bi hesabkirina cûdahiya di navbera nirxa rastîn û nirxa pêşbînîkirî de hesab bikin, em dikarin ji bo taybetmendiyên 1 heta 10 bikin:

# pêşbîniyên ji bo x nirxan ji 1 heta 10 hesab bikin

y_pred = model.predict (X)

çapkirin (y_pred)

# bermayiyan hesab bike

bermayî = y - y_pred

çapkirin (bermayî)

di encamê de ez pêşbîniyan distînim

[23.98181818 26.56363636 29.14545455 31.72727273 34.30909091 36.89090909 39.47272727 42.05454545]

û bermayiyan
[4.01818182 -0.56363636 5.85454545 -10.72727273 -1.30909091 -1.89090909 1.52727273 1.94545455 -2.63636364]

Her yek ji van nirxan dipîve ka xêz çiqas ji xala di grafîkê de derbas bûye. Xalên bi bermayiyê mezintir têne gotin outliers, ango, nirxên herî kêm bi meyla gelemperî re hevaheng in (mînak çaryek -10.72). Nirxa duyemîn -0.56 e û ji ber vê yekê pir bi meyla gelemperî re têkildar e.

The Metrics

Ji bo vegerandina xêzik metrîkên pir girîng hene ku scikit-learn peyda dike, em çend ji wan bibînin:

  • Xeletiya mutleq a navîn: ji navgîniya nirxên mutleq ên bermayiyan pêk tê. Bi têgînî ew dûrahiya her xalek ji rêzê dipîve. Hêsan û konkret, ew bi nirxên bêkêmasî tê pîvandin ji ber ku ew dûrbûnê dipîve û ne pozîsyona li jor an li jêr rêzê. Wekî din, nirxa bêkêmasî ji me re piştrast dike ku nirxên dijber hevûdu betal nakin. Nirxa MAE dikare ji sifirê mezintir an wekhev be, û her ku ew nêzî sifirê be, pêşbîniya wê çêtir e;
  • Xeletiya Çargoşeya Navîn: ji navîniya çarçikên nirxên mutleq ên bermayiyan, wek MAE lê çargoşeyan pêk tê. Nirxa MSE ji sifirê mezintir an wekhev e, û her ku ew nêzî sifirê be, pêşbîniya wê çêtir e;
  • Çargoşe R: ji yên berê hinekî tevlihevtir e, lê em dikarin bibêjin ku ew xeletiyên ku di qonaxa pêşbîniyê de hatine çêkirin bi cihêrengiya daneyê bi xwe re têkildar dike. Nirxa çargoşeya R her dem ji 1 kêmtir an wekhev e, bi îhtîmala hebûna nirxên neyînî. Ger çargoşeya R bi 1 re wekhev be, ev tê vê wateyê ku model meylê baş şîrove dike, di sifirê de performansa bêalî ye. Ger çargoşe R xwedî nirxek neyînî ye, wê hingê ev tê vê wateyê ku modela baş nekiriye.

Fonksiyonên fêrbûna scikit-ê ku sê nîşanan zêde dikin ev in:

  • mean_absolute_error her MFA
  • mean_squared_error her MSE
  • r2_score her R square

bi sepandina wan li mînaka me em nirxên jêrîn digirin:

MAE = 3.4254545454545466
MSE = 19.847272727272724
R2 = 0.7348039453865216

ji sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score

çapkirin (mean_absolute_error (y, y_pred))

çapkirin (mean_squared_error (y, y_pred))

çapkirin (r2_score (y, y_pred))

Ercole Palmeri: Nûjenî girêdaye


nûçenameya Innovation
Nûçeyên herî girîng ên li ser nûjeniyê ji bîr nekin. Sign up ji bo wergirtina wan bi e-nameyê.

Gotarên dawî

Meriv çawa daneyan li Excel-ê berhev dike

Her operasyona karsaziyê gelek daneyan hildiberîne, tewra di formên cûda de. Vê daneyê bi destan ji pelek Excel têkevin…

14 May 2024

Prensîba veqetandina navberê (ISP), prensîba SOLID ya çaremîn

Prensîba veqetandina navberê yek ji pênc prensîbên SOLID yên sêwirana objekt-oriented e. Divê polê hebe…

14 May 2024

Meriv çawa data û formulên di Excel-ê de çêtirîn organîze dike, ji bo analîzek baş

Microsoft Excel ji bo analîzkirina daneyê amûrek referansê ye, ji ber ku ew ji bo organîzekirina daneyan gelek taybetmendiyan pêşkêşî dike,…

14 May 2024

Encama erênî ji bo du projeyên girîng Walliance Equity Crowdfunding: Jesolo Wave Island û Milano Via Ravenna

Walliance, SIM û platformê di nav serokên li Ewrûpayê de di warê 2017-an û vir ve Qedexekirina Nekêşbar ragihand…

13 May 2024

Filament çi ye û meriv çawa Laravel Filament bikar tîne

Filament çarçoveyek pêşkeftina Laravel "lezkirî" ye, ku gelek pêkhateyên tev-stack peyda dike. Ew ji bo hêsankirina pêvajoya…

13 May 2024

Di bin kontrola Îstixbaratên Hunerî de

"Divê ez vegerim da ku pêşveçûna xwe temam bikim: Ez ê xwe di hundurê komputerê de proje bikim û bibim enerjiya paqij. Dema ku li…

10 May 2024

Zehmetiya çêkirî ya nû ya Google dikare DNA, RNA û "hemû molekulên jiyanê" model bike.

Google DeepMind guhertoyek çêtir a modela xweya îstîxbarata sûnî destnîşan dike. Modela nû ya pêşkeftî ne tenê peyda dike…

9 May 2024

Nûjeniyê bi zimanê xwe bixwînin

nûçenameya Innovation
Nûçeyên herî girîng ên li ser nûjeniyê ji bîr nekin. Sign up ji bo wergirtina wan bi e-nameyê.

me bişopîne