د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

لنډه تعارفي کلمه

زه باور لرم چې موږ کولی شو ډیر شیان ترسره کړو که چیرې موږ ته ګام په ګام لارښوونې چمتو شوي وای چې موږ ته ووایی چې څه باید وکړو او څنګه یې وکړو. زه پخپله زما په ژوند کې هغه شیبې په یاد لرم کله چې ما یو څه پیل نشم کولی ځکه چې دا په ساده ډول ستونزمنه وه چې پوه شم چې چیرته پیل وکړم. شاید، یو وخت په انټرنیټ کې تاسو د "ډیټا ساینس" کلمې ولیدلې او پریکړه یې وکړه چې تاسو له دې څخه لیرې یاست، او هغه خلک چې دا کار کوي، په بله نړۍ کې. نه، دوی دلته دي. او، شاید، د دې ساحې د خلکو څخه مننه، ستاسو په فیډ کې یوه مقاله خپره شوه. دلته ډیری کورسونه شتون لري چې تاسو سره به د دې هنر سره عادت کیدو کې مرسته وکړي ، مګر دلته به زه تاسو سره د لومړي ګام اخیستو کې مرسته وکړم.

ښه، تاسو چمتو یاست؟ اجازه راکړئ تاسو ته سمدلاسه ووایم چې تاسو به د Python 3 پوهیدو ته اړتیا ولرئ ، ځکه چې دا هغه څه دي چې زه به یې دلته وکاروم. زه تاسو ته دا مشوره هم درکوم چې دا دمخه په Jupyter نوټ بوک کې نصب کړئ یا وګورئ چې د ګوګل کولاب کارولو څرنګوالی.

یو ګام

د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

کیګل پدې مسله کې ستاسو مهم معاون دی. په اصل کې، تاسو کولی شئ پرته له دې، مګر زه به په بل مقاله کې د دې په اړه خبرې وکړم. دا یو پلیټ فارم دی چې د ډیټا ساینس سیالۍ کوربه کوي. په هر ډول سیالۍ کې ، په لومړیو مرحلو کې به تاسو د مختلف ډوله ستونزو حل کولو کې غیر واقعی تجربه ترلاسه کړئ ، پرمختیا تجربه او په ټیم کې کار کولو تجربه ، کوم چې زموږ په وخت کې مهم دی.

موږ به له هغه ځایه خپله دنده ترسره کړو. دا "ټایټانیک" نومیږي. شرط دا دی: وړاندوینه وکړئ چې ایا هر فرد به ژوندي پاتې شي. په عموم کې، د هغه کس دنده چې په DS کې ښکیل دي د معلوماتو راټولول، پروسس کول، د ماډل روزنه، وړاندوینه کول او داسې نور. په کاګل کې، موږ اجازه لرو چې د معلوماتو راټولولو مرحله پریږدو - دوی په پلیټ فارم کې وړاندې کیږي. موږ اړتیا لرو دوی ډاونلوډ کړو او موږ یې پیل کولی شو!

تاسو کولی شئ دا په لاندې ډول ترسره کړئ:

د ډاټا ټب هغه فایلونه لري چې ډاټا لري

د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

موږ ډاټا ډاونلوډ کړه، زموږ د Jupyter نوټ بوک چمتو کړل او ...

دوهمه مرحله

اوس موږ دا معلومات څنګه پورته کوو؟

لومړی، راځئ چې اړین کتابتونونه وارد کړو:

import pandas as pd
import numpy as np

پانډاس به موږ ته اجازه راکړو چې د نورو پروسس کولو لپاره .csv فایلونه ډاونلوډ کړو.

Numpy ته اړتیا ده چې زموږ د ډیټا جدول د شمیرو سره د میټریکس په توګه استازیتوب وکړي.
وړاندې ځه. راځئ چې د Train.csv فایل واخلو او موږ ته یې پورته کړو:

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

موږ به د ډیټاسیټ متغیر له لارې زموږ د Train.csv ډیټا انتخاب ته مراجعه وکړو. راځئ وګورو چې هلته څه دي:

dataset.head()

د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

د سر () فنکشن موږ ته اجازه راکوي چې د ډیټا فریم لومړی څو قطارونه وګورو.

ژغورل شوي کالمونه دقیقا زموږ پایلې دي چې پدې ډیټا چوکاټ کې پیژندل شوي. د کاري پوښتنې لپاره، موږ اړتیا لرو چې د test.csv ډاټا لپاره د بقا کالم وړاندوینه وکړو. دا ډاټا د ټایټانیک د نورو مسافرینو په اړه معلومات ذخیره کوي، د کوم لپاره چې موږ د ستونزې حل کول، پایلې نه پوهیږو.

نو، راځئ چې زموږ جدول په انحصاري او خپلواکو معلوماتو ویشو. دلته هرڅه ساده دي. انحصاري ډاټا هغه معلومات دي چې په خپلواکه معلوماتو پورې اړه لري چې په پایلو کې دي. خپلواک معلومات هغه معلومات دي چې پایلې اغیزه کوي.

د مثال په توګه، موږ لاندې معلومات لرو:

"وووا د کمپیوټر ساینس درس ورکړ - نه.
وووا د کمپیوټر ساینس کې 2 نمرې ترلاسه کړې.

د کمپیوټر ساینس کې درجه د پوښتنې په ځواب پورې اړه لري: آیا وووا د کمپیوټر ساینس مطالعه کړې؟ ایا دا روښانه ده؟ راځئ چې حرکت وکړو، موږ لا دمخه هدف ته نږدې یو!

د خپلواکو معلوماتو لپاره دودیز متغیر X دی. د انحصاري معلوماتو لپاره، y.

موږ لاندې کارونه کوو:

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

دا څه شی دی؟ د iloc [:, 2:] فنکشن سره موږ Python ته وایو: زه غواړم په متغیر X کې د دوهم کالم څخه پیل شوي ډیټا وګورم (په شمول او په دې شرط چې شمیرنه له صفر څخه پیل شي). په دویمه کرښه کې موږ وایو چې موږ غواړو په لومړي کالم کې ډاټا وګورو.

[a:b, c:d] د هغه څه جوړول دي چې موږ یې په قوسونو کې کاروو. که تاسو کوم تغیرات مشخص نه کړئ، دوی به د ډیفالټ په توګه خوندي شي. دا دی، موږ کولی شو مشخص کړو [:،: d] او بیا به موږ ټول کالمونه په ډیټا فریم کې ترلاسه کړو، پرته له هغه چې د d شمیرې څخه وروسته ځي. تغیرات a او b تارونه تعریفوي، مګر موږ ټولو ته اړتیا لرو، نو موږ دا د ډیفالټ په توګه پریږدو.

راځئ وګورو چې موږ څه ترلاسه کړل:

X.head()

د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

y.head()

د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

د دې کوچني درس د ساده کولو لپاره، موږ به هغه کالمونه لیرې کړو چې ځانګړي پاملرنې ته اړتیا لري یا په ژوندي پاتې کیدو اغیزه نه کوي. دوی د str ډول ډیټا لري.

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

عالي! راځئ چې بل ګام ته لاړ شو.

دریم ګام

دلته موږ اړتیا لرو چې خپل ډاټا کوډ کړو ترڅو ماشین په ښه توګه پوه شي چې دا ډاټا څنګه پایلې اغیزه کوي. مګر موږ به هر څه کوډ نه کړو، مګر یوازې هغه معلومات چې موږ پریښودل. کالم "جنس". موږ څنګه کوډ کول غواړو؟ راځئ چې د یو شخص د جندر په اړه معلومات د ویکتور په توګه وړاندې کړو: 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))

د سکلیرن کتابتون یو ښکلی کتابتون دی چې موږ ته اجازه راکوي چې د ډیټا ساینس کې بشپړ کار وکړو. دا د ماشین زده کړې ډیری په زړه پوري ماډلونه لري او موږ ته اجازه راکوي چې د معلوماتو چمتو کولو ترسره کړو.

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

اوس زموږ معلومات داسې ښکاري:

د ډیټا ساینس کې ستاسو لومړی ګام. ټایټانیک

ټولګي. موږ لا دمخه خپل هدف ته نږدې یو!

څلورم ګام

راځئ چې زموږ لومړی ماډل وروزو! د سکلیرن کتابتون څخه موږ کولی شو یو لوی شمیر په زړه پوري شیان ومومئ. ما دې ستونزې ته د ګریډینټ بوسټینګ کلاسیفیر ماډل پلي کړ. موږ 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)

فټ فنکشن Python ته وایي: اجازه راکړئ چې ماډل د 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٪ سم ځوابونه خلکو ته ورکوي، بلکې د ډیټا ساینس کې یو څه هڅونه هم کوي. ډیر لیواله کولی شي ما ته هر وخت په شخصي پیغامونو کې ولیکي او پوښتنه وکړي. د ټولو څخه مننه!

سرچینه: www.habr.com

Add a comment