Ny dingana voalohany ataonao amin'ny Data Science. Titanic

Teny fampidirana fohy

Mino aho fa afaka manao zavatra bebe kokoa isika raha omena toromarika tsikelikely izay hilaza amintsika ny tokony hatao sy ny fomba hanaovana izany. Ny tenako dia mahatsiaro ireo fotoana teo amin'ny fiainako izay tsy nahafahako nanomboka zavatra iray satria sarotra tsotra izao ny mahatakatra hoe aiza no hanombohana. Angamba, indray mandeha teo amin'ny Internet ianao dia nahita ny teny hoe "Siansa momba ny angona" ary nanapa-kevitra fa lavitra an'io ianao, ary ny olona manao izany dia any amin'ny toerana hafa any, any amin'ny tontolo hafa. Tsia, eto izy ireo. Ary, angamba, noho ny olona avy amin'ity sehatra ity, nisy lahatsoratra niseho tao amin'ny fahanao. Betsaka ny fampianarana hanampy anao hizatra amin'ity asa tanana ity, fa eto aho hanampy anao hanao ny dingana voalohany.

Eny, vonona ve ianao? Avelao aho hilaza aminao avy hatrany fa mila mahafantatra Python 3 ianao, satria izany no hampiasaiko eto. Manoro hevitra anao koa aho hametraka azy io amin'ny Jupyter Notebook mialoha na jereo ny fomba fampiasana google colab.

Dingana voalohany

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

Kaggle no mpanampy manan-danja anao amin'ity raharaha ity. Amin'ny ankapobeny, azonao atao tsy misy izany, fa hiresaka momba izany aho amin'ny lahatsoratra hafa. Ity dia sehatra iray mampiantrano fifaninanana Data Science. Isaky ny fifaninanana toy izany, amin'ny dingana voalohany dia hahazo traikefa tsy mitombina amin'ny famahana olana isan-karazany, traikefa amin'ny fampandrosoana ary traikefa miasa ao anaty ekipa, izay zava-dehibe amin'izao androntsika izao.

Handray ny andraikitray izahay avy eo. Antsoina hoe "Titanic". Ny fepetra dia izao: maminavina raha ho velona ny olona tsirairay. Amin'ny ankapobeny, ny asan'ny olona iray tafiditra ao amin'ny DS dia ny fanangonana angon-drakitra, fanodinana azy, fanofanana modely, vinavina, sns. Ao amin'ny kaggle, avela handalo ny dingana fanangonana angon-drakitra isika - aseho eo amin'ny lampihazo izy ireo. Mila misintona azy ireo isika ary afaka manomboka!

Toy izao no azo atao:

ny tabilao Data dia misy rakitra misy angona

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

Nisintona ny angona izahay, nanomana ny kahie Jupyter ary...

Dingana faharoa

Ahoana ny fomba fametahana ity data ity?

Voalohany, andao hanafatra ireo tranomboky ilaina:

import pandas as pd
import numpy as np

Ny Pandas dia ahafahantsika misintona rakitra .csv ho fanodinana bebe kokoa.

Ilaina ny Numpy hanehoana ny latabatra angonay ho matrix misy isa.
Ataovy tsy am-pihambahambana. Andao horaisina ny rakitra train.csv ary ampidiro aminay:

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

Hiresaka momba ny fifantenana angona train.csv izahay amin'ny alΓ lan'ny fari-pahalalana. Andeha hojerentsika izay ao:

dataset.head()

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

Ny fiasan'ny head() dia ahafahantsika mijery ireo andalana vitsivitsy voalohany amin'ny dataframe.

Ny tsanganana Tafavoaka dia ny valiny marina indrindra, izay fantatra amin'ity rafitra angona ity. Ho an'ny fanontaniana momba ny asa dia mila maminavina ny tsanganana Tafavoaka isika ho an'ny angona test.csv. Ity angon-drakitra ity dia mitahiry vaovao momba ireo mpandeha hafa ao amin'ny Titanic, izay tsy fantatray, mamaha ny olana, ny vokany.

Noho izany, andao hizara ny latabatra ho angona miankina sy mahaleo tena. Tsotra ny zava-drehetra eto. Ny angon-drakitra miankina dia ireo angon-drakitra izay miankina amin'ny angona tsy miankina izay ao amin'ny vokatra. Ny angon-drakitra tsy miankina dia ireo angona misy fiantraikany amin'ny vokatra.

Ohatra, manana ireto angona manaraka ireto izahay:

β€œNampianatra siansa informatika i Vova - tsia.
Nahazo 2 tamin’ny siansa informatika i Vova.”

Miankina amin'ny valin'ny fanontaniana hoe: nianatra siansa informatika ve i Vova? mazava ve? Aleo mandroso fa efa manakaiky ny tanjona!

Ny fari-piainana mahazatra ho an'ny angona tsy miankina dia X. Ho an'ny angona miankina, y.

Izao no ataontsika:

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

Inona izany? Miaraka amin'ny fonction iloc [:, 2: ] dia miteny amin'i Python izahay: Te-hahita ao amin'ny variable X ny angon-drakitra manomboka amin'ny tsanganana faharoa (ao anatin'izany ary raha toa ka manomboka amin'ny aotra ny fanisana). Ao amin'ny andalana faharoa dia milaza isika fa te-hahita ny angona ao amin'ny tsanganana voalohany.

[ a: b, c: d ] dia ny fananganana izay ampiasaintsika ao anaty fononteny. Raha tsy mamaritra ny fari-piainanao ianao dia hotehirizina ho default. Izany hoe, azontsika atao ny mamaritra [:,: d] ary avy eo dia ho azontsika ny tsanganana rehetra ao amin'ny dataframe, afa-tsy ireo izay manomboka amin'ny isa d. Ny variables a sy b dia mamaritra ny tady, saingy mila azy rehetra isika, ka avelantsika ho default izany.

Andeha hojerentsika izay azonay:

X.head()

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

y.head()

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

Mba hanatsorana ity lesona kely ity dia hesorintsika ireo tsanganana izay mitaky fikarakarana manokana na tsy misy fiantraikany amin'ny fahavelomana mihitsy. Izy ireo dia misy angona karazana str.

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

Super! Andao hiroso amin’ny dingana manaraka.

Dingana fahatelo

Eto isika dia mila mametaka ny angonay mba hahafantaran'ny milina tsara kokoa ny fiantraikan'io data io amin'ny vokatra. Saingy tsy hanakodia ny zava-drehetra izahay, fa ny data str izay navelanay ihany. Tsanganana "Sex". Ahoana no tiantsika hatao kaody? Andao haneho ny angon-drakitra momba ny lahy sy ny vavy amin'ny maha-vector azy: 10 - lahy, 01 - vavy.

Voalohany, andao hamadika ny latabatra ho lasa matrix NumPy:

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

Andeha hojerentsika izao:

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

Ny tranomboky sklearn dia tranomboky mahafinaritra izay ahafahantsika manao asa feno amin'ny Data Science. Ahitana maodely fianarana milina mahaliana maro izy io ary mamela antsika hanao fiomanana data ihany koa.

OneHotEncoder dia hamela antsika hanidy ny maha-lahy na maha-vavy ny olona iray ao amin'io fanehoana io, araka ny nofaritantsika. 2 kilasy no hatsangana: lahy, vavy. Raha lehilahy ilay olona, ​​dia 1 no hosoratana ao amin'ny tsanganana "lehilahy", ary 0 ao amin'ny tsanganana "vehivavy".

Aorian'ny OneHotEncoder() dia misy [1] - midika izany fa tiantsika ny hanisy kaody laharana 1 (miisa manomboka amin'ny aotra).

Super. Aleo hiroso bebe kokoa!

Amin'ny maha-fitsipika, mitranga izany fa misy angona sisa tavela (izany hoe, NaN - tsy isa). Ohatra, misy fampahalalana momba ny olona iray: ny anarany, ny lahy sy ny vavy. Saingy tsy misy fampahalalana momba ny taonany. Amin'ity tranga ity dia hampihatra ity fomba manaraka ity isika: ho hitantsika ny dikan'ny aritmetika amin'ny tsanganana rehetra ary, raha misy angona tsy hita ao amin'ny tsanganana, dia hameno ny banga amin'ny dikan'ny arithmetika.

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

Andeha hojerentsika izao fa misy toe-javatra mitranga rehefa lehibe ny angon-drakitra. Ny angon-drakitra sasany dia ao anatin'ny elanelana [0:1], fa ny sasany kosa mety mihoatra ny an-jatony sy an'arivony. Mba hanafoanana ny fiparitahana toy izany sy hahatonga ny ordinatera ho marina kokoa amin'ny kajikajy, dia hojerentsika ny angon-drakitra sy hanesorana azy. Aoka tsy hihoatra ny telo ny isa rehetra. Mba hanaovana izany dia hampiasa ny fiasa StandardScaler isika.

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

Toy izao ny angonay:

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

kilasy. Efa akaiky ny tanjonay!

Dingana fahefatra

Andao hampiofana ny modely voalohany! Avy amin'ny tranomboky sklearn dia afaka mahita zavatra mahaliana maro be isika. Nampihatra ny modely Gradient Boosting Classifier aho tamin'ity olana ity. Mampiasa classifier izahay satria asa fanasokajiana ny asanay. Ny prognosis dia tokony homena 1 (tafavoaka) na 0 (tsy velona).

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

Ny fit function dia milaza amin'i Python: Avelao ny modely hitady fiankinan-doha eo amin'ny X sy y.

Tsy ampy iray segondra ary efa vonona ny modely.

Ny dingana voalohany ataonao amin'ny Data Science. Titanic

Ahoana ny fampiharana azy? Ho hitantsika eo!

Dingana fahadimy. Famaranana

Amin'izao fotoana izao dia mila mametraka latabatra miaraka amin'ny angona fitsapana izay ilaintsika hanaovana vinavina. Amin'ity latabatra ity dia hanao ny hetsika mitovy amin'ny nataonay tamin'ny X izahay.

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

Andao hampihatra ny modelyntsika izao!

gbc_predict = gbc.predict(X_test)

Rehetra. Nanao vinavina izahay. Ankehitriny dia mila voarakitra ao amin'ny csv ary alefa any amin'ny tranokala.

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

Vonona. Nahazo rakitra misy faminaniana ho an'ny mpandeha tsirairay izahay. Ny hany sisa tavela dia ny mampakatra ireo vahaolana ireo amin'ny tranokala ary mahazo fanombanana ny vinavina. Ny vahaolana voalohany toy izany dia tsy manome afa-tsy 74% amin'ny valiny marina ho an'ny besinimaro, fa koa tosika sasany amin'ny Data Science. Afaka manoratra amiko amin'ny hafatra manokana amin'ny fotoana rehetra sy mametraka fanontaniana ny olona liana indrindra. Misaotra ny rehetra!

Source: www.habr.com

Add a comment