Kategorial ma’lumotlar


ULASHISH

Kategorik ma’lumotlar

Ma’lumotlaringizda stringlar bilan ifodalangan toifalar bo‘lsa, ulardan faqat raqamli ma’lumotlarni qabul qiladigan mashina o‘rganish modellarini o‘rgatishda foydalanish qiyin bo‘ladi.

Kategorik ma’lumotlarga e’tibor bermaslik va ma’lumotni bizning modelimizdan chiqarib tashlash o‘rniga, siz ma’lumotlarni modellaringizda ishlatilishi uchun o‘zgartirishingiz mumkin.

Quyidagi jadvalga qarang, bu biz ko‘p regressiya bobida foydalangan ma’lumotlar to‘plamidir.

Misol

import pandas as pd cars = pd.read_csv('data.csv') print(cars.to_string())

Natija

             Car       Model  Volume  Weight  CO2
  0       Toyoty        Aygo    1000     790   99
  1   Mitsubishi  Space Star    1200    1160   95
  2        Skoda      Citigo    1000     929   95
  3         Fiat         500     900     865   90
  4         Mini      Cooper    1500    1140  105
  5           VW         Up!    1000     929  105
  6        Skoda       Fabia    1400    1109   90
  7     Mercedes     A-Class    1500    1365   92
  8         Ford      Fiesta    1500    1112   98
  9         Audi          A1    1600    1150   99
  10     Hyundai         I20    1100     980   99
  11      Suzuki       Swift    1300     990  101
  12        Ford      Fiesta    1000    1112   99
  13       Honda       Civic    1600    1252   94
  14      Hundai         I30    1600    1326   97
  15        Opel       Astra    1600    1330   97
  16         BMW           1    1600    1365   99
  17       Mazda           3    2200    1280  104
  18       Skoda       Rapid    1600    1119  104
  19        Ford       Focus    2000    1328  105
  20        Ford      Mondeo    1600    1584   94
  21        Opel    Insignia    2000    1428   99
  22    Mercedes     C-Class    2100    1365   99
  23       Skoda     Octavia    1600    1415   99
  24       Volvo         S60    2000    1415   99
  25    Mercedes         CLA    1500    1465  102
  26        Audi          A4    2000    1490  104
  27        Audi          A6    2000    1725  114
  28       Volvo         V70    1600    1523  109
  29         BMW           5    2000    1705  114
  30    Mercedes     E-Class    2100    1605  115
  31       Volvo        XC70    2000    1746  117
  32        Ford       B-Max    1600    1235  104
  33         BMW         216    1600    1390  108
  34        Opel      Zafira    1600    1405  109
  35    Mercedes         SLK    2500    1395  120
  


Misolni ishga tushirish »

Ko‘p regressiya bobida biz dvigatel hajmi va avtomobilning og‘irligi asosida chiqarilgan CO2 ni taxmin qilishga harakat qildik, ammo biz avtomobil markasi va modeli haqidagi ma’lumotni istisno qildik.

Avtomobil markasi yoki avtomobil modeli haqidagi ma’lumotlar bizga chiqarilgan CO2 miqdorini yaxshiroq bashorat qilishga yordam beradi.


Bitta issiq kodlash

Ma’lumotlarimizdagi Avtomobil yoki Model ustunidan foydalana olmaymiz, chunki ular raqamli emas. Kategorik o‘zgaruvchi, Avtomobil yoki Model va raqamli o‘zgaruvchi, CO2 o‘rtasidagi chiziqli munosabatni aniqlab bo‘lmaydi.

Ushbu muammoni hal qilish uchun biz kategorik o‘zgaruvchining raqamli ko‘rinishiga ega bo‘lishimiz kerak. Buning usullaridan biri toifadagi har bir guruhni ifodalovchi ustunga ega bo‘lishdir.

Har bir ustun uchun qiymatlar 1 yoki 0 bo‘ladi, bunda 1 guruhning qo‘shilishini va 0 istisnoni bildiradi. Ushbu transformatsiya bitta issiq kodlash deb ataladi.

Buni qo‘lda qilishingiz shart emas, Python Pandas moduli bitta issiq kodlashni amalga oshiradigan get_dummies() deb nomlangan funksiyaga ega.

Pandas moduli haqida bizning Pandas qo‘llanmamizda bilib oling.

Misol

Avtomobil ustunini bitta issiq kodlash:

import pandas as pd cars = pd.read_csv('data.csv') ohe_cars = pd.get_dummies(cars[['Car']]) print(ohe_cars.to_string())

Natija

      Car_Audi  Car_BMW  Car_Fiat  Car_Ford  Car_Honda  Car_Hundai  Car_Hyundai  Car_Mazda  Car_Mercedes  Car_Mini  Car_Mitsubishi  Car_Opel  Car_Skoda  Car_Suzuki  Car_Toyoty  Car_VW  Car_Volvo
  0          0        0         0         0          0           0            0          0             0         0               0         0          0           0           1       0          0
  1          0        0         0         0          0           0            0          0             0         0               1         0          0           0           0       0          0
  2          0        0         0         0          0           0            0          0             0         0               0         0          1           0           0       0          0
  3          0        0         1         0          0           0            0          0             0         0               0         0          0           0           0       0          0
  4          0        0         0         0          0           0            0          0             0         1               0         0          0           0           0       0          0
  5          0        0         0         0          0           0            0          0             0         0               0         0          0           0           0       1          0
  6          0        0         0         0          0           0            0          0             0         0               0         0          1           0           0       0          0
  7          0        0         0         0          0           0            0          0             1         0               0         0          0           0           0       0          0
  8          0        0         0         1          0           0            0          0             0         0               0         0          0           0           0       0          0
  9          1        0         0         0          0           0            0          0             0         0               0         0          0           0           0       0          0
  10         0        0         0         0          0           0            1          0             0         0               0         0          0           0           0       0          0
  11         0        0         0         0          0           0            0          0             0         0               0         0          0           1           0       0          0
  12         0        0         0         1          0           0            0          0             0         0               0         0          0           0           0       0          0
  13         0        0         0         0          1           0            0          0             0         0               0         0          0           0           0       0          0
  14         0        0         0         0          0           1            0          0             0         0               0         0          0           0           0       0          0
  15         0        0         0         0          0           0            0          0             0         0               0         1          0           0           0       0          0
  16         0        1         0         0          0           0            0          0             0         0               0         0          0           0           0       0          0
  17         0        0         0         0          0           0            0          1             0         0               0         0          0           0           0       0          0
  18         0        0         0         0          0           0            0          0             0         0               0         0          1           0           0       0          0
  19         0        0         0         1          0           0            0          0             0         0               0         0          0           0           0       0          0
  20         0        0         0         1          0           0            0          0             0         0               0         0          0           0           0       0          0
  21         0        0         0         0          0           0            0          0             0         0               0         1          0           0           0       0          0
  22         0        0         0         0          0           0            0          0             1         0               0         0          0           0           0       0          0
  23         0        0         0         0          0           0            0          0             0         0               0         0          1           0           0       0          0
  24         0        0         0         0          0           0            0          0             0         0               0         0          0           0           0       0          1
  25         0        0         0         0          0           0            0          0             1         0               0         0          0           0           0       0          0
  26         1        0         0         0          0           0            0          0             0         0               0         0          0           0           0       0          0
  27         1        0         0         0          0           0            0          0             0         0               0         0          0           0           0       0          0
  28         0        0         0         0          0           0            0          0             0         0               0         0          0           0           0       0          1
  29         0        1         0         0          0           0            0          0             0         0               0         0          0           0           0       0          0
  30         0        0         0         0          0           0            0          0             1         0               0         0          0           0           0       0          0
  31         0        0         0         0          0           0            0          0             0         0               0         0          0           0           0       0          1
  32         0        0         0         1          0           0            0          0             0         0               0         0          0           0           0       0          0
  33         0        1         0         0          0           0            0          0             0         0               0         0          0           0           0       0          0
  34         0        0         0         0          0           0            0          0             0         0               0         1          0           0           0       0          0
  35         0        0         0         0          0           0            0          0             1         0               0         0          0           0           0       0          0


Misolni ishga tushirish »

Natijalar

Avtomobil ustunida har bir avtomobil markasi uchun ustun yaratildi.



CO2’ni bashorat qilish

Biz ushbu qo‘shimcha ma’lumotdan CO2 ni bashorat qilish uchun hajm va og‘irlik bilan birga foydalanishimiz mumkin

Ma’lumotni birlashtirish uchun biz pandalardan concat() funksiyasidan foydalanishimiz mumkin.

Avval biz bir nechta modullarni import qilishimiz kerak.

Biz Pandalarni import qilishdan boshlaymiz.

import pandas

Pandas moduli bizga csv fayllarni o‘qish va DataFrame obyektlarini boshqarish imkonini beradi:

cars = pandas.read_csv("data.csv")

Shuningdek, u bizga soxta o‘zgaruvchilarni yaratishga imkon beradi:

ohe_cars = pandas.get_dummies(cars[['Car']])

Keyin mustaqil o‘zgaruvchilarni (X) tanlashimiz va soxta o‘zgaruvchilarni ustunlar bo‘yicha qo‘shishimiz kerak.

Shuningdek, qaram o‘zgaruvchini y da saqlang.

X = pandas.concat([cars[['Volume', 'Weight']], ohe_cars], axis=1)
y = cars['CO2']

Shuningdek, chiziqli modelni yaratish uchun sklearn-dan usulni import qilishimiz kerak

Learn about Chiziqli regressiya.

from sklearn import linear_model

Endi biz ma’lumotlarni chiziqli regressiyaga moslashimiz mumkin:

regr = linear_model.LinearRegression()
regr.fit(X,y)

Nihoyat, avtomobilning og‘irligi, hajmi va ishlab chiqaruvchisiga qarab CO2 emissiyasini taxmin qilishimiz mumkin.

##predict the CO2 emission of a VW where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]])

Misol

import pandas from sklearn import linear_model cars = pandas.read_csv("data.csv") ohe_cars = pandas.get_dummies(cars[['Car']]) X = pandas.concat([cars[['Volume', 'Weight']], ohe_cars], axis=1) y = cars['CO2'] regr = linear_model.LinearRegression() regr.fit(X,y) ##predict the CO2 emission of a VW where the weight is 2300kg, and the volume is 1300cm3: predictedCO2 = regr.predict([[2300, 1300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]]) print(predictedCO2)

Natija

 [122.45153299]


Misolni ishga tushirish »

Endi bizda ma’lumotlar to‘plamidagi hajm, vazn va har bir avtomobil markasi uchun koeffitsient mavjud


Dummifying

Kategoriyangizdagi har bir guruh uchun bitta ustun yaratish shart emas. Ma’lumot sizda mavjud bo‘lgan guruhlar sonidan 1 ta ustundan kam bo‘lgan holda saqlanishi mumkin.

Misol uchun, sizda ranglarni ifodalovchi ustun bor va bu ustunda sizda ikkita rang bor, qizil va ko‘k.

Misol

import pandas as pd colors = pd.DataFrame({'color': ['blue', 'red']}) print(colors)

Natija

    color
  0  blue
  1   red


Misolni ishga tushirish »

Siz qizil deb nomlangan 1 ta ustun yaratishingiz mumkin, bu yerda 1 qizil rangni va 0 qizil emas, ya’ni ko‘k rangni bildiradi.

Buni amalga oshirish uchun biz bitta issiq kodlash uchun ishlatgan funksiyadan foydalanishimiz mumkin, get_dummies va keyin ustunlardan birini tashlab qo‘yamiz. Natijada paydo bo‘lgan jadvaldan birinchi ustunni chiqarib tashlashga imkon beruvchi drop_first argumenti mavjud.

Misol

import pandas as pd colors = pd.DataFrame({'color': ['blue', 'red']}) dummies = pd.get_dummies(colors, drop_first=True) print(dummies)

Natija

     color_red
  0          0
  1          1


Misolni ishga tushirish »

Agar sizda 2 dan ortiq guruh bo‘lsa-chi? Qanday qilib bir nechta guruhlarni 1 ta kam ustun bilan ifodalash mumkin?

Aytaylik, bu safar bizda uchta rang bor: qizil, ko‘k va yashil. Birinchi ustunni tashlaganimizda get_dummies, biz quyidagi jadvalni olamiz.

Misol

import pandas as pd colors = pd.DataFrame({'color': ['blue', 'red', 'green']}) dummies = pd.get_dummies(colors, drop_first=True) dummies['color'] = colors['color'] print(dummies)

Natija

     color_green  color_red  color
  0            0          0   blue
  1            0          1    red
  2            1          0  green


Misolni ishga tushirish »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!