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

هل loss , accuracy كويس في النموذج ده ؟

Ail Ahmed

السؤال

السلام عليكم

انا عمل نموذج لتصنيف مرض القلب باستخدم الشبكه الاعصبيه وده الكود

وده البيانات الانا شغل علها

 

x = heart.drop(['target'] , axis=1)
y = heart['target']

x_traing , x_test , y_traing , y_test = train_test_split(x , y ,test_size=0.25,random_state=44,shuffle=True)

#print(f"X taring shape is: {x_traing.shape}")
#print(f"X test shape is: {x_test.shape}")
#print(f"Y taring shape is: {y_traing.shape}")
#print(f"Y test shape is: {y_test.shape}")

kerasmodle = keras.models.Sequential([
    keras.layers.Dense(8, activation='tanh'),
    keras.layers.Dense(128,activation='tanh'),
    keras.layers.Dense(64,activation='tanh'),
    keras.layers.Dense(1,activation='sigmoid'),
])

myoptimizer = tf.keras.optimizers.AdamW(
    learning_rate=0.001,
    weight_decay=0.004,
    beta_1=0.9,
    beta_2=0.999,
    epsilon=1e-07,
    amsgrad=False,
    clipnorm=None,
    clipvalue=None,
    global_clipnorm=None,
    use_ema=False,
    ema_momentum=0.99,
    ema_overwrite_frequency=None,
    loss_scale_factor=None,
    gradient_accumulation_steps=None,
    name='Adamw',
   
)

kerasmodle.compile(optimizer=myoptimizer,loss='binary_crossentropy',metrics=['accuracy'])

#Trinag
trinag_modle = kerasmodle.fit(x_traing,y_traing,
                        validation_data=(x_test,y_test),
                        epochs=100,
                        batch_size=10000,
                        verbose=1,
                        callbacks=tf.keras.callbacks.EarlyStopping(
                            patience=10,
                            monitor='val_accuracy',
                            restore_best_weights=True,
                        ))

#print(kerasmodle.summary())

y_pred = kerasmodle.predict(x_test)

moduleloos,modleaccuracy = kerasmodle.evaluate(x_test,y_test)

print(f"modle loss is: {moduleloos}")
print(f"modle accuracy is : {modleaccuracy}")

وده الloss و accoracy 

 

modle loss is: 0.5819184184074402
modle accuracy is : 0.744966447353363

فا انا عاوز اعرف هل كده النموذج كويس ؟

heart.db

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

مرحبًا،

النتيجة جيدة نوعًا ما في حال نظرت إليها بشكل مجرد.

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

كما أن معيار الدقة فقط لوحده غير جيد، حيث أنه عليك التفكير في المهمة التي تقوم ببناء النموذج لها، و هل هذا المعيار جيد أم لا؟

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

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

كما أنه يجب عليك المقارنة مع أشخاص أخرين عملوا على نفس المهمة، لمعرفة ما توصلوا له و هل نموذج جيد مقارنة بهم أم لا. ففي بعض المهام تعتبر دقة 60 بالمية ممتازة (كمهام التعرف على الأغراض من صور الأقمار الصناعية)، أما في مهام أخرى فإن أي نتيجة أقل من 90 غير جيدة (كأغلب مهام التصنيف الخاصة بالصور).

أي ما يهم أن تفكر فيما وراء الأرقام و هل هي تعكس الأداء الذي تريد قياسه أم لا.

تحياتي.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال Kais Hasan:

مرحبًا،

النتيجة جيدة نوعًا ما في حال نظرت إليها بشكل مجرد.

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

كما أن معيار الدقة فقط لوحده غير جيد، حيث أنه عليك التفكير في المهمة التي تقوم ببناء النموذج لها، و هل هذا المعيار جيد أم لا؟

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

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

كما أنه يجب عليك المقارنة مع أشخاص أخرين عملوا على نفس المهمة، لمعرفة ما توصلوا له و هل نموذج جيد مقارنة بهم أم لا. ففي بعض المهام تعتبر دقة 60 بالمية ممتازة (كمهام التعرف على الأغراض من صور الأقمار الصناعية)، أما في مهام أخرى فإن أي نتيجة أقل من 90 غير جيدة (كأغلب مهام التصنيف الخاصة بالصور).

أي ما يهم أن تفكر فيما وراء الأرقام و هل هي تعكس الأداء الذي تريد قياسه أم لا.

تحياتي.

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...