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

السؤال

Recommended Posts

  • 0
نشر
بتاريخ الآن قال Mustafa Suleiman:

السؤال غير واضح؟ ما المطلوب تنفيذه بالضبط؟ تقصد دمج المتغيرين efs و efs_time لإنشاء متغير هدف واحد مناسب لاستخدامه في نموذج انحدار Regression؟

ايوه انا اقصد كده

  • 0
نشر

لو افترضنا أنّ efs يمثل حجم التأثير لدواء جديد على مرض معين، فقيمة أعلى تعني دواء أكثر فعالية.

و efs_time يمثل الوقت اللازم لبدء ظهور تأثير الدواء بالأيام،  فقيمة أقل تعني ظهور التأثير بشكل أسرع.

إذن  نريد إنشاء متغير هدف يعكس الفاعلية الكلية للدواء مع مراعاة كل من حجم التأثير وسرعة الظهور.

فسنقوم بتجربة طرق الدمج ،وهي الضرب، القسمة، الجمع الموزون من أجل إختيار أفضل طريقة:

data['target_multiply'] = data['efs'] * data['efs_time']

data['target_divide'] = data['efs'] / data['efs_time']

w1 = 0.7
w2 = 0.3
data['target_weighted_sum'] = (w1 * data['efs']) + (w2 * data['efs_time'])

print(data.head()) 

ثم تدريب نموذج انحدار خطي بسيط لكل متغير هدف قمنا بإنشائه، حيث سنستخدم efs و efs_time كمتغيرات مستقلة features، والمتغيرات الهدف التي أنشأناها في الكود السابق كمتغير هدف target.

target_variables = ['target_multiply', 'target_divide', 'target_weighted_sum']
results = {} 

X = data[['efs', 'efs_time']] 
for target_name in target_variables:
    y = data[target_name] 

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    model = LinearRegression()
    model.fit(X_train, y_train)

    y_pred = model.predict(X_test)

    r2 = r2_score(y_test, y_pred)
    rmse = np.sqrt(mean_squared_error(y_test, y_pred))
    mae = mean_absolute_error(y_test, y_pred)

    results[target_name] = {'R-squared': r2, 'RMSE': rmse, 'MAE': mae}

print("\nنتائج تقييم نماذج الانحدار:")
for target_name, metrics in results.items():
    print(f"\nالمتغير الهدف: {target_name}")
    for metric_name, metric_value in metrics.items():
        print(f"{metric_name}: {metric_value:.4f}")

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

قارن قيم مقاييس التقييم R-squared، RMSE، MAE بين النماذج المختلفة، حيث R-squared كلما كانت القيمة أقرب إلى 1، كان النموذج أفضل في تفسير التباين في المتغير الهدف.

وRMSE و MAE كلما كانت القيم أقل، كان النموذج أفضل في التنبؤ بقيم المتغير الهدف بدقة أكبر أي أخطاء أقل.

  • 0
نشر
بتاريخ 8 دقائق مضت قال Mustafa Suleiman:

لو افترضنا أنّ efs يمثل حجم التأثير لدواء جديد على مرض معين، فقيمة أعلى تعني دواء أكثر فعالية.

و efs_time يمثل الوقت اللازم لبدء ظهور تأثير الدواء بالأيام،  فقيمة أقل تعني ظهور التأثير بشكل أسرع.

إذن  نريد إنشاء متغير هدف يعكس الفاعلية الكلية للدواء مع مراعاة كل من حجم التأثير وسرعة الظهور.

فسنقوم بتجربة طرق الدمج ،وهي الضرب، القسمة، الجمع الموزون من أجل إختيار أفضل طريقة:

data['target_multiply'] = data['efs'] * data['efs_time']

data['target_divide'] = data['efs'] / data['efs_time']

w1 = 0.7
w2 = 0.3
data['target_weighted_sum'] = (w1 * data['efs']) + (w2 * data['efs_time'])

print(data.head()) 

ثم تدريب نموذج انحدار خطي بسيط لكل متغير هدف قمنا بإنشائه، حيث سنستخدم efs و efs_time كمتغيرات مستقلة features، والمتغيرات الهدف التي أنشأناها في الكود السابق كمتغير هدف target.

target_variables = ['target_multiply', 'target_divide', 'target_weighted_sum']
results = {} 

X = data[['efs', 'efs_time']] 
for target_name in target_variables:
    y = data[target_name] 

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    model = LinearRegression()
    model.fit(X_train, y_train)

    y_pred = model.predict(X_test)

    r2 = r2_score(y_test, y_pred)
    rmse = np.sqrt(mean_squared_error(y_test, y_pred))
    mae = mean_absolute_error(y_test, y_pred)

    results[target_name] = {'R-squared': r2, 'RMSE': rmse, 'MAE': mae}

print("\nنتائج تقييم نماذج الانحدار:")
for target_name, metrics in results.items():
    print(f"\nالمتغير الهدف: {target_name}")
    for metric_name, metric_value in metrics.items():
        print(f"{metric_name}: {metric_value:.4f}")

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

قارن قيم مقاييس التقييم R-squared، RMSE، MAE بين النماذج المختلفة، حيث R-squared كلما كانت القيمة أقرب إلى 1، كان النموذج أفضل في تفسير التباين في المتغير الهدف.

وRMSE و MAE كلما كانت القيم أقل، كان النموذج أفضل في التنبؤ بقيم المتغير الهدف بدقة أكبر أي أخطاء أقل.

تمام جدا 

بس هو 

الefs عبار عن efs,Event-free survival,Categorical,['Event' 'Censoring'] يعني القيمه 0.0 - 1.0 

الefs_time عبار عن efs_time,"Time to event-free survival, months",Numerical,

فا طريقه الضرب تكون الافضل في الحال دي ؟

  • 0
نشر

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

  • 0
نشر
بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

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

تمام جدا

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

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

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...