scikit-learn के साथ Supervised Learning
George Boorman
Core Curriculum Manager, DataCamp
याद करें: Linear regression एक loss function को न्यूनतम करता है
यह हर feature वैरिएबल के लिए एक गुणांक $a$ चुनता है, साथ में $b$
बड़े गुणांक overfitting करा सकते हैं
Regularization: बड़े गुणांकों पर दंड लगाएँ
Loss function = OLS loss function + $$ \alpha * \sum_{i=1}^{n} {a_i}^2$$
Ridge बड़े धनात्मक या ऋणात्मक गुणांकों को दंडित करता है
$\alpha$: वह पैरामीटर जिसे चुनना होता है
$\alpha$ चुनना KNN में k चुनने जैसा है
Hyperparameter: मॉडल पैरामीटर optimize करने के लिए प्रयुक्त वैरिएबल
$\alpha$ मॉडल की जटिलता नियंत्रित करता है
$\alpha$ = 0 = OLS (overfitting हो सकता है)
बहुत उच्च $\alpha$: underfitting हो सकता है
from sklearn.linear_model import Ridgescores = [] for alpha in [0.1, 1.0, 10.0, 100.0, 1000.0]:ridge = Ridge(alpha=alpha)ridge.fit(X_train, y_train) y_pred = ridge.predict(X_test)scores.append(ridge.score(X_test, y_test))print(scores)
[0.2828466623222221, 0.28320633574804777, 0.2853000732200006,
0.26423984812668133, 0.19292424694100963]
from sklearn.linear_model import Lassoscores = [] for alpha in [0.01, 1.0, 10.0, 20.0, 50.0]: lasso = Lasso(alpha=alpha) lasso.fit(X_train, y_train) lasso_pred = lasso.predict(X_test) scores.append(lasso.score(X_test, y_test)) print(scores)
[0.99991649071123, 0.99961700284223, 0.93882227671069, 0.74855318676232, -0.05741034640016]
Lasso किसी डेटासेट के महत्वपूर्ण फीचर चुन सकता है
कम महत्वपूर्ण फीचर के गुणांक को शून्य तक घटाता है
जो फीचर शून्य तक नहीं घटते, वे lasso द्वारा चुने जाते हैं
from sklearn.linear_model import LassoX = diabetes_df.drop("glucose", axis=1).values y = diabetes_df["glucose"].values names = diabetes_df.drop("glucose", axis=1).columnslasso = Lasso(alpha=0.1)lasso_coef = lasso.fit(X, y).coef_plt.bar(names, lasso_coef) plt.xticks(rotation=45) plt.show()

scikit-learn के साथ Supervised Learning