sklea. linear_model . logisticregression¶

ساخت وبلاگ

کلاس sklea. linear_model. LogisticRegression (مجازات = 'l2' ، * ، دوگانه = نادرست ، tol = 0. 0001 ، c = 1. 0 ، fit_intercept = true ، counter-scaling = 1 ، class_weight = none ، none ، none ، solver = 'lbfgs' ، max_iter = 100 ، multi_class ='auto' ، verbose = 0 ، warm_start = false ، n_jobs = none ، l1_ratio = none) [منبع] ¶

رگرسیون لجستیک (با نام مستعار ، Maxent) طبقه بندی کننده.

در مورد Multiclass ، الگوریتم آموزش از طرح One-VS-REST (OVR) استفاده می کند اگر گزینه "Multi_Class" روی "OVR" تنظیم شده باشد ، و اگر گزینه "multi_class" روی "multinomial" تنظیم شده است از دست دادن متقابل آنتروپی استفاده می کند.'.(در حال حاضر گزینه "multinomial" فقط توسط "LBFGS" ، "SAG" ، "SAGA" و "Newton-CG" پشتیبانی می شود.)

این کلاس رگرسیون لجستیک منظم را با استفاده از کتابخانه "Liblinear" ، "Newton-CG" ، "SAG" ، "Saga" و "LBFGS" پیاده سازی می کند. توجه داشته باشید که تنظیم منظم به طور پیش فرض اعمال می شود. این می تواند هر دو ورودی متراکم و پراکنده را کنترل کند. برای عملکرد بهینه از آرایه های C-مرتبه یا ماتریس CSR حاوی شناورهای 64 بیتی استفاده کنید. هر قالب ورودی دیگری تبدیل می شود (و کپی می شود).

حلال های "Newton-CG" ، "SAG" و "LBFGS" فقط از تنظیم L2 با فرمولاسیون اولیه یا عدم تنظیم پشتیبانی می کنند. حل کننده "Liblinear" از تنظیم L1 و L2 پشتیبانی می کند ، با یک فرمول دوگانه فقط برای مجازات L2. منظم سازی شبکه الاستیک فقط توسط حل کننده "حماسه" پشتیبانی می شود.

در راهنمای کاربر بیشتر بخوانید.

پارامترها: مجازات ، پیش فرض = "L2"

هنجار مجازات را مشخص کنید:

  • هیچکدام: هیچ مجازاتی اضافه نمی شود.
  • 'L2': یک مجازات L2 اضافه کنید و این انتخاب پیش فرض است.
  • 'L1': یک مجازات L1 اضافه کنید.
  • 'elasticnet': هر دو مجازات L1 و L2 اضافه می شوند.

برخی از مجازات ها ممکن است با برخی از حل کننده ها کار نکنند. برای دانستن سازگاری بین پنالتی و حل کننده ، پارامتر حل کننده را در زیر مشاهده کنید.

جدید در نسخه 0. 19: مجازات L1 با SAGA SOLVER (اجازه "multinomial" + L1)

از نسخه 1. 2 مستهلک می شود: گزینه "هیچ" در نسخه 1. 2 کاهش یافته و در 1. 4 حذف می شود. به جای آن از هیچ استفاده نکنید.

بول دوگانه ، پیش فرض = نادرست

Dual or primal formulation. Dual formulation is only implemented for l2 penalty with liblinear solver. Prefer dual=False when n_samples>n_features.

float tol ، پیش فرض = 1e-4

تحمل برای متوقف کردن معیارها.

c float ، پیش فرض = 1. 0

معکوس از مقاومت منظم ؛باید یک شناور مثبت باشد. مانند دستگاه های بردار پشتیبانی ، مقادیر کوچکتر تنظیم قوی تر را مشخص می کنند.

bool fit_intercept ، پیش فرض = درست است

مشخص می کند که آیا یک ثابت (تعصب یا رهگیری) باید به عملکرد تصمیم گیری اضافه شود.

float inception_scaling ، پیش فرض = 1

فقط در صورت استفاده از حل کننده "liblinear" مفید است و self. fit_intercept درست تنظیم می شود. در این حالت ، x [x ، self. intercept_scaling] می شود ، یعنی یک ویژگی "مصنوعی" با مقدار ثابت برابر با رهگیری_کال سازی به بردار نمونه اضافه می شود. رهگیری به رهگیری می رسد * synthetic_feature_weight.

توجه داشته باشید! وزن ویژگی مصنوعی به عنوان تمام ویژگی های دیگر در معرض تنظیم L1/L2 است. برای کاهش تأثیر تنظیم مجدد بر وزن ویژگی مصنوعی (و بنابراین در رهگیری) باید رهگیری_ افزایش یابد.

DICT Class_weight یا "متعادل" ، پیش فرض = هیچ

وزنهای مرتبط با کلاس در فرم. اگر داده نشود ، قرار است همه کلاس ها وزن خود را داشته باشند.

حالت "متعادل" از مقادیر Y استفاده می کند تا به طور خودکار وزن را به طور معکوس متناسب با فرکانس های کلاس در داده های ورودی به عنوان n_samples / (n_classes * np. bincount (y)) تنظیم کند.

توجه داشته باشید که در صورت مشخص شدن نمونه_ وزن ، این وزنه ها با وزن sample_weight (عبور از روش FIT) ضرب می شوند.

جدید در نسخه 0. 17: class_weight = "متعادل"

Random_state int ، نمونه تصادفی ، پیش فرض = هیچ

هنگام حل کردن داده ها هنگام حل کردن داده ها ، "SAG" ، "SAGA" یا "LIBLINEAR" استفاده می شود. برای جزئیات بیشتر به واژه نامه مراجعه کنید.

الگوریتم برای استفاده در مشکل بهینه سازی. پیش فرض "lbfgs" است. برای انتخاب یک حل کننده ، ممکن است بخواهید جنبه های زیر را در نظر بگیرید:

  • برای مجموعه داده های کوچک ، "Liblinear" انتخاب خوبی است ، در حالی که "SAG" و "SAGA" برای موارد بزرگ سریعتر هستند.
  • برای مشکلات چند قلو ، فقط "Newton-CG" ، "SAG" ، "SAGA" و "LBFGS" از دست دادن چندمیکی برخوردار هستند.
  • "Liblinear" محدود به طرح های یک بر مقابل است.
  • ‘newton-cholesky’ is a good choice for n_samples>>N_Features ، به ویژه با ویژگی های طبقه بندی شده یک داغ با دسته های نادر. توجه داشته باشید که این محدود به طبقه بندی باینری و کاهش یک در مقابل استراحت برای طبقه بندی چند طبقه است. توجه داشته باشید که استفاده از حافظه از این حل کننده وابستگی درجه دوم به n_features دارد زیرا صریحاً ماتریس هسیایی را محاسبه می کند.

انتخاب الگوریتم به مجازات انتخاب شده بستگی دارد. مجازاتهای پشتیبانی شده توسط حل کننده:

  • "lbfgs" - [‘l2" ، هیچکدام]
  • "Liblinear" - [‘L1" ، "L2"]
  • "Newto n-CG" - [‘L2" ، هیچکدام]
  • "Newto n-Cholesky" - [‘L2" ، هیچکدام]
  • "SAG" - [‘L2" ، هیچکدام]
  • "حماسه" - ["elasticnet" ، "L1" ، "L2" ، هیچکدام]

همگرایی سریع "SAG" و "SAGA" فقط در مورد ویژگی هایی با تقریباً همان مقیاس تضمین می شود. می توانید داده ها را با یک مقیاس دهنده از sklea. preprocessing از پیش پردازش کنید.

برای کسب اطلاعات بیشتر در مورد لجستیکی و به طور خاص جدول خلاصه پشتیبانی از حلال/مجازات ، به راهنمای کاربر مراجعه کنید.

جدید در نسخه 0. 17: حل کننده نزول شیب متوسط تصادفی.

جدید در نسخه 0. 19: SAGA SOLVER.

در نسخه 0. 22 تغییر یافته است: حل کننده پیش فرض از "Liblinear" به "LBFGS" در 0. 22 تغییر یافته است.

جدید در نسخه 1. 2: Solver Newton-Cholesky.

max_iter int ، پیش فرض = 100

حداکثر تعداد تکرارهای گرفته شده برای همگرایی حل کننده ها.

multi_class ، پیش فرض = "خودکار"

اگر گزینه انتخاب شده "OVR" باشد ، یک مشکل باینری برای هر برچسب مناسب است. از نظر "چندمجمی" ضرر به حداقل رسیده ، ضرر چند عیار در کل توزیع احتمال ، حتی اگر داده ها باینری باشد ، مناسب است."multinomial" در صورت عدم وجود Solver = "liblinear" در دسترس نیست."Auto" اگر داده ها باینری است ، یا اگر Solver = "Liblinear" باشد ، "OVR" را انتخاب می کند ، و در غیر این صورت "چندمجمی" را انتخاب می کند.

جدید در نسخه 0. 18: حل کننده نزول شیب متوسط تصادفی برای مورد "multinomial".

در نسخه 0. 22 تغییر یافته است: پیش فرض از "OVR" به "خودکار" در 0. 22 تغییر یافته است.

int int ، پیش فرض = 0

برای حل کننده های Lieblinear و LBFGS ، برای هر تعداد مثبت ، هر تعداد مثبت را تنظیم می کند.

BOOL WARM_START ، پیش فرض = نادرست

هنگامی که روی True تنظیم شده اید ، از راه حل فراخوان قبلی استفاده کنید تا به عنوان اولیه سازی متناسب باشد ، در غیر این صورت ، فقط راه حل قبلی را پاک کنید. بی فایده برای حل کننده liblinear. واژه نامه را ببینید.

جدید در نسخه 0. 17: WARM_START برای پشتیبانی از LBFGS ، NEWTON-CG ، SAG ، SAGA SOLVERS.

n_jobs int ، پیش فرض = هیچ

تعداد هسته های CPU که هنگام موازی کردن کلاس ها استفاده می شود اگر multi_class = "ovr" باشد. این پارامتر هنگامی که حل کننده روی "liblinear" تنظیم شده است ، صرف نظر از اینکه "multi_class" مشخص شده است یا خیر ، نادیده گرفته می شود. هیچ یک به معنای 1 نیست ، مگر اینکه در یک زمینه joblib. parally_backend باشد.-1 به معنای استفاده از همه پردازنده ها است. برای اطلاعات بیشتر به واژه نامه مراجعه کنید.

float l1_ratio ، پیش فرض = هیچ

ویژگی ها: Classes_ ndarray از شکل (n_classes ،)

لیستی از برچسب های کلاس شناخته شده به طبقه بندی کننده.

Coef_ ndarray از شکل (1 ، n_features) یا (n_classes ، n_features)

ضریب ویژگی ها در عملکرد تصمیم گیری.

Coef_ از شکل (1 ، n_features) است که مشکل داده شده باینری است. به طور خاص ، هنگامی که multi_class = 'multinomial' ، coef_ مطابق با نتیجه 1 (درست) و-coef_ با نتیجه 0 (غلط) مطابقت دارد.

رهگیری_ ndarray شکل (1 ،) یا (n_classes ،)

رهگیری (تعصب a. k. a.) به عملکرد تصمیم اضافه شده است.

اگر fit_intercept روی false تنظیم شده باشد ، رهگیری روی صفر تنظیم می شود. هنگامی که مشکل داده شده باینری است ، از شکل (1 ،) شکل دارد. به طور خاص ، هنگامی که multi_class = 'multinomial' ، رهگیری_ مطابق با نتیجه 1 (درست) و-intercept_ با نتیجه 0 (نادرست) مطابقت دارد.

n_features_in_ int

تعداد ویژگی های دیده شده در هنگام تناسب.

جدید در نسخه 0. 24.

feature_names_in_ ndarray از شکل (n_features_in_ ،)

نام ویژگی های دیده شده در هنگام تناسب. فقط زمانی تعریف می شود که X دارای نام های ویژگی است که همه رشته ها هستند.

جدید در نسخه 1. 0.

n_iter_ ndarray شکل (n_classes ،) یا (1 ،)

تعداد واقعی تکرارها برای همه کلاس ها. اگر باینری یا چندمجمی باشد ، فقط 1 عنصر را برمی گرداند. برای حل کننده Lieblinear ، فقط حداکثر تعداد تکرار در تمام کلاس ها داده می شود.

رگرسیون لجستیک تدریجی آموزش دیده (هنگامی که پارامتر از دست داده = "log" داده می شود).

رگرسیون لجستیک با اعتبار سنجی متقاطع داخلی.

اجرای زیرین C از یک ژنراتور شماره تصادفی برای انتخاب ویژگی ها هنگام قرار دادن مدل استفاده می کند. بنابراین غیر معمول نیست ، نتایج کمی متفاوت برای داده های ورودی یکسان است. اگر این اتفاق بیفتد ، با یک پارامتر TOL کوچکتر سعی کنید.

پیش بینی خروجی ممکن است در موارد خاص با لیبیلری مستقل مطابقت نداشته باشد. تفاوت های مربوط به Liblinear را در مستندات روایی مشاهده کنید.

L-BFGS-B-نرم افزاری برای بهینه سازی محدود شده در مقیاس بزرگ

Ciyou Zhu ، Richard Byrd ، Jorge Nocedal و Jose Luis Morales. http://users. iems. northweste. edu/~nocedal/lbfgsb. html

Liblinear - کتابخانه ای برای طبقه بندی خطی بزرگ

SAG - مارک اشمیت ، نیکلاس لو روکس و فرانسیس باخ

به حداقل رساندن مبالغ محدود با شیب متوسط تصادفی https://hal. inria. fr/hal-00860051/document

حماسه-Defazio ، A. ، Bach F. & Lacoste-Julien S. (2014).

Hsiang-Fu Yu ، Fang-Lan Huang ، Chih-Jen Lin (2011). نزول هماهنگی دوگانه

روشهای رگرسیون لجستیک و حداکثر مدل های آنتروپی. یادگیری ماشین 85 (1-2): 41-75. https://www. csie. ntu. edu. tw/~cjlin/papers/maxent_dual. pdf

>>> از جانب sklea. datasets وارد كردن load_iris >>> از جانب sklea. linear_model وارد كردن رکود لجستیکی >>> X, y = load_iris(Retu_x_y=درست است، واقعی) >>> CLF = رکود لجستیکی(state تصادفی=0).مناسب(X, y) >>> CLF.پیش بینی(X[:2, :]) آرایه ([0 ، 0]) >>> CLF.پیش بینی_بروبا(X[:2, :]) آرایه ([[9. 8. E-01 ، 1. 8. E-02 ، 1. 4. E-08] ، [9. 7. E-01 ، 2. 8. E-02 ،. E-08]]) >>> CLF.نمره(X, y) 0. 97. 

نمرات اعتماد به نفس را برای نمونه ها پیش بینی کنید.

ماتریس ضریب را به قالب آرایه متراکم تبدیل کنید.

متناسب (x ، y [، sample_weight])

مطابق با داده های آموزش داده شده ، مدل را متناسب کنید.

پارامترهایی را برای این برآوردگر دریافت کنید.

پیش بینی برچسب های کلاس برای نمونه ها در X.

پیش بینی لگاریتم تخمین های احتمال.

امتیاز (x ، y [، sample_weight])

میانگین دقت را در داده ها و برچسب های آزمون داده شده برگردانید.

پارامترهای این برآوردگر را تنظیم کنید.

تبدیل ماتریس ضریب به قالب پراکنده.

نمرات اعتماد به نفس را برای نمونه ها پیش بینی کنید.

نمره اعتماد به نفس برای یک نمونه متناسب با فاصله امضا شده آن نمونه با هایپرپلن است.

پارامترها: x از شکل (n_samples ، n_features)

ماتریس داده ای که می خواهیم نمرات اعتماد به نفس را بدست آوریم.

بازگشت: نمرات ndarray از شکل (n_samples ،) یا (n_samples ، n_classes)

Confidence scores per (n_samples, n_classes) combination. In the binary case, confidence score for self.classes_[1] where>0 به معنای پیش بینی این کلاس است.

ماتریس ضریب را به قالب آرایه متراکم تبدیل کنید.

عضو Coef_ (پشت) را به یک numpy. ndarray تبدیل می کند. این فرمت پیش فرض COEF_ است و برای اتصالات لازم است ، بنابراین فراخوانی این روش فقط در مدل هایی که قبلاً پراکنده شده اند لازم است. در غیر این صورت ، این یک OP است.

مطابق با داده های آموزش داده شده ، مدل را متناسب کنید.

پارامترها: x از شکل (n_samples ، n_features)

وکتور آموزش ، جایی که n_samples تعداد نمونه ها است و n_features تعداد ویژگی ها است.

y شکل آرایه مانند شکل (n_samples ،)

بردار هدف نسبت به X.

Sample_weight Array مانند شکل (n_samples ،) پیش فرض = هیچ

آرایه ای از وزنهایی که به نمونه های فردی اختصاص داده می شوند. در صورت عدم ارائه ، به هر نمونه وزن واحد داده می شود.

جدید در نسخه 0. 17: پشتیبانی از وزن برای LogisticRegression.

بازگشت: خود

SAGA SOLVER از آرایه های Float64 و Float32 Bit پشتیبانی می کند.

پارامترهایی را برای این برآوردگر دریافت کنید.

پارامترها: بول عمیق ، پیش فرض = درست است

در صورت صحت ، پارامترهای این برآوردگر و حاوی زیربناهای حاوی برآوردگر را برمی گرداند.

بازگشت: پارامترها دیکته

نام پارامترها به مقادیر آنها نقشه برداری شده است.

پیش بینی برچسب های کلاس برای نمونه ها در X.

پارامترها: x از شکل (n_samples ، n_features)

ماتریس داده ای که می خواهیم پیش بینی ها را بدست آوریم.

بازگشت: y_pred ndarray از شکل (n_samples ،)

وکتور حاوی برچسب های کلاس برای هر نمونه.

پیش بینی لگاریتم تخمین های احتمال.

تخمین های برگشتی برای همه کلاس ها توسط برچسب کلاس ها سفارش داده می شود.

پارامترها: X شکل شکل (N_Samples ، n_features)

وکتور به ثمر می رسد ، جایی که n_samples تعداد نمونه ها است و n_features تعداد ویژگی ها است.

بازگشت: شکل مانند شکل (n_samples ، n_classes)

قابلیت ورود به سیستم نمونه را برای هر کلاس در مدل باز می گرداند ، جایی که کلاس ها به صورت خود در خودشان سفارش داده می شوند.

تخمین های برگشتی برای همه کلاس ها توسط برچسب کلاس ها سفارش داده می شود.

برای یک مسئله multi_class، اگر multi_class "چند جمله ای" باشد، از تابع softmax برای یافتن احتمال پیش بینی شده هر کلاس استفاده می شود. در غیر این صورت از یک رویکرد یک در مقابل استراحت استفاده کنید، یعنی احتمال هر کلاس را با فرض مثبت بودن آن با استفاده از تابع لجستیک محاسبه کنید. و این مقادیر را در تمام کلاس ها عادی کنید.

پارامترها: X شکل شکل (N_Samples ، n_features)

وکتور به ثمر می رسد ، جایی که n_samples تعداد نمونه ها است و n_features تعداد ویژگی ها است.

بازگشت: شکل مانند شکل (n_samples ، n_classes)

احتمال نمونه را برای هر کلاس در مدل برمی گرداند، جایی که کلاس ها همانطور که در self. classes_ مرتب شده اند.

میانگین دقت را در داده ها و برچسب های آزمون داده شده برگردانید.

در طبقه بندی چند برچسبی، این دقت زیرمجموعه است که یک معیار سخت گیرانه است زیرا برای هر نمونه نیاز دارید که هر مجموعه برچسب به درستی پیش بینی شود.

پارامترها: X شکل شکل (N_Samples ، n_features)

y آرایه مانند شکل (n_samples،) یا (n_samples، n_outputs)

برچسب های واقعی برای X.

نمونه_وزن آرایه مانند شکل (n_samples،)، پیش فرض=هیچکدام

بازده: امتیاز شناور

میانگین دقت self. predict(X) w. r. t. y

پارامترهای این برآوردگر را تنظیم کنید.

این روش روی برآوردگرهای ساده و همچنین روی اشیاء تودرتو (مانند Pipeline) کار می کند. دومی دارای پارامترهایی به شکل __ است به طوری که امکان به روز رسانی هر جزء از یک شی تودرتو وجود دارد.

پارامترها: **params dict

بازده: نمونه خود تخمینگر

تبدیل ماتریس ضریب به قالب پراکنده.

عضو coef_ را به یک ماتریس scipy. sparse تبدیل می کند، که برای مدل های تنظیم شده با L1 می تواند بسیار کارآمدتر از نمایش numpy. ndarray معمولی در زمینه حافظه و ذخیره سازی باشد.

عضو intercept_ تبدیل نشده است.

برای مدل های غیر پراکنده، یعنی زمانی که صفرهای زیادی در coef_ وجود ندارد، ممکن است استفاده از حافظه را افزایش دهد، بنابراین از این روش با احتیاط استفاده کنید. یک قانون سرانگشتی این است که تعداد عناصر صفر که می توان با () coef_== 0. sum () محاسبه کرد، باید بیش از 50% باشد تا مزایای قابل توجهی به دست آورد.

پس از فراخوانی این متد، برازش بیشتر با متد partial_fit (در صورت وجود) تا زمانی که densify را فراخوانی نکنید، کار نخواهد کرد.

استراتژی‌های اسکالپ...
ما را در سایت استراتژی‌های اسکالپ دنبال می کنید

برچسب : نویسنده : ناصر تقوایی بازدید : 36 تاريخ : دوشنبه 23 مرداد 1402 ساعت: 13:52