Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

НСбольшоС Π²ΡΡ‚ΡƒΠΏΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ слово

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ бОльшСС количСство Π΄Π΅Π» ΠΌΡ‹ Π±Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ, Ссли Π±Ρ‹ Π½Π°ΠΌ прСдоставляли ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скаТут Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π‘Π°ΠΌ ΠΆΠ΅ вспоминаю Π² своСй ΠΆΠΈΠ·Π½ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠ³ Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π΄Π΅Π»ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ просто слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ, с Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ. Π‘Ρ‹Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚, ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π΄Π°Π²Π½ΠΎ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Ρ‚Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π» слова Β«Data ScienceΒ» ΠΈ Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π±Π΅ Π΄ΠΎ этого Π΄Π°Π»Π΅ΠΊΠΎ, Π° люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ этим Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π³Π΄Π΅-Ρ‚ΠΎ Ρ‚Π°ΠΌ, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΌΠΈΡ€Π΅. Π’Π°ΠΊ Π½Π΅Ρ‚ ΠΆΠ΅, ΠΎΠ½ΠΈ прямо здСсь. И, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, благодаря людям ΠΈΠ· этой сфСры Ρ‚Π΅Π±Π΅ Π² Π»Π΅Π½Ρ‚Ρƒ ΠΏΠΎΠΏΠ°Π»Π° ΡΡ‚Π°Ρ‚ΡŒΡ. БущСствуСт ΠΏΠΎΠ»Π½ΠΎ курсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π΅Π±Π΅ освоится с этим рСмСслом, здСсь ΠΆΠ΅ я ΠΏΠΎΠΌΠΎΠ³Ρƒ Ρ‚Π΅Π±Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг.

Ну Ρ‡Ρ‚ΠΎ, Ρ‚Ρ‹ Π³ΠΎΡ‚ΠΎΠ²? Π‘Ρ€Π°Π·Ρƒ скаТу, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π±Π΅ придСтся Π·Π½Π°Ρ‚ΡŒ Python 3, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь. А Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° Jupyter Notebook ΠΈΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ google colab.

Π¨Π°Π³ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

Kaggle β€” Ρ‚Π²ΠΎΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Π² этом Π΄Π΅Π»Π΅. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π½Π΅Π³ΠΎ, Π½ΠΎ ΠΎΠ± этом я расскаТу Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π­Ρ‚ΠΎ такая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ сорСвнования ΠΏΠΎ Data Science. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΌ сорСвновании Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах Ρ‚Ρ‹ Π±ΡƒΠ΄Π΅ΡˆΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π΅Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ количСство ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ Π² нашС врСмя.

ΠΠ°ΡˆΡƒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΡ‹ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°. НазываСтся ΠΎΠ½Π° Ρ‚Π°ΠΊ: Β«Π’ΠΈΡ‚Π°Π½ΠΈΠΊΒ». УсловиС Ρ‚Π°ΠΊΠΎΠ²ΠΎ: ΡΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²Ρ‹ΠΆΠΈΠ²Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятый Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. Π’ Ρ†Π΅Π»ΠΎΠΌ говоря, Π·Π°Π΄Π°Ρ‡Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎΡΡ DS, это сбор Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡ€ΠΎΠ³Π½ΠΎΠ· ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ kaggle ΠΆΠ΅ Π½Π°ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этап сбора Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΎΠ½ΠΈ прСдставлСны Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Нам Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ!

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Data располоТСны Ρ„Π°ΠΉΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТатся Π΄Π°Π½Π½Ρ‹Π΅

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ наши Jupyter Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΠΊΠΈ и…

Π¨Π°Π³ Π²Ρ‚ΠΎΡ€ΠΎΠΉ

Как Π½Π°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

import pandas as pd
import numpy as np

Pandas ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ .csv Ρ„Π°ΠΉΠ»Ρ‹ для дальнСйшСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Numpy Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с числами.
Π˜Π΄Ρ‘ΠΌ дальшС. Π’ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Ρ„Π°ΠΉΠ» train.csv ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ Π΅Π³ΠΎ ΠΊ Π½Π°ΠΌ:

dataset = pd.read_csv('train.csv')

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΊ нашСй Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ train.csv Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ dataset. Π”Π°Π²Π°ΠΉΡ‚Π΅ глянСм, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ находится:

dataset.head()

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

Ѐункция head() позволяСт Π½Π°ΠΌ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нСсколько строк Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°.

Π‘Ρ‚ΠΎΠ±Ρ†Ρ‹ Survived β€” это, ΠΊΠ°ΠΊ Ρ€Π°Π·, наши Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² этом Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ΅ извСстны. По вопросу Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ столбСц Survived для Π΄Π°Π½Π½Ρ‹Ρ… test.csv. Π’ этих Π΄Π°Π½Π½Ρ‹Ρ… хранится информация ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… пассаТирах Π’ΠΈΡ‚Π°Π½ΠΈΠΊΠ°, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°ΠΌ, Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ, нСизвСстны исходы.

Π˜Ρ‚Π°ΠΊ, Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Π½Π°ΡˆΡƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° зависимыС ΠΈ нСзависимыС Π΄Π°Π½Π½Ρ‹Π΅. Π’ΡƒΡ‚ всё просто. ЗависимыС Π΄Π°Π½Π½Ρ‹Π΅ β€” это Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ нСзависимых Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ находится Π² исходах. НСзависимыС Π΄Π°Π½Π½Ρ‹Π΅ β€” это Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° исход.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…:

Β«Π’ΠΎΠ²Π° ΡƒΡ‡ΠΈΠ» ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΡƒ β€” Π½Π΅Ρ‚.
Π’ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ 2.Β»

ΠžΡ†Π΅Π½ΠΊΠ° ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ зависит ΠΎΡ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° вопрос: ΡƒΡ‡ΠΈΠ» Π»ΠΈ Π’ΠΎΠ²Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΡƒ? ЯснСнько? ДвигаСмся дальшС, ΠΌΡ‹ ΡƒΠΆΠ΅ Π±Π»ΠΈΠΆΠ΅ ΠΊ Ρ†Π΅Π»ΠΈ!

Врадиционная пСрСмСнная для нСзависимых Π΄Π°Π½Π½Ρ‹Ρ… β€” Π₯. Для зависимых β€” Ρƒ.

Π”Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

X = dataset.iloc[ : , 2 : ]
y = dataset.iloc[ : , 1 : 2 ]

Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? Π€ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ iloc[:, 2: ] ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΈΡ‚ΠΎΠ½Ρƒ: Ρ…ΠΎΡ‡Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π₯ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ со Π²Ρ‚ΠΎΡ€ΠΎΠΉ столбца (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ счёт начинаСтся с нуля). Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Ρƒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ столбца.

[ a:b, c:d ] β€” это конструкция Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² скобках. Если Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ [:,: d] ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π² Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ΅ всС столбцы, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚, начиная с Π½ΠΎΠΌΠ΅Ρ€Π° d ΠΈ дальшС. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ a ΠΈ b ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ строки, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π°ΠΌ всС Π½ΡƒΠΆΠ½Ρ‹, поэтому это оставляСм Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π²Ρ‹ΡˆΠ»ΠΎ:

X.head()

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

y.head()

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ этот нСбольшой ΡƒΡ€ΠΎΠΊ, ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ столбцы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ особого Β«ΡƒΡ…ΠΎΠ΄Π°Β», Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π²Ρ‹ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. Π’ Π½ΠΈΡ… содСрТатся Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° str.

count = ['Name', 'Ticket', 'Cabin', 'Embarked']
X.drop(count, inplace=True, axis=1)

Π‘ΡƒΠΏΠ΅Ρ€! Π˜Π΄Ρ‘ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ.

Π¨Π°Π³ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ

Π’ΡƒΡ‚ Π½Π°ΠΌ потрСбуСтся Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наши Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ машина Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»Π°, ΠΊΠ°ΠΊ эти Π΄Π°Π½Π½Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Но ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ Π½Π΅ всС, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° str, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ оставили. Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† Β«SexΒ». Как ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ? ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠ»Π΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ: 10 β€” муТской ΠΏΠΎΠ», 01 β€” ТСнский ΠΏΠΎΠ».

Для Π½Π°Ρ‡Π°Π»Π° наши Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅ΠΌ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ NumPy:

X = np.array(X)
y = np.array(y)

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ глядим:

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder

ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [1])],
                       remainder='passthrough')
X = np.array(ct.fit_transform(X))

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° sklearn β€” это такая крутая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая позволяСт Π½Π°ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Data Science. Она содСрТит большоС количСство интСрСсных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π½Π°ΠΌ Π·Π°Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

OneHotEncoder ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ» Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² Ρ‚ΠΎΠΌ прСдставлСнии, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈ описали. Π‘ΡƒΠ΄Π΅Ρ‚ создано 2 класса: муТской, ТСнский. Если Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ β€” ΠΌΡƒΠΆΡ‡ΠΈΠ½Π°, Ρ‚ΠΎ Π² столбСц «муТской» Π±ΡƒΠ΄Π΅Ρ‚ записана 1, Π° Π² «ТСнский», соотвСтствСнно, 0.

ПослС OneHotEncoder() cΡ‚ΠΎΠΈΡ‚ [1] β€” это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ столбСц Π½ΠΎΠΌΠ΅Ρ€ 1 (счёт с нуля).

Π‘ΡƒΠΏΠ΅Ρ€. ДвигаСмся Π΅Ρ‰Π΅ дальшС!

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚Π°ΠΊΠΎΠ΅ случаСтся, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ(Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ NaN β€” not a number). НапримСр, Π΅ΡΡ‚ΡŒ информация ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ΅: Π΅Π³ΠΎ имя, ΠΏΠΎΠ». А Π²ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π΅Π³ΠΎ возрастС Π½Π΅Ρ‚. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄: Π½Π°ΠΉΠ΄Π΅ΠΌ срСднСС арифмСтичСскоС ΠΏΠΎ всСм столбцам ΠΈ, Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π² столбцС ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹, Ρ‚ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ пустоту срСдним арифмСтичСским.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer.fit(X)
X = imputer.transform(X)

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ возьмСм Π² счСт, Ρ‡Ρ‚ΠΎ ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ситуации, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ сильно разросаны. КакиС-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ [0:1], Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° сотни ΠΈ тысячи. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ разброс ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π±Ρ‹Π» Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π² расчётах, ΠΌΡ‹ проскалируСм Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ. ΠŸΡƒΡΡ‚ΡŒ всС числа Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ Ρ‚Ρ€Ρ‘Ρ…. Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ StandartScaler.

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X[:, 2:] = sc.fit_transform(X[:, 2:])

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наши Π΄Π°Π½Π½Ρ‹Π΅ выглядят Ρ‚Π°ΠΊ:

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

Класс. ΠœΡ‹ ΡƒΠΆΠ΅ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ нашСй Ρ†Π΅Π»ΠΈ!

Π¨Π°Π³ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ

ΠžΠ±ΡƒΡ‡ΠΈΠΌ Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ модСль! Из Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ sklearn ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство интСрСсностСй. Π― ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ модСль Gradient Boosting Classifier. A classifier ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ наша Π·Π°Π΄Π°Ρ‡Π° β€” это Π·Π°Π΄Π°Ρ‡Π° классификации. НуТно ΠΏΡ€ΠΎΠ³Π½ΠΎΠ· отнСсти ΠΊ 1 (Π²Ρ‹ΠΆΠΈΠ») ΠΈΠ»ΠΈ 0 (Π½Π΅ Π²Ρ‹ΠΆΠΈΠ»).

from sklearn.ensemble import GradientBoostingClassifier
gbc = GradientBoostingClassifier(learning_rate=0.5, max_depth=5, n_estimators=150)
gbc.fit(X, y)

Ѐункция fit Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΏΠΈΡ‚ΠΎΠ½Ρƒ: ΠŸΡƒΡΡ‚ΡŒ модСль ΠΈΡ‰Π΅Ρ‚ зависимости ΠΌΠ΅ΠΆΠ΄Ρƒ X ΠΈ Ρƒ.

МСньшС сСкунды ΠΈ модСль Π³ΠΎΡ‚ΠΎΠ²Π°.

Π’Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Data Science. Π’ΠΈΡ‚Π°Π½ΠΈΠΊ

Как Π΅Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ? БСйчас ΡƒΠ²ΠΈΠ΄ΠΈΠΌ!

Π¨Π°Π³ пятый. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с нашими тСстовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·. Π‘ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π΅ΠΌ всС Ρ‚Π΅ ΠΆΠ΅ самыС дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ для X.

X_test = pd.read_csv('test.csv', index_col=0)

count = ['Name', 'Ticket', 'Cabin', 'Embarked']
X_test.drop(count, inplace=True, axis=1)

X_test = np.array(X_test)

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [1])],
                       remainder='passthrough')
X_test = np.array(ct.fit_transform(X_test))

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer.fit(X_test)
X_test = imputer.transform(X_test)

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_test[:, 2:] = sc.fit_transform(X_test[:, 2:])

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΆΠ΅ ΡƒΠΆΠ΅ Π½Π°ΡˆΡƒ модСль!

gbc_predict = gbc.predict(X_test)

Всё. ΠœΡ‹ составили ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² csv ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° сайт.

np.savetxt('my_gbc_predict.csv', gbc_predict, delimiter=",", header = 'Survived')

Π“ΠΎΡ‚ΠΎΠ²ΠΎ. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ», содСрТащий Π² сСбС прСдсказания для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пассаТира. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π·Π°Π»ΠΈΡ‚ΡŒ эти Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° сайт ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π°. Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Ρ‘Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 74% ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° ΠΏΠ°Π±Π»ΠΈΠΊΠ΅, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠ»Ρ‡ΠΎΠΊ Π² Data Science. Π‘Π°ΠΌΡ‹Π΅ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π² любоС врСмя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ½Π΅ Π² Π»ΠΈΡ‡Π½Ρ‹Π΅ сообщСния ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ вопрос. ВсСм спасибо!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com