الأخبار التكنولوجية والاستعراضات والنصائح!

التنبؤ بالمستقبل – دراسة حالة – نحو الذكاء الاصطناعي

ستساعدك المقالة التالية: التنبؤ بالمستقبل – دراسة حالة – نحو الذكاء الاصطناعي

نُشر في الأصل على نحو AI ، الشركة الرائدة في العالم في مجال الذكاء الاصطناعي والأخبار التقنية والإعلام. إذا كنت تقوم ببناء منتج أو خدمة متعلقة بالذكاء الاصطناعي ، فنحن ندعوك للتفكير في أن تصبح راعيًا للذكاء الاصطناعي. في نحو الذكاء الاصطناعي ، نساعد في توسيع نطاق الشركات الناشئة في مجال الذكاء الاصطناعي والتكنولوجيا. دعنا نساعدك على إطلاق التكنولوجيا الخاصة بك للجماهير.

آلات ناقلات الدعم: التنبؤ بالمستقبل – دراسة حالة

استمرار طرق التعلم الخاضعة للإشراف: الجزء 3

كما وعدنا سابقًا في SUPPORT VECTOR MACHINE – الجزء الثالث من طرق التعلم الخاضعة للإشراف ، فلنتحدث عن دراسة حالة مذهلة لتحليل وفهم تطبيق متجه الدعم في مشكلة عمل حقيقية والاستعداد للنتائج المذهلة والتنبؤات التي لم يتوقعها أحد بالفعل .

عرض المشكلة :

في بيان المشكلة هذا ، سندرس الحالة حيث سنحاول التنبؤ بما إذا كان الشخص سينجو بناءً على عوامل التشخيص التي تؤثر على التهاب الكبد.

دعنا نتحدث أولاً عن مجموعة البيانات التي سنستخدمها. تحتوي مجموعة البيانات على حالات حدوث التهاب الكبد عند الأشخاص.

ماذا عن مصدر مجموعة البيانات هذه؟

تم استخدام مستودع التعلم الآلي UCI للحصول على مجموعة البيانات هذه .. يحتوي على 155 تسجيلًا في نوعين منفصلين ، 32 منها سجلات وفاة و 123 منها سجلات حية. هناك 20 خاصية في مجموعة البيانات (14 سمات ثنائية و 6 سمات رقمية)

سنستخدم عددًا من الأساليب في دراسة الحالة هذه للتنبؤ بنجاح بما إذا كان الشخص سينجو أم لا بناءً على عوامل التشخيص التي تؤثر على التهاب الكبد على مقاييس الخطأ الصحيحة. إحدى هذه الطرق ستكون مصفوفة الارتباك.

إذا لم تكن واضحًا بشأن هذا العرض التقديمي ، فيرجى الرجوع إلى منشور المدونة السابق الخاص بنا حول مقاييس الارتباك. (يأتي ضمن مدونة WORLD OF CLASSIFICATION)

لنبدأ بالجزء العملي:

الخطوة الأولى: تحميل المكتبات المطلوبة والإلزامية:

# هذا سيساعدنا في تجاهل التحذيرات أثناء تشغيل الكود الخاص بنا
تحذيرات الاستيراد
warnings.filterwarnings (“تجاهل”)

استيراد نظام التشغيل
استيراد numpy كـ np
استيراد الباندا كما pd

من sklearn.model_selection استيراد train_test_split
من sklearn.preprocessing استيراد StandardScaler ، OneHotEncoder

من sklearn.impute استيراد SimpleImputer

من sklearn.svm استيراد SVC

من sklearn.metrics استيراد confusion_matrix ، دقة_درجة ، استدعاء_تقييم ، دقة_درجة ، f1_score

من sklearn.model_selection استيراد GridSearchCV

الخطوة الثانية: قراءة مجموعة بيانات التهاب الكبد:

data = pd.read_csv (“/ content / hepatitis.csv”)

تحليل البيانات استكشافية:

EDA هو تحليل مفصل مصمم للكشف عن الهيكل الأساسي لمجموعة البيانات. إنه مهم لمشكلة العمل لأنه يكشف عن اتجاهات وأنماط وروابط غير واضحة على الفور.

# التحقق من الأبعاد (الصفوف والأعمدة)
البيانات

#Checking أنواع البيانات لكل متغير
أنواع البيانات

# التحقق من رأس البيانات (أي أعلى 5 صفوف)
data.head ()

# التحقق من ملخص الإحصائيات الأساسية
data.describe ()
#Checking عدد المستويات الفريدة في كل سمة
data.nunique ()

#Target توزيع السمة
data.target.value_counts ()

data.target.value_counts (التطبيع = صحيح) * 100

الخطوة 3: المعالجة المسبقة للبيانات:

لماذا نحتاج إلى معالجة البيانات مسبقًا بالضبط؟

في كل مرة نقرر العمل مع البيانات ، فإن الخطوة الأولى هي جمع البيانات ، والتي تكون عادةً في شكل غير مصنف وغير نظيف. بمجرد أن نبدأ العمل مع هذه البيانات ، يصبح من الصعب جدًا على عالم البيانات العثور على أنماط ونتائج واضحة من خلال هذا النوع من البيانات ، مما قد يؤدي إلى العديد من الإيجابيات والسلبيات الخاطئة بالإضافة إلى الارتباك.

لذلك ، من أجل منع هذا النوع من الفوضى ، نقوم بتنظيف البيانات الأولية ومعالجتها مسبقًا لزيادة الدقة والموثوقية. نقوم أيضًا بالتخلص من القيم المفقودة (أي المسافات الفارغة داخل البيانات) أو قيم البيانات غير المتسقة للسماح للخوارزميات أو النماذج بالعمل بسلاسة دون مواجهة أي قيم خطأ كبيرة.

من أجل جعل البيانات الخام أكثر قابلية للفهم وعملية وفعالية ، تعتبر المعالجة المسبقة للبيانات أيضًا طريقة حاسمة تستخدم في استخراج البيانات. يساعد إجراء المعالجة المسبقة للبيانات بالكامل في تحسين نتائجنا.

# دعنا نسقط الأعمدة التي ليست بهذه الأهمية والمستخدمة
data.drop ([“ID”]، المحور = 1 ، inplace = صحيح) # تخزين القيم الفئوية والرقمية:
num_cols = [“age”, “bili”, “alk”, “sgot”, “albu”, “protime”]
cat_cols = [‘gender’, ‘steroid’, ‘antivirals’, ‘fatigue’, ‘malaise’, ‘anorexia’, ‘liverBig’,
‘liverFirm’, ‘spleen’, ‘spiders’, ‘ascites’, ‘varices’, ‘histology’]

# التحقق من رأس مجموعة البيانات مرة أخرى لمعرفة كيف يبدو إطار البيانات
data.head ()

#Converting السمات إلى النوع المناسب لتجنب الخطأ في المستقبل
بيانات[cat_cols] = البيانات[cat_cols].astype (‘category’) # بعد تحويل أنواع السمات تحقق من أنواع البيانات للتأكد مرة أخرى
أنواع البيانات

الخطوة 4: تقسيم البيانات إلى ‘X’ و ‘Y’:

# حان الوقت لتقسيم البيانات إلى X و Y.
X = data.drop ([“target”]، المحور = 1)
ص = البيانات[“target”]
# الحصول على شكل البيانات
print (X.shape، y.shape) # تدريب البيانات
X_train، X_test، y_train، y_test = train_test_split (X، y، test_size = 0.2، random_state = 123، stratify = y) # الحصول على شكل البيانات المدربة للعثور على الفرق بين البيانات غير المدربة والمدربة.
طباعة (X_train.shape)
طباعة (X_test.shape)
طباعة (y_train.shape)
print (y_test.shape) # تحقق من متغيرات هدف التوزيع
y_train.value_counts ()

y_train.value_counts (تطبيع = صحيح) * 100

الخطوة 5: المعالجة المسبقة للبيانات بعد تقسيم البيانات إلى ‘X’ و ‘Y’:

# التحقق من القيم الخالية
X_train.isna (). sum ()

X_test.isna (). sum ()

أعمدة التصنيف المفقودة مع الوضع:

df_cat_train = X_train[cat_cols]
df_cat_test = X_test[cat_cols]

cat_imputer = SimpleImputer (إستراتيجية = ‘most_frequent’)
cat_imputer.fit (df_cat_train)

df_cat_train = pd.DataFrame (cat_imputer.transform (df_cat_train) ، أعمدة = cat_cols)
df_cat_test = pd.DataFrame (cat_imputer.transform (df_cat_test) ، أعمدة = cat_cols)

df_num_train = X_train[num_cols]
df_num_test = X_test[num_cols]

انتحال الأعمدة العددية المفقودة مع MEDIAN:

num_imputer = SimpleImputer (إستراتيجية = “متوسط”)
num_imputer.fit (df_num_train[num_cols])

df_num_train = pd.DataFrame (num_imputer.transform (df_num_train) ، الأعمدة = num_cols)
df_num_test = pd.DataFrame (num_imputer.transform (df_num_test) ، الأعمدة = num_cols)

الآن ، دمج الأعمدة التصنيفية والرقمية الضمنية:

# الجمع بين العددية والقاطعية في القطار
X_train = pd.concat ([df_num_train, df_cat_train]، المحور = 1)

# ادمج العددي والقاطعي في الاختبار
X_test = pd.concat ([df_num_test, df_cat_test]، المحور = 1)

تحديد الخصائص العددية:

نظرًا لأن الطريقة التي نستخدمها تضع افتراضات حول الأشكال المختلفة للتوزيع ، مثل الانحدار الخطي واللوجستي ، فإن التوحيد القياسي هو استراتيجية مفيدة للغاية تساعدنا عندما تكون بياناتنا ذات مقاييس متنوعة.

عندما يستخدم نموذج الانحدار المتغيرات التي يتم التعبير عنها ككثيرات حدود أو تفاعلات ، فغالبًا ما يقوم علماء البيانات بتوحيد البيانات لهذا النموذج. نظرًا للأهمية الكبيرة للمصطلحات والقدرة على الكشف عن العلاقة بين عوامل الاستجابة والتنبؤ ، يمكن أن تؤدي أيضًا إلى مستويات عالية للغاية من الخطية المتعددة.

قشارة = StandardScaler ()
scaler.fit (X_train[num_cols]) X_train_std = scaler.transform (X_train[num_cols])
X_test_std = scaler.transform (X_test[num_cols]) طباعة (X_train_std.shape)
طباعة (X_test_std.shape)

ONEHOTENCODER: تحويل السمات التصنيفية إلى السمات الرقمية:

يجب أن تكون جميع متغيرات الإدخال والإخراج لنماذج التعلم الآلي رقمية. هذا يعني أنه من أجل ملاءمة نموذج وتقييمه ، يجب أولاً تشفير البيانات الفئوية إلى أرقام في بياناتك.

enc = OneHotEncoder (قطرة = ‘الأول’)
enc.fit (X_train[cat_cols]) X_train_ohe = enc.transform (X_train[cat_cols]).لمجموعة()
X_test_ohe = enc.transform (X_test[cat_cols]).لمجموعة()

السمة المتسلسلة:

السمات الرقمية القياسية والسمات الفئوية مع تشفير واحد ساخن.

X_train_con = np.concatenate ([X_train_std, X_train_ohe]، المحور = 1)
X_test_con = np.concatenate ([X_test_std, X_test_ohe]، المحور = 1) طباعة (X_train_con.shape)
طباعة (X_test_con.shape)

الخطوة 6: نموذج البناء النهائي SUING LINEAR SVM:

إنشاء مصنف SVC باستخدام نواة خطية:

linear_svm = SVC (kernel = ‘linear’، C = 1) # تدريب المصنف
linear_svm.fit (X = X_train، y = y_train) # توقع النتائج
train_predities = linear_svm.predict (X_train)
test_prediction = linear_svm.predict (X_test)

مصفوفة الأخطاء:

يُعرف إجراء التقييم الذي يساعد في تحديد قابلية نموذج التصنيف والتنبؤ به بمصفوفة الارتباك ، والمعروفة أيضًا باسم مصفوفة الخطأ. يمكنك ملاحظة العديد من أخطاء التنبؤ التي يمكن أن ترتكبها باستخدام مصفوفات الارتباك.

# تعريف مصفوفة الخطأ
def rating_model (فعل ، سابق):
طباعة (“مصفوفة الارتباك \ n” ، confusion_matrix (فعل ، بريد))
طباعة (“الدقة:” ، دقة_تقييم (فعل ، مسبق))
print (“Recall:”، recall_score (act، pred))
طباعة (“Precision:”، Precore_score (act، pred))
print (“F1_score:” ، f1_score (فعل ، سابق)) ### تدريب دقة البيانات
نموذج_التقييم (y_train ، توقعات_قطار)

### اختبار دقة البيانات
نموذج_التقييم (y_test، test_predictions)

بقدر ما أحببت الكتابة لكم يا رفاق ، آمل أن تكونوا قد استمتعتوا بالتنفيذ والتعلم من دراسة الحالة هذه أيضًا. إذا كانت لديك أي أسئلة أو كنت بحاجة إلى مساعدة بشأن مصدر مجموعة البيانات أو جوهر GitHub (إذا كنت تواجه مشكلة في أجزاء من الكود) ، فيرجى الاتصال ؛ سنكون اكثر من سعداء للمساعدة.؟

استمر في التنبؤ والتعلم والاستكشاف! ❤️

تابعنا للحصول على نفس المتعة في تعلم مدونات ومقالات علوم البيانات:؟

لينكيدين: https://www.linkedin.com/company/dsmcs/

انستغرام: https://www.instagram.com/datasciencemeetscybersecurity/؟hl=ar

جيثب: https://github.com/Vidhi1290

تويتر: https://twitter.com/VidhiWaghela

واسطة: https://medium.com/@datasciencemeetscybersecurity-

موقع إلكتروني: https://www.datasciencemeetscybersecurity.com/

– علم بيانات الفريق يلتقي بالأمن السيبراني ❤️؟


آلات ناقلات الدعم: التنبؤ بالمستقبل – دراسة حالة نُشرت في الأصل في نحو AI on Medium ، حيث يواصل الأشخاص المحادثة من خلال تسليط الضوء على هذه القصة والرد عليها.

تم النشر عبر نحو الذكاء الاصطناعي