Scikit-learn: وظائف Poisson و gamma و tweedie من وظائف الخسارة

تم إنشاؤها على ٧ ديسمبر ٢٠١٥  ·  57تعليقات  ·  مصدر: scikit-learn/scikit-learn

أود أن أتعلم دعم وظائف Poisson و gamma ووظائف فقدان عائلة Tweedie الأخرى. تُستخدم توزيعات الخسارة هذه على نطاق واسع في الصناعة لحساب البيانات طويلة الذيل الأخرى. بالإضافة إلى ذلك ، يتم تنفيذها في مكتبات أخرى مثل R: GLM و GLMNET و GBM ext. جزء من تنفيذ هذه التوزيعات هو تضمين طريقة لتمرير التعويضات إلى وظائف الخسارة. هذه طريقة شائعة للتعامل مع التعرض عند استخدام وظيفة ارتباط السجل مع هذه التوزيعات.

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

New Feature

التعليق الأكثر فائدة

thenomemac أنت محق تمامًا بشأن تغيير وظيفة الخسارة بسبب التعرض ، لقد كنت مخطئًا. في الواقع ، أعتقد أنني نجحت في ذلك. لديّ وقت مبكر جدًا من العمل قيد التقدم (أكثر من مجرد اللعب): https://github.com/bjlkeng/scikit-learn/blob/poisson_regression/sklearn/linear_model/poisson.py (تحقق من الوظيفة _poisson_loss() ).

@ josef-pkt شكرًا ، لقد نظرت إلى تطبيق statsmodels ، إنه في الواقع جيد جدًا (باستثناء واجهة برمجة التطبيقات ، التي لست من محبيها). إنه في الواقع أكثر عمومية قليلاً حيث يدعم نموذج "العد" الانحدارات الأخرى القائمة على العد مثل ذات الحدين السالب. يأخذ تطبيق statsmodel بالفعل في الاعتبار التعرض والتنظيم (وهو ما كنت أبحث عنه أيضًا).

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

ال 57 كومينتر

أعتقد أننا يجب أن نضيف على الأقل انحدار بواسون ، على الرغم من أنني لست على دراية كبيرة به.
هل لديك أمثلة مفتوحة لمجموعات البيانات؟
ما نوع البيانات المستخدمة في فقدان جاما؟

هل يمكنك التفصيل في الإزاحة؟

ستكون كل هذه نماذج منفصلة في linear_model ، على ما أعتقد. لست متأكدًا مما إذا كان يتم تعلمها عادةً باستخدام l-bfgs أو إذا كان الأشخاص يستخدمون محاليل الأقراص المضغوطة؟ ربما mblondel أو @ larsmans أو agramfort تعرف أكثر؟

يستخدم توزيع بواسون على نطاق واسع لنمذجة بيانات العد. يمكن إثبات أنه التوزيع المحدود لتقريب عادي إلى ذات الحدين حيث يذهب عدد المحاولات إلى ما لا نهاية والاحتمال يذهب إلى الصفر ويحدث كلاهما بمعدل أن np يساوي بعض متوسط ​​التردد لعمليتك. يمكن أن تكون جاما نظريًا تظهر على أنها الوقت حتى وقوع حدث بواسون. لذلك على سبيل المثال ، يمكن أن يكون عدد الحوادث التي ستواجهها هذا العام نظريًا على أنه بواسون. والوقت المتوقع حتى وقوع الحادث التالي أو التحويل الثالث هو عملية جاما. Tweedie هو أصل معمم لهذه التوزيعات التي تسمح بوزن إضافي على الصفر. فكر في tweedie على أنها دولارات خسارة للنمذجة و 99 في المائة من جميع العملاء لديهم وزن صفري ، والباقي لديهم خسارة موجبة طويلة الذيل أو جاما. في الممارسة العملية ، تُستخدم هذه التوزيعات على نطاق واسع لمشاكل الانحدار في التأمين ونمذجة المخاطر ونماذج الكوارث والتمويل والاقتصاد والعلوم الاجتماعية. لا تتردد في الرجوع إلى ويكيبيديا. أرغب في الحصول على وظائف الخسارة هذه كخيارات في glmnet و GBM و Random Forest. هذا يعني أنه في خوارزمية التعزيز الخاصة بـ GBM على سبيل المثال ، ستستخدم خوارزمية Freedman هذه الخسارة بدلاً من خسارة Gaussian أو الخسارة الربعية. Gamma و poisson (beta tweedie) موجودان بالفعل في حزم Rs GBM و glm و xgboost لديه بعض الدعم. يتم استخدام التعويضات من قبل الممارسين لوزن بياناتهم حسب التعرض. عادةً ما يحتوي نموذج poisson على وظيفة ارتباط مثل: yhat = offset x exp (إخراج نموذج الانحدار) يسمى ارتباط السجل وهو الأكثر شيوعًا. هنا يسمح الإزاحة بالتقاط التعرض بشكل مختلف لوحدات المراقبة المختلفة. تعتبر عمليات Poisson مضافة ولكن قد يتم أخذ أمثلة مختلفة على مساحة غير متساوية أو وقت أو تعداد العملاء ، وبالتالي هناك حاجة إلى متجه الإزاحة لكل ملاحظة. أنا على استعداد للتعامل مع البرمجة ، لكنني لست على دراية كبيرة بواجهة برمجة التطبيقات ، لذا سأقدر الاقتراحات ، لذلك أفعل ذلك بشكل صحيح وأدخله في الإصدار.

حسنًا ، أنا أعمل على تنفيذ هذا. أقوم بإضافة التوزيعات الثلاثة المذكورة أعلاه والتعويضات. سأكون ممتنًا للتعليقات من جمهور sklearn العام حول كيفية تنفيذ التعويضات. أخطط لإضافة وسيطة جديدة إلى استدعاء GradientBoostedRegression 'offset = None' حيث سيكون الإزاحة متجهًا مثل كائن بطول n (عدد العينات). سؤالي الرئيسي هو ما إذا كان يجب علي إضافة تعويضات إلى جميع وظائف الخسارة (Gaussian ، Huber ، Quantile) كما هو الحال في تنفيذ R's GBM أو ما إذا كان يجب علي فقط إضافة تمكين الإزاحات للعمل مع عائلة tweedie وإلقاء تحذير إذا حاولت لاستخدام تعويض مع وظيفة خسارة غير مدعومة؟

كنت أطلب حالات استخدام عملية ، كما هو الحال في مجموعات البيانات أو المنشورات. أعرف ما تفعله التوزيعات ؛)

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

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

pingpprettglouppearjoly _ _

أنا مهتم بدمجها في كل مكان ولكن في الغالب مجموعات من الأشجار
أول. في كلتا الحالتين تكون قدرا لا بأس به من العمل المكرر مثل مجموعة التفرعات العشوائية
و GBM لهما ABC مختلفان لكل دالة خسارة. لذلك يمكنني فقط أن أفعل
العمل مرة واحدة وجعله يعمل في كليهما لسوء الحظ. يمكنني أيضا الحصول على البعض
مجموعات البيانات. كيف تبدو العملية لدمج هذه العملية
هل يجب أن أتبع. أنا جديد في المساهمة لذا أريد التأكد من ذلك
الصحيح. ولكن كما قلت ، يتعامل GBM مع فئات الخسارة بشكل مستقل عن أي شيء آخر
في sklearn حتى يمكن أن تكون التغييرات التي أجريتها على GBM مستقلة بسهولة. لا بد لي من ذلك فقط
تحرير التعليمات البرمجية في البرنامج النصي .py.
في 10 كانون الأول (ديسمبر) 2015 ، الساعة 4:57 مساءً ، كتب "Andreas Mueller" [email protected] :

كنت أسأل أكثر عن حالات الاستخدام العملية ، كما هو الحال في مجموعات البيانات أو
المنشورات. أعرف ما تفعله التوزيعات ؛)

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

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

pingpprett https://github.com/pprettglouppe
https://github.com/glouppearjoly https://github.com/arjoly _

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment -163761067
.

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

هل تخطط أيضًا لدعم تنسيق الحلول بعقوبات L1 / L2
مثل _glmnet
؟ _

أي تحديثات بشأن هذه المسألة؟ أرغب في رؤية انحدار Poisson تمت إضافته إلى linear_models حتى لا أضطر إلى المغامرة خارج استخدام sklearn . إذا لم يكن هناك أحد يعمل بنشاط على ذلك ، فيمكنني أن أتحكم في تنفيذه.

لا احد افايك.

لا تتردد في تجربته ومشاركة تطبيق ويب.

كنت سأعمل على هذا وما زلت أذهب أيضًا. إذا فعلت ذلك على الرغم من أنني
بحاجة إلى طريقة نظيفة لإضافة تعويضات إلى واجهة برمجة التطبيقات. كنت أفكر في إضافة
تعويض kwarg والافتراضي يمكن أن يكون لا شيء ويلقي تحذيرًا في حالة الخسارة
ليس بويسون. أنا أستخدم poisson بشكل أساسي لنمذجة التأمين حيث
الإزاحة هي السجل (التعرض المكتسب) الذي أعرفه من خلال التجريب والتوزيع
نظرية أنه بالنسبة لبيانات العد المتفرقة ستحصل على نموذج أدنى إلى حد كبير
بدون تعويضات. يدعم كل من نموذج R الخطي و GBM حاليًا Poisson
مع تعويضات. لذلك هذا هو بلدي الانتقال الحالي إلى الأداة. أود أن أضيف هذا إلى
sklearn وإن أراد الآخرون إضافته.
في 1 أيار (مايو) 2016 ، الساعة 4:03 صباحًا ، تلقيت "ألكسندر جرامفورت" [email protected]
كتب:

لا احد افايك.

لا تتردد في تجربته ومشاركة تطبيق ويب.

-
أنت تتلقى هذا لأنك قمت بتأليف الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment -216024458

thenomemac هل لديك تطبيق ويب الذي يمكنني إلقاء نظرة عليه؟

بالنسبة إلى عمليات الإزاحة ، لا يمكنك فقط مطالبة المستخدم بتقسيم الأعداد على الإزاحة / التعرض لجعل قيمة "y" معدلًا بدلاً من العد (https://en.wikipedia.org/wiki/Poisson_regression#. 22 التعرض. 22_and_offset)؟ تحتوي حزمة R's GLM على واجهة رائعة لتحديد النماذج (بما في ذلك تحديد الإزاحات) ولكنك لست متأكدًا من كيفية توافق ذلك مع واجهة برمجة التطبيقات للنماذج الخطية الحالية.

bjlkeng ليس لدي تطبيق ويب كامل بعد. لقد بدأت منذ فترة ثم تشتت انتباهي. لا أعتقد أن القسمة على التعريضات للحصول على معدل التلوث هو اشتقاق صحيح لخوارزمية GBM لفقدان السموم. الإزاحة = السجل (التعرض) في التدرج هو عامل مضاف. لذلك ، فأنت تعطي وزناً أكبر بشكل فعال "للمناطق" ذات التعرض العالي. لست متأكدًا بنسبة 100٪ مما إذا كان بإمكانك العودة إلى التدرج الصحيح عند كل تكرار لملاءمة المتعلم الأساسي (الشجرة) لأن المخطط الحالي لتمرير الأوزان إلى متعلم الشجرة مضاعف وليس مضافًا. سأحاول كتابة اشتقاق رياضي أكثر صرامة لما أشير إليه. أستطيع أن أقول أنه من الناحية العملية لا يهم. في مجموعات بيانات العالم الواقعي ، قمت بنمذجة حيث كنت تتوقع أن تكون بيانات العد poisson ، فإن استخدام R's gbm سوف يتقارب بشكل أسرع ويحصل على نتيجة أفضل لأنه يتعامل مع تعويض الطريقة الصحيحة "رياضيًا". ولا يمكن لتطبيقات gbm الأخرى مثل xgboost مع وظيفة فقدان Poisson نمذجة البيانات أيضًا باستخدام معدل Poisson كما هو مقترح.

(بعيدًا ، وجدت رابط هذه المشكلة في stats.stackexchange

statmodels GLM لديه إزاحة والتعرض (التعرض فقط لارتباط السجل)

في المستوى الرئيسي ، يوجد الآن خيار شبكة مرنة لـ GLM وعدد قليل من النماذج الأخرى ، يتم تنفيذها عبر حلقة apython لتنسيق النزول (يستخدم الاحتمال الأقصى العام مع الإزاحة)

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

لذلك ، إذا كنت بحاجة إلى تطبيق مرجعي ، فإن statsmodels لديها هذه الأجزاء. لم أسمع أو ألقي نظرة على GBM لـ GLM. كما أنني لا أعرف ما يكفي عن كود scikit-Learn لأخبرك بمدى ملاءمته.
)

thenomemac أنت محق تمامًا بشأن تغيير وظيفة الخسارة بسبب التعرض ، لقد كنت مخطئًا. في الواقع ، أعتقد أنني نجحت في ذلك. لديّ وقت مبكر جدًا من العمل قيد التقدم (أكثر من مجرد اللعب): https://github.com/bjlkeng/scikit-learn/blob/poisson_regression/sklearn/linear_model/poisson.py (تحقق من الوظيفة _poisson_loss() ).

@ josef-pkt شكرًا ، لقد نظرت إلى تطبيق statsmodels ، إنه في الواقع جيد جدًا (باستثناء واجهة برمجة التطبيقات ، التي لست من محبيها). إنه في الواقع أكثر عمومية قليلاً حيث يدعم نموذج "العد" الانحدارات الأخرى القائمة على العد مثل ذات الحدين السالب. يأخذ تطبيق statsmodel بالفعل في الاعتبار التعرض والتنظيم (وهو ما كنت أبحث عنه أيضًا).

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

أعتقد أن هذا سيظل ذا قيمة.

bjlkeng شكرا على التعليق! هل أنت مهتم بتناولها وتقديم طلب سحب؟ إذا لم يكن الأمر كذلك ، يمكنني محاولة التعامل مع هذه المشكلة ومحاولة إجراء العلاقات العامة ... أولاً من أجل Poisson ثم بعد ذلك لـ gamma ... agramfort هل هذا جيد بواسطتك؟ :)

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

raghavrv هل بدأت العمل على هذا؟ قد أكون قادرًا أيضًا على المساهمة حتى يكون لدينا على الأقل انحدار بواسون في sklearn.

btabibianraghavrv ما هي حالة هذا؟ أحتاج إلى تنفيذ انحدار بواسون لمشروع وسأكون على استعداد للمساهمة.

يرجى المضي قدما :) لم يكن لدي وقت لهذا آسف ...

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

في 1 أبريل 2017 ، 2:49 مساءً ، "(فينكات) راغاف (راجاغوبالان)" <
[email protected]> كتب:

يرجى المضي قدما :) لم يكن لدي وقت لهذا آسف ...

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-290939521 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AOeuWjVGf3-VmeasNHMLQAB1dnd4zuUQks5rrpw4gaJpZM4Gwd6-
.

سأبدأ البحث في ذلك بعد ذلك. thenomemac شكرا للنصيحة! سوف أتحقق من تطبيق statsmodels لمعرفة كيفية تعاملهم مع التعرض.

مرحبًا ، هل هناك أي تحديثات؟ هل من الممكن أيضًا إضافة احتمال ذي حدين سالب؟ لا ينبغي أن يحدث هذا فرقًا كبيرًا بالنسبة لبواسون. وإلا كان بإمكاني النظر في هذا ..

أفضل،
سيمون

مرحبًا dirmeier ، للأسف لا. لقد تحولت إلى نموذج بايزي الهرمي ولم أتمكن أبدًا من تنفيذ انحدار بواسون.

dirmeier ، jakobworldpeace ، هل هناك بعض الأعمال الجارية التي يمكنك توجيهنا إليها؟ يمكنني أيضا القفز لإلقاء نظرة على هذا؟

مرحبًا NickHoernle ،
أنا أستخدم حاليًا R للانحدار الملحوظ ، لأنني لا أملك الوقت. سأكون سعيدًا إذا كنت تريد تنفيذ هذا :)

NickHoernle لا يوجد ويب عمل ولكن تطبيق انحدار statsmodels بواسون يجب أن تبدأ.

ممتاز. سأبدأ في إلقاء نظرة على هذا ونرى من أين وصلنا.

لقد كنت أعمل على GLMs هنا: https://github.com/madrury/py-glm.

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

حلالك بطريقة نيوتن والتي ستواجه صعوبة في التحجيم عاليًا
البعد. كما أنه لا يدعم العقوبات من النوع L1. تحقق أيضًا من API الخاص بك
التوافق مع sklearn. يجب ألا يأخذ Fit سوى X و y و sample_weights

لإصلاح مشكلات قابلية التوسع ، فإن أول شيء يجب فعله هو استخدام l-bfgs. يرى
رمز الانحدار اللوجستي الخاص بنا

HTH

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

أنا لا أفكر في عقوبات L1 كما هو الحال في النطاق ، لذلك سأستخدم فقط glmnet . L2 بسيط بما يكفي لدمجه في إطار عمل GLM الكلاسيكي الذي تقدمت به وأضفته.

بالنسبة إلى طريقة fit ، سأغامر بتعليق صغير هنا ، آمل ألا يكون في غير محله. كان الافتقار إلى offset كما هو منصوص عليه مناسبًا جزءًا كبيرًا من سبب عدم اكتشاف sklearn في وظيفتي الأخيرة. أنت حقًا بحاجة إلى ذلك للقيام بنمذجة التأمين المناسبة. يتوقع المنظمون أن يكون نموذجا Poisson و Tweedie مناسبين بهذه الطريقة ، ويمكن أن يكونا صارمين تمامًا في توقعاتهم.

شكرا لتوضيح الرؤية.

فيما يتعلق بالإزاحة ، هل هي خاصة بنماذج Poisson و Tweedie؟
إذا كانت قيمة محددة في العينة ، فيمكن أن تكون sample_prop في الملاءمة
المعلمات.
يجب أن يكون هو فقط max_iter أو tol الذي لا يعتمد على البيانات
الحرف الأول.

يجب أن تقارن بـ # 9405؟

agramfort أنت محق بشأن max_iter و tol ، سأقوم بنقلهما إلى __init__.

هل لديك مرجع لما تعنيه ب sample_prop ؟

راجع https://github.com/scikit-learn/enhancement_proposals/pull/6

لا يزال قيد المناقشة ما هي أفضل طريقة للقيام بذلك ...

ملاحظة قصيرة حول التعويضات: AFAIK ، أوزان العينة كافية للتعامل مع التعرض ، أي ملاءمة y = القيم / التعريض مع sample_weight = التعرض يجب أن يؤدي المهمة ويعمم جيدًا على التوزيعات والروابط الأخرى بخلاف Poisson مع رابط السجل.

madrury شكرا للمشاركة. سألقي نظرة على تطبيقك وأقارنه بتنفيذ عملي.

ألا يزال الناس مهتمين بهذا؟ سأكون مهتمًا بالمساهمة.

ما زلت مهتمًا بالميزة إذا أضافها شخص ما sklearn.

يوم الخميس ، 21 كانون الأول (ديسمبر) 2017 ، الساعة 6:04 مساءً ، Jared Samet [email protected]
كتب:

ألا يزال الناس مهتمين بهذا؟ سأكون مهتمًا بالمساهمة.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-353479618 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AOeuWtvi4Um_o_ERuVe1ob86201G-ASdks5tCuP4gaJpZM4Gwd6-
.

تضمين التغريدة

لقد حصلت على تطبيق GLM عام تم التحقق منه في مكتبة py-glm الخاصة بي ، لكن ليس لدي أي خطط لمحاولة دمجها في sklearn (اتخذت بعض قرارات التصميم التي تجعلها غير متوافقة مع sklearn). تم إعداده بحيث يكون من السهل جدًا إضافة عائلات أسية أخرى.

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

madrury سعيد بأخذ لقطة لمساعدتك في حل هذا الخطأ.

مرحبًا ، أي شيء بني لهذه التوزيعات؟ فضولي بشأن أي تحديثات. شكرا.

سأكون على ما يرام شخصيًا مع إغلاق هذه المشكلة لمساعدة المساهمين
التركيز. الأسباب:

  • لقد تغير مشهد الثعبان

  • أصبحت statsmodels الآن أكثر نضجًا وتتضمن هذه التوزيعات مع
    ترجيح التعرض المناسب

  • التطبيقات القائمة على jit عبر pytorch أو Tensorflow تجعل الأمر أسهل
    تنفيذ أي خسارة باطني بدون عقوبة أو حزمة أداء
    إعادة تجميع

أفكار؟

نحن نخصص حاليًا موارد للمساعدة في
https://github.com/scikit-learn/scikit-learn/pull/9405
وجعلها (على الأقل بعض الأجزاء) أرضًا رئيسية. يجب التعامل معها
الأشهر القادمة.

عمل رائع !

في يوم السبت ، 13 أبريل 2019 ، الساعة 3:27 صباحًا ، ألكسندر جرامفورت ، إخطارات github.com
كتب:

نحن نخصص حاليًا موارد للمساعدة في
https://github.com/scikit-learn/scikit-learn/pull/9405
وجعلها (على الأقل بعض الأجزاء) أرضًا رئيسية. يجب التعامل معها
الأشهر القادمة.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-482784732 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AOeuWj8PD0nfltM7Acg12Pfhl4sG5n7Fks5vgYbogaJpZM4Gwd6-
.

سيكون من الرائع أن يكون لديك GLM في sciki-Learn. سيؤدي ذلك إلى تقليل الحاجة إلى الذهاب إلى لغات أخرى. نتطلع إلى ذلك.

متفق. قادمة من عالم R ، فوجئت بأن sklearn لم يكن لديها بالفعل وظائف GLM. أتمنى أن يكون قريبا.

سأضيف تصويتًا آخر لتضمين GLM In sklearn. إنها فئة أساسية من النماذج التي يتم تدريسها في برامج الإحصاء الجامعية. كذلك ، فإن حقيقة وجود قسم "النماذج الخطية المعممة" في دليل المستخدم لا يتضمن أي مناقشة لوظائف الارتباط أو توزيعات الأخطاء أمر يثير دهشتي.

patrickspry لدى Statsmodels تطبيق جيد لمعظم GLMs التي يتعلمها الطالب الجامعي.

patrickspry هناك علاقات عامة كاملة إلى حد ما في https://github.com/scikit-learn/scikit-learn/pull/9405 والعمل جارٍ لدمج هذه الوظيفة.

أوه ، رائع! وذلك بفضل لرؤساء متابعة!

أي جدول زمني مقدر لدمج العلاقات العامة؟ شكرا.

@ جيانغ لي انظر هنا

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

بالنسبة للطرز الخطية ، تم دمج # 14300 الآن ، على الرغم من أنه لا يزال من الممكن إضافة ميزات إضافية https://github.com/scikit-learn/scikit-learn/pull/9405#issuecomment -594553953

أنا شخصياً أود حقًا أن أرى نماذج تعتمد على الأشجار مع وظائف فقدان التويد.

قد تكون هذه هي الخطوة التالية بالفعل (على سبيل المثال https://github.com/scikit-learn/scikit-learn/issues/15123#issuecomment-542090766)

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

يبدو أنه يمكننا إغلاق المشكلة الآن بعد دمج # 14300؟

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

شكرا لتعليقات magicmathmandarin ! نعم بالتاكيد. تتضمن العلاقات العامة الأصلية https://github.com/scikit-learn/scikit-learn/pull/9405 انحرافًا عن BinomialDistribution من أجل الانحدار اللوجستي الثنائي. السبب في أننا لم نقم بتضمين ذلك في أول العلاقات العامة المدمجة هو أنه حتى في الواقع جزء من نفس الإطار النظري ، فإن التنفيذ المتخصص LogisticRegression في الوقت الحالي لا يزال موصى به (تم اختباره بشكل أفضل من قبل المستخدمين ، ويتعامل مع المزيد من الخيارات ، على سبيل المثال متعدد الطبقات) ، ولم نرغب في إرباك المستخدمين. الآن بعد أن تم دمجه ، أوافق على أنه يمكن صياغة هذا الجزء بشكل أفضل.

يبدو أنه يمكننا إغلاق المشكلة الآن بعد دمج # 14300؟

بالتأكيد. توجد بعض مناقشات المتابعة في https://github.com/scikit-learn/scikit-learn/issues/16668 و https://github.com/scikit-learn/scikit-learn/pull/16692 و https: //github.com/scikit-learn/scikit-learn/issues/15123.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات