أبرز ميزات الإصدار 1.2 من scikit-learn#

يسعدنا الإعلان عن إصدار scikit-learn 1.2! تم إجراء العديد من الإصلاحات والتحسينات، بالإضافة إلى بعض الميزات الرئيسية الجديدة. نستعرض أدناه بعض الميزات الرئيسية لهذا الإصدار. للاطلاع على قائمة شاملة بجميع التغييرات، يرجى الرجوع إلى ملاحظات الإصدار.

لتثبيت أحدث إصدار (باستخدام pip):

pip install --upgrade scikit-learn

أو باستخدام conda:

conda install -c conda-forge scikit-learn

إخراج Pandas مع واجهة برمجة التطبيقات set_output#

تدعم محولات scikit-learn الآن إخراج Pandas مع واجهة برمجة التطبيقات set_output. لمزيد من المعلومات حول واجهة برمجة التطبيقات set_output، راجع المثال: تقديم واجهة برمجة التطبيقات set_output و # هذا الفيديو، إخراج DataFrame لـ Pandas لمحولات scikit-learn (بعض الأمثلة) <https://youtu.be/5bCg8VfX2x8>`__.

import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler, KBinsDiscretizer
from sklearn.compose import ColumnTransformer

X, y = load_iris(as_frame=True, return_X_y=True)
sepal_cols = ["sepal length (cm)", "sepal width (cm)"]
petal_cols = ["petal length (cm)", "petal width (cm)"]

preprocessor = ColumnTransformer(
    [
        ("scaler", StandardScaler(), sepal_cols),
        ("kbin", KBinsDiscretizer(encode="ordinal"), petal_cols),
    ],
    verbose_feature_names_out=False,
).set_output(transform="pandas")

X_out = preprocessor.fit_transform(X)
X_out.sample(n=5, random_state=0)
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
114 -0.052506 -0.592373 3.0 4.0
62 0.189830 -1.973554 2.0 1.0
33 -0.416010 2.630382 0.0 1.0
107 1.765012 -0.362176 4.0 3.0
7 -1.021849 0.788808 1.0 1.0


قيود التفاعل في أشجار التدرج التدريجي القائمة على التوزيع التكراري#

HistGradientBoostingRegressor و HistGradientBoostingClassifier يدعمان الآن قيود التفاعل مع معلمة interaction_cst. لمزيد من التفاصيل، راجع دليل المستخدم. في المثال التالي، لا يُسمح للميزات بالتفاعل.

from sklearn.datasets import load_diabetes
from sklearn.ensemble import HistGradientBoostingRegressor

X, y = load_diabetes(return_X_y=True, as_frame=True)

hist_no_interact = HistGradientBoostingRegressor(
    interaction_cst=[[i] for i in range(X.shape[1])], random_state=0
)
hist_no_interact.fit(X, y)
HistGradientBoostingRegressor(interaction_cst=[[0], [1], [2], [3], [4], [5],
                                               [6], [7], [8], [9]],
                              random_state=0)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.


شاشات العرض الجديدة والمحسنة#

PredictionErrorDisplay توفر طريقة لتحليل نماذج الانحدار بطريقة نوعية.

import matplotlib.pyplot as plt
from sklearn.metrics import PredictionErrorDisplay

fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(12, 5))
_ = PredictionErrorDisplay.from_estimator(
    hist_no_interact, X, y, kind="actual_vs_predicted", ax=axs[0]
)
_ = PredictionErrorDisplay.from_estimator(
    hist_no_interact, X, y, kind="residual_vs_predicted", ax=axs[1]
)
plot release highlights 1 2 0

LearningCurveDisplay متاح الآن لعرض النتائج من learning_curve.

from sklearn.model_selection import LearningCurveDisplay

_ = LearningCurveDisplay.from_estimator(
    hist_no_interact, X, y, cv=5, n_jobs=2, train_sizes=np.linspace(0.1, 1, 5)
)
plot release highlights 1 2 0

PartialDependenceDisplay تعرض معلمة جديدة categorical_features لعرض الاعتماد الجزئي للميزات التصنيفية باستخدام مخططات الأعمدة والخرائط الحرارية.

from sklearn.datasets import fetch_openml

X, y = fetch_openml(
    "titanic", version=1, as_frame=True, return_X_y=True, parser="pandas"
)
X = X.select_dtypes(["number", "category"]).drop(columns=["body"])
from sklearn.preprocessing import OrdinalEncoder
from sklearn.pipeline import make_pipeline

categorical_features = ["pclass", "sex", "embarked"]
model = make_pipeline(
    ColumnTransformer(
        transformers=[("cat", OrdinalEncoder(), categorical_features)],
        remainder="passthrough",
    ),
    HistGradientBoostingRegressor(random_state=0),
).fit(X, y)
from sklearn.inspection import PartialDependenceDisplay

fig, ax = plt.subplots(figsize=(14, 4), constrained_layout=True)
_ = PartialDependenceDisplay.from_estimator(
    model,
    X,
    features=["age", "sex", ("pclass", "sex")],
    categorical_features=categorical_features,
    ax=ax,
)
plot release highlights 1 2 0

معالج أسرع في fetch_openml#

fetch_openml يدعم الآن معالج جديد "pandas" وهو أكثر كفاءة في الذاكرة والمعالجة. في الإصدار 1.4، سيتم تغيير المعالج الافتراضي إلى parser="auto" والذي سيستخدم تلقائيًا معالج "pandas" للبيانات الكثيفة و"liac-arff" للبيانات المتناثرة.

X, y = fetch_openml(
    "titanic", version=1, as_frame=True, return_X_y=True, parser="pandas"
)
X.head()
pclass name sex age sibsp parch ticket fare cabin embarked boat body home.dest
0 1 Allen, Miss. Elisabeth Walton female 29.0000 0 0 24160 211.3375 B5 S 2 NaN St Louis, MO
1 1 Allison, Master. Hudson Trevor male 0.9167 1 2 113781 151.5500 C22 C26 S 11 NaN Montreal, PQ / Chesterville, ON
2 1 Allison, Miss. Helen Loraine female 2.0000 1 2 113781 151.5500 C22 C26 S NaN NaN Montreal, PQ / Chesterville, ON
3 1 Allison, Mr. Hudson Joshua Creighton male 30.0000 1 2 113781 151.5500 C22 C26 S NaN 135.0 Montreal, PQ / Chesterville, ON
4 1 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female 25.0000 1 2 113781 151.5500 C22 C26 S NaN NaN Montreal, PQ / Chesterville, ON


دعم تجريبي لواجهة برمجة التطبيقات Array في LinearDiscriminantAnalysis#

تمت إضافة دعم تجريبي لمواصفات Array API إلى LinearDiscriminantAnalysis. يمكن للمقدر الآن العمل على أي مكتبات متوافقة مع واجهة برمجة التطبيقات Array مثل CuPy، وهي مكتبة صفائف معجلة بواسطة GPU. لمزيد من التفاصيل، راجع دليل المستخدم.

تحسين كفاءة العديد من المقدرات#

في الإصدار 1.1، تم تحسين كفاءة العديد من المقدرات التي تعتمد على حساب المسافات الزوجية (بشكل أساسي المقدرات المتعلقة بالتجمع، وتعلم المانيفولد، وخوارزميات البحث عن الجيران) بشكل كبير للمدخلات float64 الكثيفة. شملت تحسينات الكفاءة بشكل خاص تقليل استهلاك الذاكرة وتحسين قابلية التوسع على أجهزة متعددة النواة. في الإصدار 1.2، تم تحسين كفاءة هذه المقدرات بشكل أكبر لجميع مجموعات المدخلات الكثيفة والمبعثرة على مجموعات البيانات float32 وfloat64، باستثناء مجموعات البيانات المبعثرة-الكثيفة والكثيفة-المبعثرة لمقاييس المسافة Euclidean وSquared Euclidean. يمكن العثور على قائمة مفصلة بالمقدرات المتأثرة في سجل التغييرات.

Total running time of the script: (0 minutes 4.811 seconds)

Related examples

أبرز ميزات الإصدار 1.0 من scikit-learn

أبرز ميزات الإصدار 1.0 من scikit-learn

تقديم واجهة برمجة التطبيقات set_output

تقديم واجهة برمجة التطبيقات set_output

أبرز ميزات الإصدار 1.4 من scikit-learn

أبرز ميزات الإصدار 1.4 من scikit-learn

أبرز الميزات الجديدة في إصدار scikit-learn 0.23

أبرز الميزات الجديدة في إصدار scikit-learn 0.23

Gallery generated by Sphinx-Gallery