اذهب إلى المحتوى

Ail Ahmed

الأعضاء
  • المساهمات

    526
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    4

أجوبة بواسطة Ail Ahmed

  1. بتاريخ 3 ساعة قال حمزة عباد:

    لبرنامج بسيط. لكن الوصول إلى تلك 10 سطور يتطلب فهما عميقا يحتاج إلى ساعات أو أيام من العمل

    ده حقيقه فعلان

    بتاريخ 3 ساعة قال حمزة عباد:

    وعليكم السلام،

    في مجال تعلم الآلة سوف تجد أن معظم الوقت يذهب في الجزء النظري والتفكير في الحل، وليس في كتابة الحل. عندما تكون عندك بيانات، فسوف تحتاج إلى معرفة ما هي المدخلات وما هي المخرجات، وكيف تقوم بتحويل المدخلات لتناسب النموذج، وما هو النموذج المختار وما هي إعداداه وكيف يعمل، وكيف تقوم بتقسيم البينات وما الذي تستخدمه للتدريب وما الذي تبقيه للاختبار، وكيف تحسب جودة النموذج. كل هذا عندما يتم تحويله إلى كود بالشكل الصحيح وعند استخدام مكتبة جيدة مثل Scikit-learn سوف ترى أنك قد تستطيع كتابته أحيانا في 10 سطور! مما يجعل قارئ تلك السطور يظن أن البرنامج بسيط. لكن الوصول إلى تلك 10 سطور يتطلب فهما عميقا يحتاج إلى ساعات أو أيام من العمل.

    شكراا لحضرتك جدا

    • شكرًا 1
  2. بتاريخ 30 دقائق مضت قال Mustafa Suleiman:

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

     

    معك حق 

    تمام , شكراا لحضرتك جدا

  3. بتاريخ منذ ساعة مضت قال حمزة عباد:

    وعليكم السلام،

    حسب تعريف خوارزمية Naive Bayes، فإنها تحسب احتمالية كل صنف استنادا إلى قيمة البيانات المدخلة، ثم تختار الصنف الذي يحقق أكبر احتمالية. وبما أن الاحتماليات مربوطة بالأصناف الممكنة، فإننا بالضرورة نتحدث عن مشكل فيه أصناف معروفة ومحددة مسبقا، أي أننا في مشكل من نوع Classification بكل تأكيد. لذلك فالجواب هو نعم، Naive Bayes خاصة بالـClassification.

    الخوارزميات التي تستخدم في الـRegression هي الخوارزميات التي تستطيع إخراج قيم عددية، مثل Logistic Regression.

    شكراا لحضرتك

    • شكرًا 1
  4. بتاريخ 13 ساعة قال Khaled Osama3:

    في التصنيف (Classification) أيوة، ممكن نستخدم أرقام بدل الكلمات (زي 1 بدل "نعم" و0 بدل "لا"). دي بنسميها أحيانا encoding. لكن الهدف النهائي هو نفس الهدف اننا نحدد الفئة أو المجموعة اللي العنصر ينتمي ليها. يعني التصنيف بيكون دايما على هيئة مجموعات أو فئات مش أرقام مستمرة.
    انما في التنبؤ أو الانحدار (Regression) التنبؤ بيتعامل مع الأرقام بشكل مستمر، مش مجرد أرقام بتمثل فئات. يعني الرقم اللي بتتنبأ بيه ممكن يكون أي قيمة في نطاق معين، مش بس 0 و1. مثلاً، لما بتتنبأ بسعر بيت، ممكن يكون السعر 150000، 175000، أو أي رقم تاني.

    لتوضيح الفرق أكتر:
    - لو عندنا مشكلة تصنيف زي إننا نحدد إذا كان الشخص مصاب بالسكر أو لا، نقدر نستخدم 1 و0، لكن ده بيظل تصنيف لأن الهدف هو نحدد المجموعة اللي الشخص ينتمي ليها (مصاب أو سليم).
    - لو عندنا مشكلة تنبؤ زي تقدير مستوى السكر في الدم على هيئة رقم (مثلاً 120، 150، إلخ)، دي تبقى مشكلة تنبؤ أو انحدار لأننا بنتعامل مع أرقام مستمرة.
    بالتالي، التصنيف بيشتغل مع فئات محددة حتى لو استخدمنا أرقام لتمثيلها، والتنبؤ بيشتغل مع أرقام مستمرة.

    فهمت حضرتك يا أ.خالد جزاك الله كل خير ليك والا أ. مصطفي 

    شكراا لحضرتكم جدا

  5. بتاريخ 2 ساعة قال Mustafa Suleiman:

    عبارة عن نوعان من مهام التعلم الآلي التي تستخدم لبناء نماذج تنبؤية، والفرق الرئيسي بينهما يكمن في طبيعة المتغير الهدف Target Variable الذي نحاول التنبؤ به.

    فالتصنيف Classification الهدف منه هو التنبؤ بفئة أو مجموعة معينة ينتمي إليها المتغير الهدف، وذلك لتصنيف البيانات إلى فئات محددة.

    تكون المخرجات عادة فئات غير مرتبة Categorical, مثل "نعم" أو "لا"، "سبام" أو "غير سبام"، أنواع الحيوانات، إلخ.

    وكأمثلة على الخوارزميات المستخدمة، فمنها الشبكات العصبية Neural Networks ودعم آلات المتجهات Support Vector Machines.

    بينما الانحدار Regression الهدف منه هو التنبؤ بقيمة مستمرة للمتغير الهدف، أي نحاول تقدير كمية معينة.

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

    وكأمثلة على الخوارزميات المستخدمة، فمنها الانحدار الخطي Linear Regression  والانحدار المتعدد Multiple Regression.

    تمام بس عاوز برد افهم حاجه

    في التصنيف مش ممكن ان نغير كلمه نعم برقم مثل 1 وكلمه الا برقم 0 وكده نقدر نستخدم الRegression 

    وبر علي عكس الRegression مش ممكن ان نغير مثل 1 يعني الشخص ده مصاب بالسكر و 0 يعني ان سليم مش ممكن ان شيل ال1و0 ونستخدم كلمه مصاب بالسكري او سليم ووكده نقدر ان نستخدم البيانات ده في الClassification  

    هو ان كده فهم صح 

    • أعجبني 1
  6. بتاريخ 12 دقائق مضت قال Mustafa Suleiman:

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

    فبعض تعلم الأساسيات تعتبر المرحلة الثالثة هي ما تشمل تعلم تلك الخوارزميات بالترتيب التالي:

    1.  دراسة التقسيم الهرمي وتطبيقه على مجموعات البيانات،  لتجميعها في مجموعات بناءًا على التشابه بينها، للمساعدة في فهم العلاقات بين البيانات المعقدة.
    2.  فهم تطبيقات خوارزميات الأبريوري في تحليل قواعد الترابط، للعثور على الأنماط والقواعد المترابطة في بيانات كبيرة، مثل اكتشاف العلاقات بين المنتجات في سلة المشتريات.
    3. دراسة LDA واستخدامه في تقليل الأبعاد وتحسين التصنيف، لتصنيف البيانات إلى فئات مختلفة، وهو مهم في تطبيقات مثل تعرف الوجه وتصنيف النصوص.
    4.  التعرف على MDA وتطبيقه على البيانات متعددة الأبعاد، وهو مفيد في التعامل مع البيانات التي تحتوي على العديد من المتغيرات، مما يساعد في تصنيف البيانات وتمييز الفئات بشكل أكثر دقة.
    5. فهم كيفية بناء الشبكات العصبية العميقة باستخدام طبقات متعددة، وسيساعدك ذلك في تطوير نماذج قادرة على فهم الأنماط المعقدة في البيانات.
    6. تعلم تحليل السلاسل الزمنية وتطبيقها في التنبؤ، للتنبؤ بالاتجاهات المستقبلية بناءً على البيانات التاريخية، مما يفيد في مجالات مثل التنبؤ بالأسواق المالية والتنبؤ بالطقس.

     

    جزاك الله كل خير

    تمام . شكراا لحضرتك جدا

  7. بتاريخ 4 دقائق مضت قال Ali Ibrahim12:



    في الكود الثاني، قمت بتطبيق التحجيم القياسي (StandardScaler)فقط على بيانات التدريب (x_traing) ولكن لم تقم بتطبيق نفس التحجيم على بيانات الاختبار (x_test). هذا يؤدي إلى عدم توافق في توزيع البيانات بين التدريب والاختبار، مما يسبب زيادة كبيرة في الخطأ.

    يجب عليك أيضًا تطبيق التحجيم على بيانات الاختبار باستخدام نفس التحجيم الذي استخدمته لبيانات التدريب:

    import pandas as pd 
    from sklearn.linear_model import LinearRegression
    from sklearn.preprocessing import StandardScaler
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import mean_squared_error
    
    data = pd.read_csv("heart_disease.csv")
    
    feutures = data.drop(['target'], axis=1, inplace=False)
    outpnt = data['target']
    
    x_traing, x_test, y_traing, y_test = train_test_split(feutures, outpnt, test_size=0.25, random_state=44, shuffle=True)
    
    scaler = StandardScaler()
    x_scaler_traing = scaler.fit_transform(x_traing)
    x_scaler_test = scaler.transform(x_test)  # تطبيق نفس التحجيم على بيانات الاختبار
    
    linearregression = LinearRegression(fit_intercept=True, copy_X=True, n_jobs=-1)
    
    fit = linearregression.fit(x_scaler_traing, y_traing)
    
    y_prodict = fit.predict(x_scaler_test)  
    
    msevalue = mean_squared_error(y_test, y_prodict, multioutput="uniform_average")
    print(f"MSEvalue: {msevalue}")


    وتأكد من أن البيانات في ملف heart_disease.csv لا تحتوي على قيم شاذة أو غير منطقية يمكن أن تؤثر على النتائج بعد التحجيم.

    بتطبيق التعديلات السابقة، يجب أن تحصل على نتائج أكثر منطقية لقيمة MSE.

    شكراا جدا لحضرتك

    تمام 

    • أعجبني 1
  8. بتاريخ 3 ساعة قال Mustafa Suleiman:

    بالضبط، ففي مكتبة scikit-learn، باراميتر normalize لم يعد موجودًا في الإصدار 0.24.0 وما بعده من النموذج LinearRegression.

    في الإصدارات الأحدث من المكتبة، عليك استخدام StandardScaler أو Normalizer من مكتبة sklearn.preprocessing لتطبيع البيانات قبل تمريرها إلى النموذج.

    للتوضيح:

    from sklearn.linear_model import LinearRegression
    from sklearn.preprocessing import StandardScaler
    import numpy as np
    
    X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
    y = np.array([1, 2, 3, 4])
    
    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)
    
    model = LinearRegression()
    model.fit(X_scaled, y)
    
    predictions = model.predict(X_scaled)
    print(predictions)

    لاحظ تطبيع البيانات باستخدام StandardScaler قبل استخدامها في تدريب النموذج LinearRegression، وذلك يحقق نفس النتيجة التي كان يحققها استخدام الباراميتر normalize=True في الإصدارات الأقدم.

    انا اول ما عملت كده يا أ.مصطفي فا حسابات الMSE فا كان ده النتجيه 87.53644204505163

    مع العلم قبل ما اعمل كده فا كانت النتجيه 0.12410403813221675 

    فا اي السبيب ؟

    وده الكود قبل

    import pandas as pd 
    from sklearn.linear_model import LinearRegression
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import mean_squared_error
    
    data = pd.read_csv("heart_disease.csv")
    
    feutures = data.drop(['target'] , axis=1 , inplace=False)
    
    outpnt = data['target']
    
    x_traing , x_test , y_traing , y_test = train_test_split(feutures , outpnt , test_size=0.25, random_state=44 , shuffle=True)
    
    linearregression = LinearRegression(fit_intercept=True , copy_X=True , n_jobs=-1)
    
    fit = linearregression.fit(x_traing , y_traing)
    
    y_prodict = fit.predict(x_test)
    
    
    
    msevalue = mean_squared_error(y_test , y_prodict , multioutput="uniform_average")
    print(f"MSEvalue: {msevalue}")

    وده الكود بعد

    import pandas as pd 
    from sklearn.linear_model import LinearRegression
    from sklearn.preprocessing import StandardScaler
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import mean_squared_error
    
    data = pd.read_csv("heart_disease.csv")
    
    feutures = data.drop(['target'] , axis=1 , inplace=False)
    
    outpnt = data['target']
    
    x_traing , x_test , y_traing , y_test = train_test_split(feutures , outpnt , test_size=0.25, random_state=44 , shuffle=True)
    scaler = StandardScaler()
    x_scaler_traing = scaler.fit_transform(x_traing)
    linearregression = LinearRegression(fit_intercept=True , copy_X=True , n_jobs=-1)
    
    fit = linearregression.fit(x_scaler_traing , y_traing)
    
    y_prodict = fit.predict(x_test)
    
    
    
    msevalue = mean_squared_error(y_test , y_prodict , multioutput="uniform_average")
    print(f"MSEvalue: {msevalue}")

     

    • أعجبني 1
  9. بتاريخ 18 دقائق مضت قال Mohamed Farahat:

    وعليكم السلام

    Understanding the mathematical equations associated with models can be helpful for comprehending how each model works and customizing its usage effectively. However, it’s not necessary to memorize all the equations in detail. In fact, you can rely on programming libraries and available tools to execute these equations instead of memorizing them manually.

    For example, in the case of Linear Regression, the main equation is:

    [ y = \beta_0 + \beta_1 x ]

    Where:

    (y) represents the target value (dependent variable).

    (x) represents the independent variable.

    (\beta_0) and (\beta_1) are the regression coefficients.

    As for the RandomForestClassifier model, it relies on an ensemble of decision trees and doesn’t have a specific mathematical equation in the same way.

    شكراا لحضرتك

     

    • أعجبني 1
  10. بتاريخ On 7‏/6‏/2021 at 15:39 قال Ali Haidar Ahmad:

    # انتبه أن التابع mean_squared_error يقبل وسيط بولياني يسمى squared في حال ضبطه على True سيتم حساب MSE أما في حال ضبطه على False سوف يحسي MSE ثم يأخذ الجذر أي يصبح RMSE.

     

    طيب اي الاحسن MSE ام RMSE ؟

  11. بتاريخ 1 ساعة قال Mustafa Suleiman:

    اختيار النموذج المناسب يعتمد على العديد من العوامل بما في ذلك طبيعة البيانات، الهدف من النموذج، والأداء المطلوب.

    بالتالي القول بأن نموذجًا معينًا مثل RandomForestClassifier هو دائمًا أفضل من LinearRegression غير دقيق،  لأن كل منهما يخدم أغراضًا مختلفة ويعمل بشكل أفضل في ظروف معينة.

    لديك LinearRegression نموذج بسيط وسهل الفهم يستخدم للعلاقات الخطية بين المتغيرات المستقلة والمتغير التابع، ومناسب في حال العلاقة بين متغيراتك خطية وتحتاج إلى تفسير بسيط للنموذج.

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

    واستخدم التحقق المتبادل لتقييم أداء النموذج على مجموعة من البيانات غير المرئية للنموذج، وقد تحتاج إلى ضبط الباراميترات للنماذج المعقدة لتحسين أدائها.

    تمام بس سوال كمان 

    كل نموذج ليا معادلات رياضيه فا هل موطلب مني معرفت المعادالات لكل نموذج استخدمو ؟

    ان عرف LinearReagression 

    • أعجبني 1
×
×
  • أضف...