مبادئ وتقنيات علم البيانات
ملحق: المكاتب المستخدمة في الكتاب ودوالها
فهرس الفصل:
مقدمة
هذا الملحق يحتوي على جداول لدوال المكتبات المستخدمة في هذا الكتاب pandas
، seaborn
، matplotlib
و scikit-learn
. هدف هذه الجداول أن تكون ملخص ومرجع مفيد للدوال الأكثر استخداماً في هذا الكتاب.
لكل مكتبة، قمنا بإضافة الدالة، الفصل الذي استخدمت في الدالة أول مرة، وشرح بسيط عن طريقة عملها.
Pandas
الدالة | الفصل | الوصف |
---|---|---|
pd.DataFrame(data) |
البيانات المجدولة ومكتبة بانداز | إنشاء DataFrame من مصفوفة أو قاموس ثنائي الأبعاد data |
pd.read_csv(filepath) |
البيانات المجدولة ومكتبة بانداز | قراءة ملف من النوع CSV في المسار filepath كـ DataFrame |
pd.DataFrame.head(n=5) pd.Series.head(n=5) |
البيانات المجدولة ومكتبة بانداز | إظهار أول n أسطر في مصفوفة أحادية البعد أو DataFrame |
pd.DataFrame.index pd.DataFrame.columns |
البيانات المجدولة ومكتبة بانداز | إظهار الأرقام التسلسلية للـDataFrame و أسماء الأعمدة |
pd.DataFrame.describe() pd.Series.describe() |
التحليل الاستكشافي للبيانات | عرض معلومات إحصائية عن مصفوفة أحادية البعد أو الـDataFrame |
pd.Series.unique() |
التحليل الاستكشافي للبيانات | عرض القيم الفريدة (الغير مكررة) في مصفوفة أحادية البعد |
pd.Series.value_counts() |
التحليل الاستكشافي للبيانات | عرض عدد مرات تكرار كل قيمة فريدة (غير مكررة) تظهر في المصفوفة أحادية البعد |
df[col] |
البيانات المجدولة ومكتبة بانداز | من الـDataFrame df ، أظهر العامود col كمصفوفة أحادية البعد |
df[[col]] |
البيانات المجدولة ومكتبة بانداز | من الـDataFrame df ، أظهر العامود col كـDataFrame |
df.loc[row, col] |
البيانات المجدولة ومكتبة بانداز | من الـDataFrame df ، أظهر لنا السطر ذو الاسم row واسم عموده col ؛ يمكن تبديل row بمصفوفة أحادية البعد بقيم منطقية (True/False) |
df.iloc[row, col] |
البيانات المجدولة ومكتبة بانداز | من الـDataFrame df ، أظهر لنا السطر ذو الرقم التسلسلي row واسم عموده col ؛ يمكن تبديل row بمصفوفة أحادية البعد بقيم منطقية (True/False) |
pd.DataFrame.isnull() pd.Series.isnull() |
تنظيف البيانات | إظهار القيم المفقودة في مصفوفة أحادية البعد أو DataFrame |
pd.DataFrame.fillna(value) pd.Series.fillna(value) |
تنظيف البيانات | تعبئة القيم المفقودة في المصفوفة أحادية البعد أو الـDataFrame بالقيمة في المتغير value |
pd.DataFrame.dropna(axis) pd.Series.dropna() |
تنظيف البيانات | حذف الأسطر أو الأعمدة |
pd.DataFrame.drop(labels, axis) |
تنظيف البيانات | حذف الأسطر أو الأعمدة التي اسمها labels من الـDataFrame من المحور axis |
pd.DataFrame.rename() |
تنظيف البيانات | إعادة تسمية الأسطر أو الأعمدة في DataFrame |
pd.DataFrame.replace(to_replace, value) |
تنظيف البيانات | تبديل القيمة to_replace بالقيمة value في الـDataFrame |
pd.DataFrame.reset_index(drop=False) |
تنظيف البيانات | إعادة تعيين الأرقام التسلسلية في الـDataFrame؛ تلقائيًا، يتم حفظ الأرقام السابقة في عمود جديد إلا إذا تم وضع المتغير drop=True |
pd.DataFrame.sort_values(by, ascending=True) |
البيانات المجدولة ومكتبة بانداز | ترتيب الـDataFrame بناءًا على العمود في المتغير by ، الترتيب التلقائي تصاعدي |
pd.DataFrame.groupby(by) |
البيانات المجدولة ومكتبة بانداز | إنشاء كائن GroupBy يحتوي على DataFrame مُجَمعة بناءًا على العامود في المتغير by |
GroupBy.<function> |
البيانات المجدولة ومكتبة بانداز | تطبيق الدالة <function> لكل مجموعة في الكائن GroupBy ؛ مثال: mean() ، count() |
pd.Series.<function> |
البيانات المجدولة ومكتبة بانداز | تطبيق الدالة <function> على مصفوفة أرقام أحادية البعد؛ مثال: mean() ، max() , median() |
pd.Series.str.<function> |
البيانات المجدولة ومكتبة بانداز | تطبيق الدالة <function> على مصفوفة نصية أحادية البعد؛ مثال: len() ، lower() , split() |
pd.Series.dt.<property> |
البيانات المجدولة ومكتبة بانداز | استخراج القيمة <property> من مصفوفة تاريخ ووقت أحادية البعد؛ مثال: year ، month , date |
pd.get_dummies(columns, drop_first=False) |
— | تحويل القيم الاسمية في العمود columns لقيم وهمية Dummy؛ الوضع التلقائي بإبقاء جميع القيم إلا إذا تم تحديد المتغير drop_first=True |
pd.merge(left, right, how, on) |
التحليل الاستكشافي للبيانات / قواعد البيانات العلائقية و SQL | جمع اثنين DataFrame في المتغيرات left و right معاً باستخدام العمود في المتغير on ؛ بناءًا على طريقة الجمع في المتغير how |
pd.read_sql(sql, con) |
قواعد البيانات العلائقية و SQL | قراءة أمر SQL في المتغير sql في قاعدة البيانات المتصل بها في con ، تعود النتيجة كـDataFrame |
Seaborn
الدالة | الفصل | الوصف |
---|---|---|
sns.lmplot(x, y, data, fit_reg=True) |
تصوير البيانات | إنشاء مخطط تشتت لـ x و y من الـDataFrame data ، وبشكل تلقائي يظهر لنا خط انحدار المربعات الصغرى |
sns.distplot(a, kde=True) |
تصوير البيانات | إنشاء مخطط المدرج التكراري لـ a ، وبشكل تلقائي يظهر لنا تقدير للكثافة |
sns.barplot(x, y, hue=None, data, ci=95) |
تصوير البيانات | إنشاء مخطط شريطي لـ x و y من الـDataFrame data ، يتم تحليلها اختيارياً بالخيار في المتغير hue ، وبشكل تلقائي رسم خط ثقة بنسبة 95% (والذي يمكن عدم رسمه بتحديد الخيار ci=None ) |
sns.countplot(x, hue=None, data) |
تصوير البيانات | إنشاء مخطط شريطي لمجموع القيم الفريدة في المتغير x في الـDataFrame data ، يتم تحليلها اختيارياً بناءًا على المتغير النوعي hue |
sns.boxplot(x=None, y, data) |
تصوير البيانات | إنشاء مخطط صندوق لـ y ، يتم تحليله اختيارياً بناءًا على المتغير النوعي x ، من الـDataFrame data |
sns.kdeplot(x, y=None) |
تصوير البيانات | إذا كانت y=None ، أنشأ مخطط كثافة بمتغير واحد x ؛ إذا تم تحديد y ، أنشأ مخطط كثافة ثنائي |
sns.jointplot(x, y, data) |
تصوير البيانات | جمع مخطط التشتت الثنائي المكون من x و y من الـDataFrame data ، مع مخطط كثافة ذو المتغير الواحد يتم رسم خط كل متغير في المحاور |
sns.violinplot(x=None, y, data) |
تصوير البيانات | جمع وأنشاء مخطط الصندوق و مخطط كثافة للمتغير y ، يتم تحليله اختيارياً بناءًا على المتغير النوعي x ، من الـDataFrame data |
matplotlib
أنواع الرسومات
الدالة | الفصل | الوصف |
---|---|---|
plt.scatter(x, y) |
تصوير البيانات | إنشاء مخطط تشتت لـ x و y |
plt.plot(x, y) |
تصوير البيانات | إنشاء مخطط خطي لـ x و y |
plt.hist(x, bins=None) |
تصوير البيانات | إنشاء مخطط المدرج التكراري لـ x . المتغير bins يمكن أن يكون رقم أو أرقام تسلسلية |
plt.bar(x, height) |
تصوير البيانات | إنشاء مخطط شريطي. x تحدد تنسيق الأشرطة، و height تحدد طول الأشرطة |
plt.axvline(x=0) |
تصوير البيانات | إنشاء خط عمودي على القيمة المحددة في المتغير x |
plt.axhline(y=0) |
تصوير البيانات | إنشاء خط أفقي على القيمة المحددة في المتغير x |
إضافة الرسومات
الدالة | الفصل | الوصف |
---|---|---|
%matplotlib inline |
تصوير البيانات | السماح بالرسوم البيانية أن تظهر في نفس الصفحة بدلاً من صفحة منفصلة |
plt.figure(figsize=(3, 5)) |
تصوير البيانات | إنشاء رسم بياني بعرض 3 وطول 5 إنش |
plt.xlim(xmin, xmax) |
تصوير البيانات | تحديد حد للمحور x-limits |
plt.xlabel(label) |
تصوير البيانات | تحديد عنوان للمحور |
plt.title(label) |
تصوير البيانات | تحديد عنوان للمحاور / الرسم البياني |
plt.legend(x, height) |
تصوير البيانات | إضافة عنوان تفصيلي / تفسيري للرسم البياني |
fig, ax = plt.subplots() |
تصوير البيانات | إنشاء رسم بياني ومجموعة من الرسوم البيانية داخلة |
plt.show() |
تصوير البيانات | عرض الرسم البياني |
scikit-learn
النماذج واختيارها
الإستدعاء | الدالة | الفصل | الوصف |
---|---|---|---|
sklearn.model_selection |
train_test_split(*arrays, test_size=0.2) |
النماذج والتوقعات | ينتج عنها قسمين من المصفوفة المرسولة في الدالة، نصف فيه 0.8 من المصفوفة والنصف الآخر 0.2 |
sklearn.linear_model |
LinearRegression() |
النماذج والتوقعات | إنشاء نموذج الانحدار الخطي للمربعات الصغرى |
sklearn.linear_model |
LassoCV() |
النماذج والتوقعات | إنشاء نموذج خطي Lasso (الضبط L1) يختار أفضل المتغيرات باستخدام التحقق المتقاطع |
sklearn.linear_model |
RidgeCV() |
النماذج والتوقعات | إنشاء نموذج خطي Ridge (الضبط L2) يختار أفضل المتغيرات باستخدام التحقق المتقاطع |
sklearn.linear_model |
ElasticNetCV() |
النماذج والتوقعات | إنشاء نموذج خطي ElasticNet (الضبط L1 و L2) يختار أفضل المتغيرات باستخدام التحقق المتقاطع |
sklearn.linear_model |
LogisticRegression() |
النماذج والتوقعات | إنشاء نموذج انحدار لوجستي |
sklearn.linear_model |
LogisticRegressionCV() |
النماذج والتوقعات | إنشاء نموذج انحدار لوجستي يختار أفضل المتغيرات باستخدام التحقق المتقاطع |
العمل مع النماذج
الدالة | الفصل | الوصف |
---|---|---|
model.fit(X, y) |
النماذج والتوقعات | ضبط النموذج باستخدام الخصائص X والنتائج y |
model.predict(X) |
النماذج والتوقعات | إيجاد التوقعات لـ X باستخدام النموذج model |
model.score(X, y) |
النماذج والتوقعات | إيجاد دقة النتائج للتوقعات القيم X مقارنة بالنتائج الصحيحة في y |
إنتهى