ืืืืช ืืืื ืงืฆืจื
ืื ื ืืืืื ืฉื ืืื ืืขืฉืืช ืืืชืจ ืืืจืื ืืืื ืืื ืืกืคืงืื ืื ื ืืืจืืืช ืฉืื ืืืจ ืฉืื ืฉืืืืจื ืื ื ืื ืืขืฉืืช ืืืื ืืขืฉืืช ืืืช. ืื ื ืขืฆืื ืืืืจ ืจืืขืื ืืืื ืฉืื ืืืืืชื ืืืชืืื ืืฉืื ืื ืคืฉืื ืืื ืงืฉื ืืืืื ืืืืคื ืืืชืืื. ืืืื, ืคืขื ืืืื ืืจื ื ืจืืืช ืืช ืืืืืื "Data Science" ืืืืืืช ืฉืืชื ืจืืืง ืืื, ืืืื ืฉืื ืฉืขืืฉืื ืืช ืื ื ืืฆืืื ืื ืฉื ืืืืฅ, ืืขืืื ืืืจ. ืื, ืื ืืืฉ ืืื. ืืืืื, ืืืืืช ืืื ืฉืื ืืืชืืื ืืื, ืืืคืืข ืืืืจ ืืคืื ืฉืื. ืืฉ ืืืื ืงืืจืกืื ืฉืืขืืจื ืืื ืืืชืจืื ืืืืืื ืืื, ืืื ืืื ืืขืืืจ ืืื ืืขืฉืืช ืืช ืืฆืขื ืืจืืฉืื.
ืืืื, ืืชื ืืืื? ืืจืฉื ืื ืืืืจ ืืื ืืื ืฉืชืฆืืจืื ืืืืืจ ืืช Python 3, ืื ืื ืื ืฉืืฉืชืืฉ ืืื. ืื ื ืื ืืืืืฅ ืื ืืืชืงืื ืืืชื ืขื Jupyter Notebook ืืจืืฉ ืื ืืจืืืช ืืืฆื ืืืฉืชืืฉ ื- google colab.
ืฉืื ืจืืฉืื
Kaggle ืืื ืืขืืืจ ืืืฉืืขืืชื ืฉืื ืืขื ืืื ืืื. ืืืืคื ืขืงืจืื ื, ืืชื ืืืื ืืืกืชืืจ ืืืขืืื, ืืื ืื ื ืืืืจ ืขื ืื ืืืืืจ ืืืจ. ืืืื ืคืืืคืืจืื ืืืืจืืช ืชืืจืืืืช Data Science. ืืื ืชืืจืืช ืืื, ืืฉืืืื ืืืืงืืืื ืชืฆืืจื ื ืืกืืื ืื ืจืืืื ืืคืชืจืื ืืขืืืช ืืกืืืื ืฉืื ืื, ื ืืกืืื ืืคืืชืื ืื ืืกืืื ืืขืืืื ืืฆืืืช, ืืืจ ืฉืืฉืื ืืชืงืืคืชื ื.
ื ืืงื ืืช ืืืฉืืื ืฉืื ื ืืฉื. ืื ื ืงืจื "ืืืืื ืืง". ืืชื ืื ืืื ืื: ืืื ืื ืื ืืื ืืฉืจืื. ืืืืคื ืืืื, ืืืฉืืื ืฉื ืืื ืืืขืืจื ื-DS ืืื ืืืกืืฃ ื ืชืื ืื, ืขืืืืื, ืืืืื ืืืื, ืืืืื ืืืืืื. ื-kaggle ืืืชืจ ืื ื ืืืื ืขื ืฉืื ืืืกืืฃ ืื ืชืื ืื - ืื ืืืฆืืื ืืคืืืคืืจืื. ืื ืื ื ืฆืจืืืื ืืืืจืื ืืืชื ืื ืืื ืืืชืืื!
ืืชื ืืืื ืืขืฉืืช ืืืช ืืืืคื ืืื:
ืืืจืืืกืืื ื ืชืื ืื ืืืืื ืงืืฆืื ืืืืืืื ื ืชืื ืื
ืืืจืื ื ืืช ืื ืชืื ืื, ืืื ื ืืช ืืืืจืืช Jupyter ืฉืื ื ื...
ืฉืื ืฉื ื
ืืื ืื ืื ื ืขืืฉืื ืืืขืื ืืช ืื ืชืื ืื ืืืื?
ืจืืฉืืช, ืืืื ืืืืื ืืช ืืกืคืจืืืช ืืืจืืฉืืช:
import pandas as pd
import numpy as np
Pandas ืืืคืฉืจ ืื ื ืืืืจืื ืงืืฆื .csv ืืืืฉื ืขืืืื.
ืืฉ ืฆืืจื ื-Numpy ืืื ืืืืฆื ืืช ืืืืช ืื ืชืื ืื ืฉืื ื ืืืืจืืฆื โโืขื ืืกืคืจืื.
ืื ืขื ืื. ืืืื ื ืืงื ืืช ืืงืืืฅ train.csv ืื ืขืื ืืืชื ืืืื ื:
dataset = pd.read_csv('train.csv')
ื ืชืืืืก ืืืืืจืช ืื ืชืื ืื ืฉื train.csv ืืจื ืืฉืชื ื ืื ืชืื ืื. ืืื ื ืจืื ืื ืืฉ ืฉื:
dataset.head()
ืืคืื ืงืฆืื head() ืืืคืฉืจืช ืื ื ืืืกืชืื ืขื ืืฉืืจืืช ืืจืืฉืื ืืช ืฉื ืืกืืจืช ื ืชืื ืื.
ืขืืืืืช ื- Survived ืื ืืืืืง ืืชืืฆืืืช ืฉืื ื, ืืืืืขืืช ืืืกืืจืช ืื ืชืื ืื ืืื. ืขืืืจ ืฉืืืช ืืืฉืืื, ืขืืื ื ืืืืืช ืืช ืืขืืืื Survived ืขืืืจ ื ืชืื ื test.csv. ื ืชืื ืื ืืื ืืืืกื ืื ืืืืข ืขื ื ืืกืขืื ืืืจืื ืฉื ืืืืืื ืืง, ืฉืขืืืจื ืื ืื ื, ืืคืชืจืื ืืืขืื, ืื ืืืืขืื ืืช ืืชืืฆืื.
ืื ืืืื ื ืืืง ืืช ืืืืื ืฉืื ื ืื ืชืื ืื ืชืืืืื ืืืืชื ืชืืืืื. ืืื ืคืฉืื ืืื. ื ืชืื ืื ืชืืืืื ืื ืื ืชืื ืื ืืชืืืืื ืื ืชืื ืื ืืืืชื ืชืืืืื ืฉื ืืฆืืื ืืชืืฆืืืช. ื ืชืื ืื ืืืชื ืชืืืืื ืื ืืืชื ื ืชืื ืื ืืืฉืคืืขืื ืขื ืืชืืฆืื.
ืืืืืื, ืืฉ ืื ื ืืช ืืขืจื ืื ืชืื ืื ืืื:
"ืืืื ืืืืื ืืืขื ืืืืฉื - ืื.
Vova ืงืืื ืฆืืื 2 ืืืืขื ืืืืฉื".
ืืฆืืื ืืืืขื ืืืืฉื ืชืืื ืืชืฉืืื ืืฉืืื: ืืื ืืืื ืืืื ืืืขื ืืืืฉื? ืืื ืื ืืจืืจ? ืืืื ื ืืฉืื ืืืื, ืื ืื ื ืืืจ ืืืชืจ ืงืจืืืื ืืืืจื!
ืืืฉืชื ื ืืืกืืจืชื ืขืืืจ ื ืชืื ืื ืืืชื ืชืืืืื ืืื X. ืขืืืจ ื ืชืื ืื ืชืืืืื, y.
ืื ื ืขืืฉืื ืืช ืืคืขืืืืช ืืืืืช:
X = dataset.iloc[ : , 2 : ]
y = dataset.iloc[ : , 1 : 2 ]
ืื ืื? ืขื ืืคืื ืงืฆืื iloc[:, 2: ] ืื ืื ื ืืืืจืื ืืคืืชืื: ืื ื ืจืืฆื ืืจืืืช ืืืฉืชื ื X ืืช ืื ืชืื ืื ืฉืืชืืืืื ืืืขืืืื ืืฉื ืืื (ืืืื ืืืชื ืื ืฉืืกืคืืจื ืืชืืืื ืืืคืก). ืืฉืืจื ืืฉื ืืื ืื ืื ื ืืืืจืื ืฉืื ืื ื ืจืืฆืื ืืจืืืช ืืช ืื ืชืื ืื ืืขืืืื ืืจืืฉืื ื.
[ a:b, c:d ] ืืื ืืืื ื ืฉื ืื ืฉืื ื ืืฉืชืืฉืื ืืกืืืจืืื. ืื ืื ืชืฆืืื ืืฉืชื ืื ืืืฉืื, ืื ืืืฉืืจื ืืืจืืจืช ืืืื. ืืืืืจ, ื ืืื ืืฆืืื [:,: d] ืืื ื ืงืื ืืช ืื ืืขืืืืืช ื-dataframe, ืืืื ืืื ืฉืืืืืืช ืืืกืคืจ d ืืืืื. ืืืฉืชื ืื a ื-b ืืืืืจืื ืืืจืืืืช, ืืื ืื ืื ื ืฆืจืืืื ืืช ืืืื, ืื ื ืฉืืืจ ืืืช ืืืจืืจืช ืืืื.ืืื ื ืจืื ืื ืงืืืื ื:
X.head()
y.head()
ืขื ืื ืช ืืคืฉื ืืช ืืฉืืขืืจ ืืงืื ืืื, ื ืกืืจ ืขืืืืื ืืืืจืฉืื ืืืคืื ืืืืื ืื ืฉืืื ื ืืฉืคืืขืื ืืื ืขื ืืฉืจืืืืช. ืื ืืืืืื ื ืชืื ืื ืืกืื str.
count = ['Name', 'Ticket', 'Cabin', 'Embarked']
X.drop(count, inplace=True, axis=1)
ืกืึผืคึผึถืจ! ืืืื ื ืขืืืจ ืืฉืื ืืื.
ืฉืื ืฉืืืฉื
ืืื ืื ืื ื ืฆืจืืืื ืืงืืื ืืช ืื ืชืื ืื ืฉืื ื ืืื ืฉืืืืื ื ืชืืื ืืื ืืืชืจ ืืืฆื ืื ืชืื ืื ืืืื ืืฉืคืืขืื ืขื ืืชืืฆืื. ืืื ืื ื ืงืืื ืืื, ืืื ืจืง ื ืชืื ื str ืฉืืฉืืจื ื. ืขืืืื "ืกืงืก". ืืื ืื ืื ื ืจืืฆืื ืืงืื? ืืืื ื ืฆืื ื ืชืื ืื ืขื ืืื ื ืฉื ืืื ืืืืงืืืจ: 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() ืืฉ [1] - ืื ืืืืจ ืฉืื ืื ื ืจืืฆืื ืืงืืื ืขืืืื ืืกืคืจ 1 (ืกืคืืจื ืืืคืก).
ืกืึผืคึผึถืจ. ืืืื ื ืชืงืื ืขืื ืืืชืจ!
ืืืื, ืื ืงืืจื ืฉืืืง ืืื ืชืื ืื ื ืฉืืจืื ืจืืงืื (ืืืืืจ, NaN - ืื ืืกืคืจ). ืืืฉื, ืืฉ ืืืืข ืขื ืืื: ืฉืื, ืืื ื. ืืื ืืื ืืืืข ืขื ืืืื. ืืืงืจื ืื, ื ืืืฉื ืืช ืืฉืืื ืืืื: ื ืืฆื ืืช ืืืืืฆืข ืืืจืืชืืื ืขื ืื ืืขืืืืืช, ืืื ืืกืจืื ื ืชืื ืื ืืกืืืืื ืืขืืืื, ื ืืื ืืช ืืืื ืืืืืฆืข ืืืจืืชืืื.
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer.fit(X)
X = imputer.transform(X)
ืขืืฉืื ืืืื ื ืืงื ืืืฉืืื ืฉืืฆืืื ืงืืจืื ืืฉืื ืชืื ืื ืืืืืื ืืืื. ืืืง ืืื ืชืื ืื ื ืืฆืืื ืืืจืืื [0:1], ืืขืื ืฉืืืงื ืขืฉืืืื ืืืจืื ืืืืืช ืืืืคืื. ืืื ืืืื ืคืืืืจ ืืื ืืืื ืืืคืื ืืช ืืืืฉื ืืืืืง ืืืชืจ ืืืืฉืืืื, ื ืกืจืืง ืืช ืื ืชืื ืื ืื ืฉื ื ืืืชื. ืื ืืืกืคืจืื ืื ืืขืื ืขื ืฉืืืฉื. ืืฉื ืื, ื ืฉืชืืฉ ืืคืื ืงืฆืืืช StandardScaler.
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X[:, 2:] = sc.fit_transform(X[:, 2:])
ืืขืช ืื ืชืื ืื ืฉืื ื ื ืจืืื ืื:
ืืขืื. ืื ืื ื ืืืจ ืงืจืืืื ืืืืจื ืฉืื ื!
ืฉืื ืจืืืขื
ืืืื ืืืื ืืช ืืืื ืืจืืฉืื ืฉืื ื! ืืกืคืจืืืช sklearn ื ืืื ืืืฆืื ืืกืคืจ ืขืฆืื ืฉื ืืืจืื ืืขื ืืื ืื. ืืืฉืืชื ืืช ืืืื Gradient Boosting Classifier ืขื ืืขืื ืื. ืื ื ืืฉืชืืฉืื ืืืกืืื ืืืืืื ืฉืืืฉืืื ืฉืื ื ืืื ืืฉืืืช ืกืืืื. ืืฉ ืืืงืฆืืช ืืช ืืคืจืืื ืืื ื-1 (ืฉืจื) ืื 0 (ืื ืฉืจื).
from sklearn.ensemble import GradientBoostingClassifier
gbc = GradientBoostingClassifier(learning_rate=0.5, max_depth=5, n_estimators=150)
gbc.fit(X, y)
ืคืื ืงืฆืืืช ืืืชืืื ืืืืจืช ืืคืืืชืื: ืชื ืืืืื ืืืคืฉ ืชืืืช ืืื X ื-y.
ืคืืืช ืืฉื ืืื ืืืืื ืืืื.
ืืื ืืืืฉื ืืช ืื? ื ืจืื ืขืืฉืื!
ืฉืื ืืืืฉื. ืกืืืื
ืขืืฉืื ืื ืื ื ืฆืจืืืื ืืืขืื ืืืื ืขื ื ืชืื ื ืืืืืงื ืฉืื ื ืฉืขืืืจื ืื ืื ื ืฆืจืืืื ืืขืฉืืช ืชืืืืช. ืขื ืืืืื ืืื ื ืืฆืข ืืช ืื ืืืชื ืืคืขืืืืช ืฉืขืฉืื ื ืขืืืจ 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. ืืกืงืจื ืื ืืืืชืจ ืืืืืื ืืืชืื ืื ืืืืืขืืช ืคืจืืืืช ืืื ืขืช ืืืฉืืื ืฉืืื. ืชืืื ืืื!
ืืงืืจ: www.habr.com