ڊيٽا سائنس ۾ توهان جو پهريون قدم. ٽائيٽينڪ

مختصر تعارفي لفظ

مان سمجهان ٿو ته اسان وڌيڪ شيون ڪري سگهون ٿا جيڪڏهن اسان کي قدم قدم جي هدايتن سان مهيا ڪيو وڃي جيڪا اسان کي ٻڌائي ها ته ڇا ڪجي ۽ اهو ڪيئن ڪجي. مون کي پنهنجي زندگيءَ جا اهي لمحا ياد آهن جڏهن مان ڪجهه شروع نه ڪري سگهيس ڇاڪاڻ ته اهو سمجهڻ ڏکيو هو ته ڪٿان شروع ڪريان. شايد، هڪ دفعي انٽرنيٽ تي توهان لفظن کي ڏٺو "ڊيٽا سائنس" ۽ فيصلو ڪيو ته توهان هن کان پري آهيو، ۽ جيڪي ماڻهو اهو ڪن ٿا، اهي ڪنهن ٻئي دنيا ۾ آهن. نه، اهي هتي ئي آهن. ۽، شايد، هن فيلڊ مان ماڻهن جي مهرباني، هڪ مضمون توهان جي فيڊ تي ظاهر ٿيو. اتي ڪافي ڪورس آھن جيڪي توھان کي ھن هنر ۾ استعمال ڪرڻ ۾ مدد ڪندا، پر ھتي مان توھان کي پھريون قدم کڻڻ ۾ مدد ڪندس.

خير، توهان تيار آهيو؟ مان توهان کي فوري طور تي ٻڌايان ٿو ته توهان کي ڄاڻڻ جي ضرورت پوندي Python 3، ڇاڪاڻ ته اهو ئي آهي جيڪو آئون هتي استعمال ڪندس. مان توهان کي مشورو ڏيان ٿو ته ان کي اڳ ۾ ئي Jupyter Notebook تي انسٽال ڪريو يا ڏسو گوگل ڪولاب ڪيئن استعمال ڪجي.

پهريون قدم

ڊيٽا سائنس ۾ توهان جو پهريون قدم. ٽائيٽينڪ

ڪاگل هن معاملي ۾ توهان جو اهم مددگار آهي. اصول ۾، توهان ان کان سواء ڪري سگهو ٿا، پر مان هن جي باري ۾ هڪ ٻئي مضمون ۾ ڳالهائي ويندي. هي هڪ پليٽ فارم آهي جيڪو ميزباني ڪندو آهي ڊيٽا سائنس مقابلا. هر اهڙي مقابلي ۾، شروعاتي مرحلن ۾ توهان مختلف قسمن جي مسئلن کي حل ڪرڻ ۾ غير حقيقي تجربو حاصل ڪندا، ترقي جو تجربو ۽ ٽيم ۾ ڪم ڪرڻ جو تجربو، جيڪو اسان جي وقت ۾ اهم آهي.

اسان اتان پنهنجو ڪم کڻنداسين. اهو "ٽائيٽينڪ" سڏيو ويندو آهي. شرط هي آهي: اڳڪٿي ڪريو ته ڇا هر هڪ فرد زندهه رهندو. عام طور تي ڳالهائڻ، ڊي ايس ۾ شامل هڪ شخص جو ڪم ڊيٽا گڏ ڪرڻ، ان کي پروسيس ڪرڻ، هڪ ماڊل جي تربيت، اڳڪٿي ڪرڻ، وغيره آهي. Kaggle ۾، اسان کي ڊيٽا گڏ ڪرڻ واري اسٽيج کي ڇڏڻ جي اجازت آهي - اهي پليٽ فارم تي پيش ڪيا ويا آهن. اسان کي انهن کي ڊائون لوڊ ڪرڻ جي ضرورت آهي ۽ اسان شروع ڪري سگهون ٿا!

توھان ھيٺ ڏنل طريقي سان ڪري سگھو ٿا:

ڊيٽا ٽيب فائلن تي مشتمل آهي جنهن ۾ ڊيٽا شامل آهي

ڊيٽا سائنس ۾ توهان جو پهريون قدم. ٽائيٽينڪ

ڊيٽا سائنس ۾ توهان جو پهريون قدم. ٽائيٽينڪ

اسان ڊيٽا کي ڊائون لوڊ ڪيو، اسان جي Jupyter نوٽ بڪ تيار ڪئي ۽ ...

ٻيو قدم

هاڻي اسان هن ڊيٽا کي ڪيئن لوڊ ڪريون ٿا؟

پهرين، اچو ته ضروري لائبريريون درآمد ڪريو:

import pandas as pd
import numpy as np

پانڊاس اسان کي وڌيڪ پروسيسنگ لاءِ .csv فائلون ڊائون لوڊ ڪرڻ جي اجازت ڏيندو.

نمبرن سان گڏ ميٽرڪس جي طور تي اسان جي ڊيٽا ٽيبل جي نمائندگي ڪرڻ لاءِ Numpy جي ضرورت آهي.
اڳتي وڃو. اچو ته ٽرين.csv فائل وٺون ۽ ان کي اپلوڊ ڪريون:

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

اسان ڊيٽا سيٽ متغير ذريعي اسان جي train.csv ڊيٽا جي چونڊ جو حوالو ڏينداسين. اچو ته ڏسو ته اتي ڇا آهي:

dataset.head()

ڊيٽا سائنس ۾ توهان جو پهريون قدم. ٽائيٽينڪ

هيڊ () فنڪشن اسان کي ڊيٽا فريم جي پهرين چند قطارن کي ڏسڻ جي اجازت ڏئي ٿو.

بچيل ڪالمن بلڪل اسان جا نتيجا آھن، جيڪي ھن ڊيٽا فريم ۾ سڃاتل آھن. ٽاسڪ سوال لاءِ، اسان کي test.csv ڊيٽا لاءِ بچيل ڪالمن جي اڳڪٿي ڪرڻي پوندي. هي ڊيٽا ٽائيٽينڪ جي ٻين مسافرن جي معلومات کي محفوظ ڪري ٿو، جنهن لاء اسان، مسئلو حل ڪرڻ، نتيجو نه ڄاڻندا آهيون.

تنهن ڪري، اچو ته اسان جي جدول کي منحصر ۽ آزاد ڊيٽا ۾ ورهايو. هتي سڀ ڪجھ سادو آهي. انحصار ڪندڙ ڊيٽا اهي ڊيٽا آهن جيڪي آزاد ڊيٽا تي منحصر آهن جيڪي نتيجن ۾ آهن. آزاد ڊيٽا اهي ڊيٽا آهن جيڪي نتيجن تي اثر انداز ڪن ٿا.

مثال طور، اسان وٽ ھيٺ ڏنل ڊيٽا سيٽ آھي:

"Vova ڪمپيوٽر سائنس سيکاريو - نه.
وووا ڪمپيوٽر سائنس ۾ 2 نمبر حاصل ڪيو.

ڪمپيوٽر سائنس ۾ گريڊ سوال جي جواب تي منحصر آهي: ڇا وووا ڪمپيوٽر سائنس جو مطالعو ڪيو؟ ڇا اهو واضح آهي؟ اچو ته اڳتي وڌون، اسان اڳ ۾ ئي مقصد جي ويجهو آهيون!

آزاد ڊيٽا لاء روايتي متغير X آهي. انحصار ڊيٽا لاء، y.

اسان هيٺيان ڪندا آهيون:

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

هي ڇا آهي؟ فنڪشن سان iloc[:, 2: ] اسان Python کي ٻڌايو: مان ڏسڻ چاهيان ٿو متغير X ۾ ڊيٽا کي ٻئي ڪالمن کان شروع ٿئي (شامل آهي ۽ مهيا ڪيل آهي ته ڳڻپ صفر کان شروع ٿئي). ٻئي لائن ۾ اسان چئون ٿا ته اسان پهرين ڪالمن ۾ ڊيٽا کي ڏسڻ چاهيون ٿا.

[a:b، c:d] اهو آهي جيڪو اسان قوس ۾ استعمال ڪندا آهيون. جيڪڏهن توهان ڪي متغير بيان نه ڪندا، اهي ڊفالٽ طور محفوظ ڪيا ويندا. يعني، اسان وضاحت ڪري سگھون ٿا [:،: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 لائبريري هڪ اهڙي بهترين لائبريري آهي جيڪا اسان کي ڊيٽا سائنس ۾ مڪمل ڪم ڪرڻ جي اجازت ڏئي ٿي. ان ۾ وڏي تعداد ۾ دلچسپ مشين سکيا جا ماڊل شامل آھن ۽ پڻ اسان کي ڊيٽا تيار ڪرڻ جي اجازت ڏئي ٿو.

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 ماڊل هن مسئلي تي. اسان 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

تبصرو شامل ڪريو