Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti farg'ona filiali 610-20 guruh talabasi Nomonov Islomjonning Mashinali o’qitish fanidan tayyorlagan Mustaqil ishi


 Mashinali oqitish uchun instrumental vositalar



Download 1,15 Mb.
Pdf ko'rish
bet10/10
Sana18.04.2023
Hajmi1,15 Mb.
#929650
1   2   3   4   5   6   7   8   9   10
Bog'liq
Islomjon Mashinali oqitish (1)

 
1.3. Mashinali oqitish uchun instrumental vositalar
Python (talaffuzi: Piton) — umumiy –maqsadli dasturlash uchun keng tarzda 
foydalaniladigan yuqori darajali dasturlash tili.
Ushbu dasturlash tili Guido van Rossum tomonidan yaratilgan va birinchi marta 
1991-yilda foydalanib koʻrilgan. 
Python har xil platformalar uchun yozilgan, masalan Windows, Linux, Mac OS 
X, Palm OS, Mac OS va boshqalar. Python 
Microsoft.NET
 platformasi uchun 
yozilgan realizatsiyasi ham mavjud boʻlib, uning nomi — IronPython. 
Pythonni o’rnatish. 
Barauzerdan 
WWW.python.org
saytidan pythonni ko’cirib olamiz.


Mavzu:Pythonda chiziqli regressiya 
Chiziqli regressiya ma'lumotlarni tahlil qilish va mashinani o'rganish uchun 
ishlatiladi. O'zingizning modelingizni Python-da yarating va birinchi natijalarni 
oling! 
Regressiya nima? 
Reqressiya o'zgaruvchilar o'rtasidagi munosabatlarni izlaydi. 
Masalan, siz kompaniya xodimlarini qabul qilishingiz va ish haqi qiymati 
boshqa ma'lumotlarga bog'liqligini, masalan, ish tajribasi, ma'lumot darajasi, roli, 
ular ishlaydigan shahar va hokazo. 
Regresiya har bir xodim uchun tahlil ma'lumotlarini yagona taqdim etish 
muammosini hal qiladi. Bundan tashqari, tajriba, ta'lim, rol va shahar - bu ish haqi 
ularga bog'liq bo'lgan mustaqil o'zgaruvchilar. 
Xuddi shu tarzda, siz ma'lum bir hududdagi uylarning narxlari, xonalar soni, 
markazdan masofa va boshqalar o'rtasida matematik aloqani o'rnatishingiz mumkin. 
Regressiya ma'lum bir hodisani va bir qator kuzatuvlarni ko'rib chiqadi. Har bir 
kuzatuv ikki yoki undan ko'p o'zgaruvchiga ega. Bitta o'zgaruvchini boshqalarga 
bog'liq deb taxmin qilsangiz, siz ular o'rtasida munosabatlarni o'rnatishga harakat 
qilmoqdasiz. 
Boshqacha qilib aytganda, ba'zi o'zgaruvchilar yoki ma'lumotlarning 
boshqalarga bog'liqligini ko'rsatadigan funktsiyani topishingiz kerak. 
Bog'langan ma'lumotlar bog'liq parametrlar, natijalar yoki javoblar deb 
nomlanadi. 
Mustaqil ma'lumotlar mustaqil o'zgaruvchilar, kirishlar yoki predikatorlar deb 
nomlanadi. 
Odatda, regressiyada bitta doimiy va cheksiz bog'liq o'zgaruvchi mavjud. 
Kirish parametrlari cheklanmagan, diskret yoki kategoriya ma'lumotlari bo'lishi 
mumkin, masalan, jinsi, millati, brendi va boshqalar. 


Chiqish ma'lumotlarini "?", "Kirish ma'lumotlarini" deb belgilash odatiy holdir. 
Ikki yoki undan ko'p mustaqil o'zgaruvchilar bo'lsa, ularni vektor sifatida ko'rsatish 
mumkinmi? = (? ₁,…,? ᵣ), qaerda? - kiritiladigan o'zgaruvchilar soni. 
Qachon regressiya kerak? 
Regressiya yangi sharoitlarga javobni bashorat qilish uchun foydalidir. Turar-
joy binosidagi elektr energiyasini haroratdan, kunning vaqtidan va odamlarning 
sonidan bilib olasiz. 
U qayerda kerak? 
Reqressiya ko'plab sohalarda qo'llaniladi: iqtisodiyot, kompyuter va ijtimoiy 
fanlar va boshqalar. Uning ahamiyati katta ma'lumotlarning mavjudligi bilan ortib 
bormoqda. 
Chiziqli regressiya 
Chiziqli regressiya eng muhim va keng tarqalgan regressiya usullaridan biridir. 
Bu eng oddiy regressiya usuli. Uning afzalliklaridan biri natijalarni sharhlash 
qulayligi. 
Python-da chiziqli regressiyani amalga oshiring 
Pythonda chiziqli regressiyani amalga oshirish vaqti keldi. Sizga kerak bo'lgan 
yagona narsa - to'g'ri to'plamlar, funktsiyalar va sinflar. 
Chiziqli regressiya Python paketlari 
NumPy bir o'lchovli va ko'p o'lchovli massivlarda tezkor ishlash uchun 
fundamental ilmiy to'plamdir. Bu matematik usulni engillashtiradi va, albatta, ochiq 
manbadir. 
NumPy uchun yangi? Rasmiy qo'llanmadan boshlang. 
Scikit-learn - bu kompyuterda keng qo'llaniladigan kutubxona. U ma'lumotlarni 
qayta ishlash uchun qiymatlarni beradi, pasayish, regressiya, tasniflash, klasterlash 
va boshqalarni amalga oshiradi, xuddi NumPy singari ochiq manbada. 
Chiziqli modellarni va paketni scikit-learn-da qanday ishlashini boshlang. 
Skritit-o'rganish bilan oddiy chiziqli regressiya 
Eng oddiy chiziqli regressiya holatidan boshlaylik. 
Chiziqli regressiyani amalga oshirish uchun besh bosqichni bajaring: 
1. Kerakli paketlar va sinflarni import qiling. 
2. Ishlash va konvertatsiya qilish uchun ma'lumotlarni taqdim eting. 
3. Regressiya modelini yarating va mavjud ma'lumotlarga moslang. 
4. Hizalama natijalarini va qoniqarli modelni tekshiring. 
5. Modelni bashorat qilish uchun qo'llang. 
Bu ko'p regressiya yondashuvlari va amalga oshirilishlari uchun umumiy 
qadamlar. 
1-qadam: import paketlar va sinflar 


Birinchi 
qadam 
NumPy 
to'plami 
va 
LinearRegression 
sinfini 
sklearn.linear_model-dan import qilishdir: 
import
numpy 
as
np 
from
sklearn.linear_model 
import
LinearRegression
Endi siz chiziqli regressiyani amalga oshirish uchun barcha funktsiyalarga 
egasiz. 
Numpy-ning fundamental turi - bu numpy.ndarray massiv turi. Keyinchalik, 
qator numpy.ndarray tipidagi barcha holatlarga tegishli. 
Sklearn.linear_model.LinearRegression klassi chiziqli regressiya va bashorat 
qilish uchun ishlatiladi. 
2-qadam: ma'lumotlarni taqdim eting 
Ikkinchi qadam, ishlash uchun ma'lumotlarni aniqlash. Kirishlar (regressorlar 
,?) va chiqish (predictor ,?) qatorlar (numpy.ndarray sinfining misollari) yoki shunga 
o'xshash ob'ektlar bo'lishi kerak. Bu erda regressiya ma'lumotlarini taqdim etishning 
eng oddiy usuli: 
x = np.array([
5

15

25

35

45

55
]).reshape((
-1

1
)) 
y = np.array([
5

20

14

32

22

38
])
Endi ikkita qator mavjud: kirish x va chiqish y. Siz .reshape () ni x-ga qo'ng'iroq 
qilishingiz kerak, chunki bu qator ikki o'lchovli yoki aniqroq bo'lishi kerak - bitta 
ustun va kerakli sonli qatorlarga ega. Bu (-1, 1) argument aniq belgilaydi. 
Hozir x va y qanday ko'rinishda: 
>>> 
print(x) 
[[ 
5

[
15

[
25

[
35

[
45

[
55
]] 
>>> 
print(y) 

5
20
14
32
22
38
]
3-qadam: modelni yarating 
Ushbu bosqichda chiziqli regressiya modelini yarating va mavjud 
ma'lumotlarga moslang. 
LinearRegression sinfining regressiya modelini ko'rsatadigan misolini 
yarataylik. 
model = LinearRegression()
Ushbu operatsiya LinearRegression misoli sifatida o'zgaruvchan modelni 
yaratadi. LinearRegression sinfiga bir nechta qo'shimcha parametrlarni berishingiz 
mumkin: 
• fit_intercept bu segmentni hisoblash kerakmi (otrez (True) yoki uni nolga teng 
(False) deb hisoblash). 
Normallashtirish - bu kirish parametrlarini (True) yoki yo'qligini (noto'g'ri) 
normalizatsiya qilish-qilmaslikni belgilovchi buoolik (sukut bo'yicha noto'g'ri) 
parametridir. 


• copy_X - bu nusxa ko'chirish (True) yoki kiritish parametrlarini (False) qayta 
yozishni tanlashda mantiqiy parametr (asl qiymati bo'yicha). 
• n_jobs - bu parallel hisoblashda qatnashadigan jarayonlar sonini aks ettiruvchi 
butun son yoki None (asl qiymati). Hech biri hech qanday jarayonni anglatmaydi, -
1 barcha mavjud protsessorlardan foydalanadi. 
Bizning misolimizda standart holat holatlari qo'llaniladi. 
Modeldan foydalanish vaqti keldi. Birinchi qo'ng'iroq .fit () modelida: 
model.fit(x, y) 
.Fit () og'irliklar uchun optimal qiymatlarni hisoblaydi? Input va? Mavjud 
bo'lgan kirish va chiqish (x va y) ni argument sifatida ishlatish. Boshqacha qilib 
aytganda, .fit () modelni hizalaydi. O'zini, o'zgaruvchan modelni qaytaradi. Shuning 
uchun, oxirgi ikkita operatsiyani quyidagilar bilan almashtirishingiz mumkin: 
model = LinearRegression().fit(x, y)
Ushbu operatsiyani bajarish qisqaroq va avvalgisi bilan bir xil. 
4-qadam: Natijalarni oling 
Modelni moslashtirgandan so'ng, natijalarni sharhlash uchun qoniqarli 
ekanligini tekshirish kerak. 
Siz (? ²) belgisini modelga chaqirilgan .score () yordamida olishingiz mumkin: 
>>> 
r_sq = model.score(x, y) 
>>> 
print(
'coefficient of determination:'
, r_sq) 
coefficient of determination: 
0.715875613747954
.score () x predmetik x va regressorni argument sifatida qabul qiladi va qaytadi? 
². 
modelda koeffitsientni ifodalovchi .intercept_ atributlari va?? ni ifodalovchi 
.coef_ bilan? ₁: 
>>> 
print(
'intercept:'
, model.intercept_) 
intercept: 
5.633333333333329
>>> 
print(
'slope:'
, model.coef_) 
slope: [
0.54
]
Yuqoridagi kod "₀" va "₁" ni olish usulini ko'rsatadi. E'tibor bering, .intercept_ 
bu skalar, .coef_ esa - bu massiv. 
? 5.6 = 5.63 ning taxminiy qiymati sizning modelingiz 5.63 ga qachon va 
qachon nolga teng javob berishini bashorat qilmoqda. Equality ₁ = 0.54 tengligi, 
bashorat qilingan javob bittaga ko'paytirilganda 0,54 ga ko'tarilishini anglatadi. 
Shuni esda tutingki, y-ni ikki o'lchovli qator sifatida berishingiz mumkin. 
Keyin natijalar farq qilmaydi: 
>>> 
new_model = LinearRegression().fit(x, y.reshape((
-1

1
))) 
>>> 
print(
'intercept:'
, new_model.intercept_) 
intercept: [
5.63333333

>>> 
print(
'slope:'
, new_model.coef_) 
slope: [[
0.54
]]
Ko'rib turganingizdek, misol oldingisiga o'xshash, ammo bu holda .intercept_ 
bitta elementli bitta o'lchovli massivmi? ₀, va .coef_ bitta elementli ikki o'lchovli 
massivmi? ₁. 
5-qadam: javobni bashorat qiling 


Modelingizdan mamnun bo'lganingizdan so'ng, uni joriy yoki boshqa 
ma'lumotlar bilan bashorat qilish uchun ishlatishingiz mumkin. 
.Predict () yordamida taxmin qilingan javobni oling: 
>>> 
y_pred = model.predict(x) 
>>> 
print(
'predicted response:'
, y_pred, sep=
'\n'

predicted response: 

8.33333333
13.73333333
19.13333333
24.53333333
29.93333333
35.33333333
]
.Predict () dan foydalanib, regressorni argument sifatida o'tkazasiz va tegishli 
javobni olasiz. 
Bu erda javobni taxmin qilishning deyarli bir xil usuli: 
>>> 
y_pred = model.intercept_ + model.coef_ * x 
>>> 
print(
'predicted response:'
, y_pred, sep=
'\n'

predicted response: 
[[ 
8.33333333

[
13.73333333

[
19.13333333

[
24.53333333

[
29.93333333

[
35.33333333
]]
Bunday holda, siz x massivining har bir elementini model.coef_ bilan 
ko'paytirasiz va mahsulotingizga model.intercept_ qo'shasiz. 
Xulosa avvalgi misoldan o'lchovlar sonidan farq qiladi. Endi bashorat qilingan 
javob bir o'lchovli bo'lgan oldingi holatdan farqli o'laroq, ikki o'lchovli qatordir. 
X o'lchovlar sonini bittaga o'zgartiring va siz bir xil natijani ko'rasiz. Buning 
uchun x-ni model.coef_ ga ko'paytirganda x.reshape (-1), x.flatten () yoki x.ravel () 
bilan almashtiring. 
Amalda, bashorat qilish uchun ko'pincha regressiya modeli qo'llaniladi. Bu 
boshqa, yangi kirishlar asosida chiqishni hisoblash uchun moslashtirilgan 
modellardan foydalanishingiz mumkin degan ma'noni anglatadi: 
>>> 
x_new = np.arange(
5
).reshape((
-1

1
)) 
>>> 
print(x_new) 
[[
0

[
1

[
2

[
3

[
4
]] 


>>> 
y_new = model.predict(x_new) 
>>> 
print(y_new) 
[
5.63333333
6.17333333
6.71333333
7.25333333
7.79333333
]
Bu erda .predict () x_new yangi regressatorida qo'llaniladi va natijada y_new 
javob beradi. Ushbu misol yordamida 5 (eksklyuziv) - 0, 1, 2, 3 va 4 elementlari bilan 
qator yaratish uchun NumPy-dan arange () dan foydalaniladi.

Download 1,15 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish