15 сСнтября 2021

πŸ“Š ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1: feature engineering

Kaggle expertβš›οΈ ΠŸΠΈΡˆΡƒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ… Π² сфСрС Machine Learning.
МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ – это Π½Π΅ просто ΠΏΠΎΠ΄Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы ML зависят ΠΎΡ‚ построСния ΠΈ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π’ сообщСствах спСциалистов ΠΏΠΎ Data Science эти понятия ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΠΎΠΆΠ΄Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚. РазбСрСмся, для Ρ‡Π΅Π³ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ feature engineering.
πŸ“Š ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1: feature engineering

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ (features) ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹?

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ, ΠΎΠ½ ΠΆΠ΅ Β«Ρ„ΠΈΡ‡Π°Β» (ΠΎΡ‚ Π°Π½Π³Π» feature) – это пСрСмСнная (столбСц Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅), которая описываСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ характСристику ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΡ€Π°Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°ΠΌΠ½Π΅ΠΌ Π·Π°Π΄Π°Ρ‡ машинного обучСния Π² Ρ†Π΅Π»ΠΎΠΌ: ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΈΡ… основании ΠΌΡ‹ строим прСдсказания Π² модСлях.

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ²:

  • Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° значСния. НапримСр, [true, false], [0,1], [β€œΠ΄Π°β€, β€œΠ½Π΅Ρ‚β€].
  • ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ (ΠΈΠ»ΠΈ ΠΆΠ΅ Π½ΠΎΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅). Они ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ количСство ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ «дСнь Π½Π΅Π΄Π΅Π»ΠΈΒ» ΠΈΠΌΠ΅Π΅Ρ‚ 7 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ: понСдСльник, Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊ ΠΈ Ρ‚. Π΄. Π΄ΠΎ Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΡ.
  • УпорядочСнныС. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠΌ случаС сущСствуСт Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ упорядочиваниС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ. НапримСр, «классы Π² школС» ΠΎΡ‚ 1 Π΄ΠΎ 11. Бюда ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ отнСсти «врСмя суток», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ 24 уровня ΠΈ являСтся упорядочСнным.
  • ЧисловыС (количСствСнныС). Π­Ρ‚ΠΎ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ минус бСсконСчности Π΄ΠΎ плюс бСсконСчности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя отнСсти ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ‚Ρ€Π΅ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ².

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для Π·Π°Π΄Π°Ρ‡ машинного обучСния Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Β«Ρ„ΠΈΡ‡ΠΈΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° самом Π΄Π΅Π»Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ эта ΡΡ‚Π°Ρ‚ΡŒΡ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ построСниС ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ²?

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² (Feature Engineering) – это процСсс, Π²ΠΎ врСмя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ· Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΆΠΈΠ·Π½ΠΈ Ρ€Π΅Π΄ΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ приходят Π² Π²ΠΈΠ΄Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΠΏΠΎΡ‚ΠΎΠΌΡƒ любая Π·Π°Π΄Π°Ρ‡Π° начинаСтся с извлСчСния ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ².

НапримСр, Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° Β«ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΠΈΒ», содСрТащая ΠΎΠ΄Π½Ρƒ строку для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Ρ‚ΠΈΠ²ΡˆΠ΅Π³ΠΎ сайт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π’ Π½Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° «ВзаимодСйствия», содСрТащая строку для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ взаимодСйствия (ΠΊΠ»ΠΈΠΊΠ° ΠΈΠ»ΠΈ посСщСния страницы), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» Π½Π° сайтС. Π­Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ взаимодСйствия ΠΈ Ρ‚ΠΈΠΏΠ΅ события, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставляло собой взаимодСйствиС (событиС Β«ΠŸΠΎΠΊΡƒΠΏΠΊΠ°Β», событиС «Поиск» ΠΈΠ»ΠΈ событиС Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½ΡƒΒ»). Π­Ρ‚ΠΈ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой столбцом Customer ID.

πŸ“Š ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1: feature engineering
πŸ“Š ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1: feature engineering
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Ρ‚ Ρ‚ΠΎΠ²Π°Ρ€ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·, ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² со строкой для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ покупатСля. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ машинного обучСния. Однако Ρ‚Π°Π±Π»ΠΈΡ†Π°, которая большС всСго ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° эту (Β«ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΠΈΒ»), Π½Π΅ содСрТит практичСски Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ· Π½Π΅Π΅ нСсколько характСристик, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, количСства Π΄Π½Π΅ΠΉ, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° рСгистрации ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π½ΠΎ наши возмоТности Π½Π° этом этапС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ взаимодСйствий. ΠžΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ‚ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ статистику для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ всС значСния Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ «ВзаимодСйствия» с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ этого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π’ΠΎΡ‚ нСсколько ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ², ΠΈΠ»ΠΈ ΠΆΠ΅ Β«Ρ„ΠΈΡ‡Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΌ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ:

  • Π‘Ρ€Π΅Π΄Π½Π΅Π΅ врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌΠΈ ΠΏΠΎΠΊΡƒΠΏΠΊΠ°ΠΌΠΈ.
  • БрСдняя сумма ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ.
  • Максимальная сумма ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ.
  • ВрСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ.
  • ΠžΠ±Ρ‰Π΅Π΅ количСство ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΉΡ‚ΠΈ всС связанныС с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ взаимодСйствия. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ‚Π΅Ρ…, Ρ‡Π΅ΠΉ Π’ΠΈΠΏ (Type) Π½Π΅ являСтся "ΠŸΠΎΠΊΡƒΠΏΠΊΠΎΠΉ", ΠΈ вычислим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Π°Π½Π½Ρ‹Π΅.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ процСсс ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ случая использования ΠΈ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для эффСктивного использования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² машинного обучСния ΠΈ построСния прогностичСских ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

НиТС Π±ΡƒΠ΄ΡƒΡ‚ пСрСчислСны основныС ΠΈ самыС извСстныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ feature engineering с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² Π½Π° Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния – ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ΠΎΡ€ ΠΎΡ‡Π΅Π½ΡŒ сильно влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния.

Π‘Π°ΠΌΠΎΠ΅ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ – ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ строки ΠΈΠ»ΠΈ вСсь столбСц. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€ΠΎΠ³Π° для отбрасывания Π½Π΅ сущСствуСт, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 70% Π² качСствС значСния ΠΈ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ строки со столбцами, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ значСния, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ этот ΠΏΠΎΡ€ΠΎΠ³.

        import pandas as pd
import numpy as np

threshold = 0.7
# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ столбцов с коэффициСнтом ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΡ€ΠΎΠ³Π°
data = data[data.columns[data.isnull().mean() < threshold]]

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк с коэффициСнтом отсутствия Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΡ€ΠΎΠ³Π°
data = data.loc[data.isnull().mean(axis=1) < threshold]
    

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‡Π΅ΠΌ отбрасываниС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ сохраняСт Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ относитС ΠΊ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠΌ значСниям. НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ столбСц, с числами 1 ΠΈ N/A , Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ вСроятно, Ρ‡Ρ‚ΠΎ строки N/A ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ 0 .

Π’ качСствС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°: Ρƒ вас Π΅ΡΡ‚ΡŒ столбСц, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ количСство посСщСний ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π·Π° послСдний мСсяц. Π’ΡƒΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° 0.

Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ, Π»ΡƒΡ‡ΡˆΠΈΠΉ способ заполнСния ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ столбцов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ срСдниС значСния столбцов Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ значСниям выбросов, ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π±ΠΎΠ»Π΅Π΅ устойчивыми.

        import pandas as pd
import numpy as np

# Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ 0
 data = data.fillna (0)
# Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅Π΄ΠΈΠ°Π½Π°ΠΌΠΈ столбцов
 data = data.fillna (data.median ())
    

Π—Π°ΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ

Π—Π°ΠΌΠ΅Π½Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² столбцС Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ разбираСмся с ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… ситуациях Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

        import pandas as pd
import numpy as np

data['column_name'].fillna(data['column_name'].value_counts() .idxmax(), inplace=True) 
    

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ выбросов

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ выбросы, я Ρ…ΠΎΡ‡Ρƒ Π·Π°ΡΠ²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ выбросы – провСсти Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ вашСго датасСта. Π’ этом Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ seaborn ΠΈ matplotlib.

Π§Ρ‚ΠΎ касаСтся обнаруТСния выбросов: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… способов это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отклоняСтся большС, Ρ‡Π΅ΠΌ Π½Π° x * стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ выброс. НаиболСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для x – Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… [2, 4].

        import pandas as pd
import numpy as np

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ нСподходящих строк
x = 3
upper_lim = data['column'].mean () + data['column'].std () * x 
lower_lim = data['column'].mean () - data['column'].std () * x
data = data[(data['column'] < upper_lim) & (data['column'] > lower_lim)]
    

Π”Ρ€ΡƒΠ³ΠΎΠΉ матСматичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ обнаруТСния выбросов – использованиС ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»Π΅ΠΉ. Π’Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ значСния свСрху ΠΈΠ»ΠΈ снизу Π·Π° выброс.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ здСсь являСтся повторная установка ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ значСния, ΠΈ это зависит ΠΎΡ‚ распрСдСлСния Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, распространСнной ошибкой являСтся использованиС ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»Π΅ΠΉ Π² соотвСтствии с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли ваши Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 100 , ваши Π»ΡƒΡ‡ΡˆΠΈΠ΅ 5% – это Π½Π΅ значСния ΠΌΠ΅ΠΆΠ΄Ρƒ 96 ΠΈ 100 . Π’Π΅Ρ€Ρ…Π½ΠΈΠ΅ 5% ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ здСсь значСния, выходящиС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ 95-Π³ΠΎ процСнтиля Π΄Π°Π½Π½Ρ‹Ρ….

        import pandas as pd
import numpy as np

# ИзбавляСмся ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… строк ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»Π΅ΠΉ
upper_lim = data['column'].quantile(.95)
lower_lim = data['column'].quantile(.05)
data = data[(data['column'] < upper_lim) & (data['column'] > lower_lim)]
    

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ выбросов

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ выбросов – ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΡ…, Π° Π½Π΅ ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ. Π’Ρ‹ смоТСтС ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свой Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ для ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° распрСдСлСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ качСство ΠΌΠΎΠ΄Π΅Π»ΠΈ, поэтому Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π·ΠΎΠ»ΠΎΡ‚ΠΎΠΉ сСрСдины.

        import pandas as pd
import numpy as np

upper_lim = data['column'].quantile(.95)
lower_lim = data['column'].quantile(.05)
data.loc[(df[column] > upper_lim),column] = upper_lim
data.loc[(df[column] < lower_lim),column] = lower_lim
    

ЛогарифмичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

ЛогарифмичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ – ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π²ΠΎ врСмя построСния ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² матСматичСских ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.
  • Оно ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ искаТСнныС Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ послС прСобразования распрСдСлСниС становится Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ.
  • Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв порядок Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… измСняСтся Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ возрастом ΠΎΡ‚ 15 Π΄ΠΎ 20 Π»Π΅Ρ‚ Π½Π΅ Ρ€Π°Π²Π½Π° возрасту ΠΎΡ‚ 65 Π΄ΠΎ 70 Π»Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ аспСктам Ρ€Π°Π·Π½ΠΈΡ†Π° Π² 5 Π»Π΅Ρ‚ Π² ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΌ возрастС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… поступаСт Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ процСсса, ΠΈ логарифмичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ различия Π²Π΅Π»ΠΈΡ‡ΠΈΠ½.
  • Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сниТаСт влияниС выбросов Π·Π° счСт Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, ΠΈ модСль становится Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ.

Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ примСняСтС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

        import pandas as pd
import numpy as np

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ логарифмичСской трансформации
data = pd.DataFrame({'value':[2,45, -23, 85, 28, 2, 35, -12]})
data['log+1'] = (data['value']+1).transform(np.log)

# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
# (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ значСния Ρ€Π°Π·Π½Ρ‹Π΅)
data['log'] = (data['value']-data['value'].min()+1) .transform(np.log)
    

БыстроС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (One-Hot encoding)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ распрСдСляСт значСния Π² столбцС ΠΏΠΎ нСскольким столбцам Ρ„Π»Π°Π³ΠΎΠ² ΠΈ присваиваСт ΠΈΠΌ 0 ΠΈΠ»ΠΈ 1. Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ значСния Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ связь ΠΌΠ΅ΠΆΠ΄Ρƒ сгруппированным ΠΈ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ столбцом. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ измСняСт ваши ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ, Π² числовой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° происходит Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

πŸ“Š ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1: feature engineering

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ функция ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° быстрого кодирования с вашими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

        encoded_columns = pd.get_dummies(data['column'])
data = data.join(encoded_columns).drop('column', axis=1)
    

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ²

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв числовыС характСристики Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

НапримСр, столбцы возраста ΠΈ мСсячной Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

Как ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ эти Π΄Π²Π° столбца, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² нашСй Π·Π°Π΄Π°Ρ‡Π΅? ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ послС Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ элСмСнты становятся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ.

БущСствуСт Π΄Π²Π° распространСнных способа ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ:

  • Нормализация.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС всС значСния Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 1. ДискрСтныС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ значСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ 0 ΠΈ 1.

πŸ“Š ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1: feature engineering
        import pandas as pd
import numpy as np

data = pd.DataFrame({'value':[2,45, -23, 85, 28, 2, 35, -12]})

data['normalized'] = (data['value'] - data['value'].min()) / (data['value'].max() - data['value'].min())
    
  • Бтандартизация.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ значСния с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ стандартного отклонСния. Если стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, ΠΈΡ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π­Ρ‚ΠΎ сниТаСт влияниС выбросов Π² элСмСнтах. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ стандартизации срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΞΌ, Π° стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ Οƒ.

πŸ“Š ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1: feature engineering
        import pandas as pd
import numpy as np

data = pd.DataFrame({'value':[2,45, -23, 85, 28, 2, 35, -12]})

data['standardized'] = (data['value'] - data['value'].mean()) / data['value'].std()
    

Π Π°Π±ΠΎΡ‚Π° с тСкстом

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом слишком ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΡƒΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΈΡΡŒ Π² ΠΎΠ΄ΠΈΠ½ тСзис ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½ΠΈΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ описан самый популярный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с тСкстом, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ – ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова. Однако дСлая это слишком просто, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ смысла. НапримСр, Β«Π’Π΅Π»ΠΈΠΊΠΈΠ΅ Π›ΡƒΠΊΠΈΒ» это Π½Π΅ Π΄Π²Π° Ρ‚ΠΎΠΊΠ΅Π½Π°, Π° ΠΎΠ΄ΠΈΠ½.

ПослС прСвращСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ слов, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΡ… Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹. Π‘Π°ΠΌΡ‹ΠΉ простой ΠΌΠ΅Ρ‚ΠΎΠ΄ – Bag of Words. ΠœΡ‹ создаСм Π²Π΅ΠΊΡ‚ΠΎΡ€ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова считаСм количСство Π΅Π³ΠΎ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² тСкст ΠΈ подставляСм это число Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅.

Π’ ΠΊΠΎΠ΄Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ выглядит Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ Π½Π° словах:

        from functools import reduce
import numpy as np

texts = [['i', 'have', 'a', 'cat'],
         ['he', 'have', 'a', 'dog'],
         ['he', 'and', 'i', 'have', 'a', 'cat', 'and', 'a', 'dog']]

dictionary = list(enumerate(set(reduce(lambda x, y: x + y, texts))))

def vectorize(text):
    vector = np.zeros(len(dictionary))
    for i, word in dictionary:
        num = 0
        for w in text:
            if w == word:
                num += 1
        if num:
            vector[i] = num
    return vector
for t in texts:
    print(vectorize(t))
    

Π Π°Π±ΠΎΡ‚Π° с изобраТСниями

Π§Ρ‚ΠΎ касаСтся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ построСния ΠΈ извлСчСния ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² для этого Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… – ΠΎΠ΄Π½ΠΈ ΠΈΠ· самых простых.

Часто для Π·Π°Π΄Π°Ρ‡ с изобраТСниями ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опрСдСлСнная свСрточная ΡΠ΅Ρ‚ΡŒ. ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ сСти ΠΈ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ Π΅Π΅ с нуля. МоТно Π²Π·ΡΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… источников.

Π§Ρ‚ΠΎΠ±Ρ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ΄ свою Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² области Π½Π°ΡƒΠΊΠΈ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‚ fine tuning (Ρ‚ΠΎΠ½ΠΊΡƒΡŽ настройку). Π›ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ послСдниС слои нСйросСти, вмСсто Π½ΠΈΡ… Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅, ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ Π½Π°ΡˆΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈ ΡΠ΅Ρ‚ΡŒ дообучаСтся Π½Π° Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ шаблона:

        from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from scipy.misc import face
import numpy as np

resnet_settings = {'include_top': False, 'weights': 'imagenet'}
resnet = ResNet50(**resnet_settings)

img = image.array_to_img(face())
img = img.resize((224, 224))
# Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ рСсайзу
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
# Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, Ρ‚.ΠΊ. модСль рассчитана Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с массивом ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

features = resnet.predict(x)
    

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ построСниС ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ Π² ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΈ Π½Π°ΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π±Π΅Π· этого этапа ΠΌΡ‹ Π½Π΅ смоТСм ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ².

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ процСсс построСния Ρ„ΠΈΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ самым Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ: Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ выбросов, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ тСкста Π² Π²Π΅ΠΊΡ‚ΠΎΡ€ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ СстСствСнного языка, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ слова Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ пространство) – лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· этой области.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ посвящСна ΠΎΡ‚Π±ΠΎΡ€Ρƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ².

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию
Senior Java Developer
Москва, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Java Team Lead
Москва, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Go-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ
ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•