Nzọụkwụ mbụ gị na Science Data. Titanic

Okwu mmeghe dị mkpirikpi

Ekwenyere m na anyị nwere ike imekwu ihe ma ọ bụrụ na enyere anyị ntụziaka site na nzọụkwụ ga-agwa anyị ihe anyị ga-eme na otu esi eme ya. Mụ onwe m na-echeta oge ndụ m mgbe m na-enweghị ike ịmalite ihe n'ihi na ọ na-esiri m ike ịghọta ebe m ga-amalite. Ikekwe, n'otu oge na Ịntanetị ị hụrụ okwu ndị a "Data Science" wee kpebie na ị dị anya na nke a, na ndị na-eme nke a bụ ebe dị n'ebe ahụ, na ụwa ọzọ. Mba, ha nọ ebe a. Ma, ikekwe, ekele maka ndị si n'ubi a, otu akụkọ pụtara na ndepụta gị. Enwere ọtụtụ nkuzi ga-enyere gị aka ịmara nka nka, mana ebe a, m ga-enyere gị aka ịme nzọụkwụ mbụ.

Ọfọn, ị dịla njikere? Ka m gwa gị ozugbo na ị ga-achọ ịma Python 3, ebe ọ bụ ihe m ga-eji ebe a. M na-adụ ọdụ ka ị wụnye ya na Jupyter Notebook tupu oge eruo ma ọ bụ hụ ka esi eji google colab.

Nzọụkwụ otu

Nzọụkwụ mbụ gị na Science Data. Titanic

Kaggle bụ onye enyemaka gị dị mkpa n'okwu a. Na ụkpụrụ, ị nwere ike ime na-enweghị ya, ma m ga-ekwu banyere nke a n'isiokwu ọzọ. Nke a bụ ikpo okwu na-akwado asọmpi Science Data. Na asọmpi ọ bụla dị otú ahụ, n'oge mmalite, ị ga-enweta ahụmahụ na-ezighị ezi na-edozi nsogbu dị iche iche, ahụmahụ mmepe na ahụmahụ na-arụ ọrụ na otu, nke dị mkpa n'oge anyị.

Anyị ga-esi ebe ahụ were ọrụ anyị. A na-akpọ ya "Titanic". Ọnọdụ a bụ nke a: buru amụma ma onye ọ bụla ga-adị ndụ. N'ikwu okwu n'ozuzu, ọrụ nke onye na-etinye aka na DS bụ ịnakọta data, nhazi ya, ịzụ ihe nlereanya, ịkọ amụma, na ihe ndị ọzọ. Na kaggle, a na-ahapụ anyị ka ịwụpụ ọkwa nchịkọta data - a na-egosi ha n'elu ikpo okwu. Anyị kwesịrị ibudata ha na anyị nwere ike ịmalite!

I nwere ike ime nke a dịka ndị a:

taabụ Data nwere faịlụ nwere data

Nzọụkwụ mbụ gị na Science Data. Titanic

Nzọụkwụ mbụ gị na Science Data. Titanic

Anyị budata data ahụ, kwado akwụkwọ ndetu Jupyter na...

Nzọụkwụ abụọ

Kedu otu anyị si ebu data ugbu a?

Nke mbụ, ka anyị bubata ọbaakwụkwọ ndị dị mkpa:

import pandas as pd
import numpy as np

Pandas ga-ekwe ka anyị budata faịlụ .csv maka nhazi ọzọ.

Numpy dị mkpa iji nọchite anya tebụl data anyị dị ka matriks nwere ọnụọgụ.
Gaba n'ihu. Ka anyị buru faịlụ train.csv ma ​​bulite ya na anyị:

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

Anyị ga-ezo aka na nhọrọ data train.csv anyị site na mgbanwe dataset. Ka anyị hụ ihe dị ebe ahụ:

dataset.head()

Nzọụkwụ mbụ gị na Science Data. Titanic

Ọrụ isi() na-enye anyị ohere ilele ahịrị ole na ole mbụ nke dataframe.

Ogidi ndị a na-anwụ anwụ bụ kpọmkwem rịzọlt anyị, nke amaara na etiti data a. Maka ajụjụ ọrụ ahụ, anyị kwesịrị ibu amụma kọlụm Survived maka data test.csv. Ihe data a na-echekwa ozi gbasara ndị njem ndị ọzọ nke Titanic, nke anyị, na-edozi nsogbu ahụ, amaghị ihe ga-esi na ya pụta.

Yabụ, ka anyị kewaa tebụl anyị ka ọ bụrụ data dabere na nke nọọrọ onwe ya. Ihe niile dị mfe ebe a. Data dabere bụ data ndị ahụ na-adabere na data onwe ha nke dị na nsonaazụ ya. Data nke onwe bụ data ndị ahụ na-emetụta nsonaazụ ya.

Dịka ọmụmaatụ, anyị nwere ntọala data ndị a:

"Vova kụziiri sayensị kọmputa - mba.
Vova nwetara 2 na sayensị kọmputa. "

Klas na sayensị kọmputa dabere na azịza ajụjụ a: Vova ọ gụrụ sayensị kọmputa? O doro anya? Ka anyị gaa n'ihu, anyị adịlarị nso na ebumnuche!

Ngbanwe ọdịnala maka data nọọrọ onwe ya bụ X. Maka data dabere, y.

Anyị na-eme ihe ndị a:

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

Kedu ihe ọ bụ? Site na ọrụ iloc[:, 2:] anyị na-agwa Python: Achọrọ m ịhụ na agbanwe X data na-amalite site na kọlụm nke abụọ (gụnyere yana ma ọ bụrụhaala na ịgụta na-amalite site na efu). N'ahịrị nke abụọ anyị na-ekwu na anyị chọrọ ịhụ data na kọlụm mbụ.

[a:b, c:d] bụ iwu ihe anyị na-eji na mbo. Ọ bụrụ na ị kọwapụtaghị mgbanwe ọ bụla, a ga-echekwa ha dị ka ndabara. Ya bụ, anyị nwere ike ezipụta [:,: d] wee nweta ogidi niile dị na dataframe, ewezuga ndị na-aga site na nọmba d gaa n'ihu. Ngbanwe a na b na-akọwa ụdọ, mana anyị chọrọ ha niile, yabụ anyị na-ahapụ nke a dị ka ndabara.

Ka anyị hụ ihe anyị nwetara:

X.head()

Nzọụkwụ mbụ gị na Science Data. Titanic

y.head()

Nzọụkwụ mbụ gị na Science Data. Titanic

Iji mee ka obere nkuzi a dị mfe, anyị ga-ewepụ ogidi ndị chọrọ nlekọta pụrụ iche ma ọ bụ na-emetụtaghị ndụ ma ọlị. Ha nwere data ụdị str.

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

Super! Ka anyị gaa n'ihu na nzọụkwụ ọzọ.

Nzọụkwụ atọ

N'ebe a, anyị kwesịrị itinye koodu data anyị ka igwe wee ghọta nke ọma ka data a si emetụta nsonaazụ ya. Mana anyị agaghị etinye koodu niile, mana naanị str data anyị hapụrụ. Ogidi "mmekọahụ". Kedu ka anyị ga-esi nweta koodu? Ka anyị nọchite anya data gbasara okike mmadụ dị ka vector: 10 - nwoke, 01 - nwanyị.

Nke mbụ, ka anyị tụgharịa tebụl anyị ka ọ bụrụ matrix NumPy:

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

Ma ugbu a, ka anyị lee:

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))

Ọbá akwụkwọ sklearn bụ ọbá akwụkwọ mara mma nke na-enye anyị ohere ịrụ ọrụ zuru oke na sayensị data. O nwere ọnụ ọgụgụ dị ukwuu nke ụdị mmụta igwe na-adọrọ mmasị ma na-enyekwa anyị ohere ime nkwadebe data.

OneHotEncoder ga-enye anyị ohere itinye koodu okike nke mmadụ na nnọchite anya ahụ, dịka anyị kọwara. A ga-eke klas 2: nwoke, nwanyị. Ọ bụrụ na onye ahụ bụ nwoke, a ga-ede 1 na kọlụm "nwoke", na 0 na kọlụm "nwanyị", n'otu n'otu.

Mgbe OneHotEncoder () nwere [1] - nke a pụtara na anyị chọrọ itinye nọmba kọlụm 1 (gụọ site na efu).

Super. Ka anyị gaa n'ihu!

Dị ka a na-achị, nke a na-eme na ụfọdụ data na-ahapụ oghere (ya bụ, NaN - ọ bụghị ọnụ ọgụgụ). Dịka ọmụmaatụ, enwere ozi gbasara mmadụ: aha ya, okike. Mana ọ nweghị ozi gbasara afọ ndụ ya. N'okwu a, anyị ga-etinye usoro na-esonụ: anyị ga-ahụ mgbakọ na mwepụ pụtara n'elu kọlụm niile na, ọ bụrụ na ụfọdụ data na-efu na kọlụm, mgbe ahụ, anyị ga-ejupụta ihe efu na mgbakọ na mwepụ pụtara.

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

Ugbu a, ka anyị buru n'uche na ọnọdụ na-eme mgbe data ahụ buru ibu. Ụfọdụ data dị na etiti oge [0:1], ebe ụfọdụ nwere ike gafere ọtụtụ narị na puku kwuru puku. Iji kpochapụ ndị dị otú ahụ gbasasịa na iji mee ka kọmputa dịkwuo mma na ngụkọ ya, anyị ga-enyocha data ma tụọ ya. Ka ọnụ ọgụgụ niile ghara ịgafe atọ. Iji mee nke a, anyị ga-eji ọrụ StandardScaler.

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

Ugbu a data anyị dị ka nke a:

Nzọụkwụ mbụ gị na Science Data. Titanic

Klas. Anyị adịlarị nso na ebumnuche anyị!

Nzọụkwụ anọ

Ka anyị zụọ ihe nlereanya mbụ anyị! Site n'ọbá akwụkwọ sklearn anyị nwere ike ịhụ ọtụtụ ihe na-adọrọ mmasị. Etinyere m ihe nlereanya Gradient Boosting Classifier na nsogbu a. Anyị na-eji A classifier n'ihi na ọrụ anyị bụ ọrụ nhazi ọkwa. Ekwesịrị ịnye amụma ahụ na 1 (dịlarịrị) ma ọ bụ 0 (anaghị adị ndụ).

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

Ọrụ kwesịrị ekwesị na-agwa Python: Ka ihe nlereanya ahụ chọọ ndabere n'etiti X na y.

Ihe na-erughị otu sekọnd na ihe nlereanya dị njikere.

Nzọụkwụ mbụ gị na Science Data. Titanic

Kedu ka esi etinye ya? Anyị ga-ahụ ugbu a!

Nzọụkwụ ise. Mmechi

Ugbu a, anyị kwesịrị ibu tebụl na data ule anyị nke anyị kwesịrị iji mee amụma. Site na tebụl a, anyị ga-eme otu omume niile anyị mere maka 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:])

Ka anyị tinye ihe nlereanya anyị ugbu a!

gbc_predict = gbc.predict(X_test)

Ha niile. Anyị mere amụma. Ugbu a ọ dị mkpa ka edekọ ya na csv wee ziga ya na webụsaịtị.

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

Njikere. Anyị nwetara faịlụ nwere amụma maka onye njem ọ bụla. Naanị ihe fọdụrụ bụ bulite ngwọta ndị a na webụsaịtị wee nweta ntule amụma ahụ. Ngwọta oge ochie dị otú ahụ na-enye ọ bụghị naanị 74% nke azịza ziri ezi na ọha mmadụ, kamakwa ụfọdụ mkpali na Science Science. Onye kacha chọsi ike nwere ike degara m akwụkwọ ozi na nzuzo n'oge ọ bụla wee jụọ ajụjụ. Ekele dịrị mmadụ niile!

isi: www.habr.com

Tinye a comment