Daromadlar:
- Domen bilimlari bilan mazmunli lotin xususiyatlarni ishlab chiqarish va tegishli usullar bilan kategorik toifalarni kodlash qobiliyati (bir-hot, label, target)
- Raqamli o'zgaruvchilarni model turiga (standartlashtirish, normallashtirish) ko'ra masshtablash va keraksiz yoki to'liq bo'lmagan masshtablashdan qochish qobiliyati
- Trening/sinovdan keyin va faqat mashg‘ulotdan so‘ng barcha o‘zgarishlarni o‘rganish orqali xususiyatlarning chiqib ketishining oldini olish imkoniyati
Mashinani o'rganishda qadimgi ibora bor: "Amaliy mashinalarni o'rganish mohiyatan xususiyatli muhandislikdir". Chunki modelning muvaffaqiyati ko'pincha siz qaysi algoritmni tanlaganingizdan ko'ra modelga qanday ma'lumotlar berganligingizdan kelib chiqadi. Xususiyat muhandisligi - bu model o'rganishi mumkin bo'lgan xom ma'lumotlardan mazmunli signallarni ishlab chiqarish san'ati. Sun'iy intellekt bu bosqichda g'oyalarning boy manbai hisoblanadi: "Ushbu ma'lumotlardan qanday xususiyatlarni ishlab chiqarish mumkin" deb so'rasangiz, u o'nlab takliflarni sanab o'tadi. Ammo bu takliflarning ba'zilari qimmatli bo'lishi mumkin, ba'zilari foydasiz va ba'zilari xavfli bo'lishi mumkin (oqish). Uni tartibga solish sizning vazifangiz.
Nima uchun xususiyat muhandisligi
Xom ma'lumotlar kamdan-kam hollarda modelga eng yaxshi shaklda keladi. "Tug'ilgan sana" ustunining o'zi ma'nosiz bo'lsa-da, undan hosil bo'lgan "yosh" qiymati kuchli signaldir. “Buyurtma vaqti tamg‘asi”dan “hafta kuni”, “kun/tun”, “bayrammi” kabi atributlarni ajratib olishingiz mumkin. Nisbatan ("qarz/daromad nisbati") ishlab chiqarish uchun ikkita ustunni birlashtira olasiz. Bu erda xususiyat muhandisligi domen bilimlarini matematik signalga aylantiradi; Aynan shuning uchun ham aynan shu bosqich insoniy aql-zakovatni talab qiladi.
Kategorik o'zgaruvchilarni raqamlarga aylantirish: kodlash
Modellar odatda matn bilan emas, raqamlar bilan ishlaydi. Kategorik o'zgaruvchilarni (masalan, shahar, rang, mahsulot turi) raqamlarga aylantirish kodlash deb ataladi. Uchta keng tarqalgan usul:
Bir martalik kodlash: Har bir toifa uchun 0/1 qiymatiga ega alohida ustunni ochadi. "Shahar" uchun Istanbul, Anqara, Izmir ustunlari tuzilgan; Agar mijoz Istanbuldan bo'lsa, faqat o'sha ustun 1 bo'ladi. Kategoriyalar soni kam bo'lganda ideal; Agar juda ko'p toifalar mavjud bo'lsa, u yuzlab ustunlarni ishlab chiqaradi (bu "o'lchamdagi portlash" deb ataladi).
Yorliq kodlash: Har bir turkumga raqam beradi (Istanbul=0, Anqara=1). Bu oddiy, lekin u tasodifan modelga ketma-ketlikni o'rgatishi mumkin (masalan, Anqara > Istanbul); shuning uchun tartibsiz toifalarda ehtiyotkorlik bilan foydalaniladi.
Maqsadli kodlash: Har bir toifani ushbu toifadagi maqsadli o'zgaruvchining o'rtacha qiymati bilan almashtiradi. Bu juda kuchli, ammo eng xavfli oqish manbai: agar siz sinov ma'lumotlarining maqsadini hisobga olsangiz, model kelajakni ko'radi. U faqat o'quv ma'lumotlaridan va ehtiyotkorlik bilan (o'zaro tekshirish doirasida) hisoblanishi kerak.
Masshtablash: katta raqamlar modelni haddan tashqari oshirmaydi
Ba'zi modellar (masofaga asoslangan modellar, chiziqli modellar, neyron tarmoqlar) o'zgaruvchilar shkalasiga sezgir. Agar "daromad" (0-500 000) va "yosh" (0-100) bir xil sxemaga to'g'ri kelsa, daromad shunchaki katta bo'lgani uchun ustunlik qilishi mumkin. Masshtablash buni tuzatadi. Ikkita keng tarqalgan usul: standartlashtirish (har bir qiymatni "o'rtacha qiymatdan qancha standart og'ish" ga o'zgartiradi) va normalizatsiya (min-max normalizatsiya - qiymatlarni 0-1 oralig'iga siqib chiqaradi). Daraxtga asoslangan modellar (qaror daraxtlari, tasodifiy o'rmon) masshtabga sezgir emas, ular masshtabni talab qilmaydi.
E'tibor bering: masshtablash va kodlash parametrlari (o'rtacha, standart og'ish, toifa-o'rtacha xaritalash) faqat o'quv ma'lumotlaridan hisoblab chiqilishi kerak, keyin test ma'lumotlariga ham xuddi shunday qo'llanilishi kerak. Sinov ma'lumotlarini o'z ichiga olgan holda sizib chiqiladi va modelingiz avvalgisidan yaxshiroq ko'rinadi.
Xususiyat muhandisligidagi qochqinning yuragi
Xususiyatlarni yaratish - bu ma'lumotlarning tarqalishi ko'pincha sodir bo'ladigan joy. Ikkita odatiy xato: Vaqt o'tishi - kelajakdagi ma'lumotlarni o'z ichiga olgan xususiyatni ishlab chiqarish (shu jumladan, "so'nggi 30 kunlik o'rtacha" ni hisoblashda prognoz qilingan kundan keyingi kunlar). Statistik ma'lumotlarning oqib chiqishi - trening/sinovdan oldin barcha ma'lumotlardan xususiyatni (o'rtacha masshtab, maqsadli kodlash qiymati) hisoblash. Qoida: har bir transformatsiyani birinchi navbatda poyezd/test bo‘linishidan so‘ng va faqat mashg‘ulot ma’lumotlaridan bilib oling. Buni muntazam ravishda amalga oshirishning eng xavfsiz usuli quvur liniyasidan foydalanishdir - barcha o'zgarishlarni bitta zanjirda to'playdigan va ularni bo'lingandan keyin qo'llaydigan tuzilma.
Usul
nima uchun
Oqish xavfi
eslatma
Bir martalik kodlash
Bir nechta toifalar bilan o'zgaruvchan
past
Bir nechta toifadagi o'lchamlarni portlatadi
Yorliq kodlash
Saralangan turkum
past
Tartibsizlik noto'g'ri tartibni o'rgatadi
maqsadli kodlash
Ko'p toifali, kuchli signal
juda yuqori
Faqat ta'limdan, CVda
standartlashtirish
Chiziqli/masofaviy modellar
o'rta
Parametr faqat ta'limga bog'liq
Vaqt oynasi xususiyati
vaqt seriyasi
yuqori
Kelajakni qo'shing
uchta mini holat
1-holat - Qimmatbaho mulk. Kredit jamoasi xom "oylik daromad" va "oylik qarzni to'lash" ustunlaridan "qarz-daromad nisbati" xususiyatini yaratdi. Ushbu yagona olingan xususiyat model aniqligini 71% dan 79% gacha oshirdi; chunki mutlaq daromad emas, balki stavka haqiqatda xavfni aniqladi. Dars: domen bilimlari tomonidan yaratilgan nisbatlar kuchli signaldir.
2-holat - Maqsadli kodlashning oqishi. Bir jamoa "pochta indeksini" maqsadli kodlash (shu hududdagi o'rtacha ishdan chiqish tezligi) bilan raqamga aylantirdi, lekin bo'linishdan oldin barcha ma'lumotlardan shunday qildi. Model sinov majmuasida 94% ni berdi, ishlab chiqarishda esa 68% ga tushdi. 6 haftalik mehnat behuda ketdi. Dars: maqsadli kodlash ehtiyotkorlik bilan, faqat trening doirasida amalga oshiriladi.
3-holat - Masshtabni unutish. Bitta tahlilchi daromadni (0-400 000) va mijozning yoshini (18-75) masofaga asoslangan modelga masshtablashsiz kiritdi. Model deyarli faqat daromadga qaradi va yosh ta'sirini yo'q qildi. Masshtablash qo'shilgach, segmentatsiya mazmunli bo'ldi. Dars: masofaviy/chiziqli modellarda masshtablash e'tibordan chetda qolmaydi.
To'rt nusxa ko'chirish shablonlari
1) Xususiyat g'oyasini yaratish (yo'q qilish sizga bog'liq):
Sizning rolingiz: muhandislik yordamchisi. Mening df ustunlarim: tug'ilgan_sana, buyurtma_vaqti (vaqt belgisi), daromad_tl, qarz_tl, shahar, mahsulot_toifasi. Maqsad: "kredit to'lanadimi" (0/1). Ushbu ustunlardan yaratilishi mumkin bo'lgan 15 ta xususiyatni taklif qiling; har biri uchun oqish xavfini (past/o'rta/yuqori) belgilang. Kelajakdagi ma'lumotlarni o'z ichiga olganlarni aniq belgilang.
2) Xavfsiz kodlash (bo'linishdan keyingi):
"Shahar" va "mahsulot_toifasi" ni bir martalik kodlash kodini yozing. MUHIM: kodlashni faqat o'quv ma'lumotlariga moslang, so'ngra test ma'lumotlarini o'zgartiring (sklearn OneHotEncoder bilan). Ta'limda ko'rinmas toifani (handle_unknown) qanday ishlatayotganingizni tushuntiring.
3) Quvur liniyasi bilan oqishsiz konvertatsiya:
Sklearn Pipeline-ni sozlang: raqamli ustunlarga StandardScaler-ni, toifali ustunlarga OneHotEncoder-ni qo'llang, oxirida tasniflagich qo'shing. Barcha o'zgarishlar poezd/sinovdan keyin va faqat mashg'ulotdan keyin o'rganilishini kafolatlang. Kodni tushuntiring va nima uchun u oqmaydi.
4) Vaqt oynasi xususiyati (oqish nazorati):
Har bir mijoz uchun “oxirgi 30 kundagi buyurtmalar soni” atributini yarating, lekin HECH QACHON prognoz kunidan keyingi maʼlumotlarni kiritmang. Kod kelajakka qaramasligini satrga tushuntiring. Malumot sanasi ustunini beraman.
Zaif taklif / Kuchli taklif
Zaif taklif:
Ushbu ma'lumotlarga yaxshi xususiyatlarni qo'shing.
"Yaxshi" aniqlanmagan, maqsad noaniq, oqish nazorati yo'q. AI tasodifiy, ehtimol sizib chiqadigan xususiyatlarni yaratadi.
Kuchli so'rov:
Sizning rolingiz: texnik muhandis. Maqsad: "30 kun ichida uzilish" (0/1), taxminiy sanasi: save_date. df.Vazifada tranzaksiya tarixi mavjud: 8 ta xususiyatni yarating, HAR BIR uchun "Prognoz vaqtida menda bu ma'lumot bormi" degan savolga javob bering. Vaqt oynasi xususiyatlarida mos yozuvlar sanasidan keyin sanani qo'shish. Poezd/sinov qismidan keyin bajarilishi uchun kodni quvur liniyasiga mos keladigan tarzda yozing.
Bu erda maqsad, mos yozuvlar vaqti va oqish nazorati boshidan aniqlanadi.
Umumiy xatolar
- Bo'linishdan oldin barcha ma'lumotlardan transformatsiyani o'rganish. Agar masshtablash/kodlash parametri sinov ma'lumotlarini ko'rsa, oqish sodir bo'ladi.
- Maqsadli kodlashdan ehtiyotsiz foydalanish. Bu eng kuchli, lekin eng oqadigan usul; faqat treningdan, o'zaro tekshirishda.
- Vaqt oynasi xususiyati bilan kelajakni qo'shish. Agar "oxirgi 30 kun" hisobi prognoz qilingan kundan keyin kiritilsa, model kelajakni ko'radi.
- Daraxt modelida keraksiz masshtablash va chiziqli modelda to'liq bo'lmagan masshtablash. Masshtablash qarorlari model turiga qarab qabul qilinadi.
- AIning har bir taklifini shubhasiz qo'shish. Takliflar foydasiz va oqadigan xususiyatlarni o'z ichiga olishi mumkin.
Maslahat: O'zingiz yaratgan har bir xususiyat uchun bitta savol yozing: "Bu qiymatni bashorat qilish paytidagi ma'lumotlarim bilan hisoblay olamanmi?" Agar javob aniq "ha" bo'lmasa, funksiyadan foydalanmang. Ushbu yagona intizom ko'pgina xususiyatlar bilan bog'liq qochqinlarni bartaraf qiladi.
qisqa bayoni; yakunida
Xususiyat muhandisligi - bu xom ma'lumotlardan mazmunli signallarni yaratish san'ati va ko'pincha algoritmdan ko'ra modelning muvaffaqiyatini aniqlaydi. Kategoriyalarni kodlash (bir-hot, label, target), miqyosli raqamlar (standartlashtirish, normallashtirish) va hosilaviy xususiyatlarni domen bilimlari bilan ishlab chiqarish asosiy vositalardir. Ammo bu bosqich ham qochqinning yuragi: barcha o'zgarishlarni mashg'ulot/sinovdan keyin va faqat mashg'ulot ma'lumotlaridan o'rganish kerak. AI juda ko'p g'oyalarni ishlab chiqaradi; Bu qimmatli va xavflini ajratib turadigan insoniy mulohazadir.
Ilova vazifasi
Maqsadli o'zgaruvchini tanlang va sizda mavjud bo'lgan ustunlardan kamida beshta lotin xususiyatni loyihalashtiring. Ularning har biri uchun "bashorat vaqtida men tayyormanmi" degan savolga yozma ravishda javob bering va kamida bittasini "oqish xavfi yuqori" deb chiqarib tashlang. Keyin bo'limdan keyin amalga oshiriladigan quvur liniyasidagi xavfsiz xususiyatlarni kodlang.
nazorat ro'yxati
- [ ] Poyezd/sinovdan keyin barcha o‘zgarishlarni qo‘lladimmi?
- [ ] Men faqat treningdan masshtablash/kodlash parametrlarini o‘rgandimmi?
- [ ] Har bir xususiyat uchun "bashorat vaqtida menda bormi" degan savolga javob berdimmi?
- [ ] Men maqsadli kodlash kabi yuqori xavfli usullarga qo'shimcha e'tibor qaratdimmi?
- [ ] Model turiga (daraxt/chiziqli) mos ravishda o'lchashga qaror qildimmi?