文章目录
- sklearn.linear_model.LogisticRegression
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
训练二元分类器
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
iris = datasets.load_iris()
iris_features = iris.data
iris_target = iris.target
features = iris_features[:100, :]
target = iris_target[:100]
scaler = StandardScaler()
features_std = scaler.fit_transform(features)
logistic_rgs = LogisticRegression(random_state=0)
model = logistic_rgs.fit(features_std, target)
new_ob = [[.5, .5, .5, .5]]
model.predict(new_ob)
array([1])
model.predict_proba(new_ob)
array([[0.17738424, 0.82261576]])
训练多元分类器 multi_class=‘ovr’
features_std = scaler.fit_transform(iris_features)
logistic_rgs = LogisticRegression(random_state=0, multi_class='ovr')
model = logistic_rgs.fit(features_std, iris_target)
通过正则化 来减小方差 LogisticRegressionCV
from sklearn.linear_model import LogisticRegressionCV
features_std = scaler.fit_transform(iris_features)
logistic_rgscv = LogisticRegressionCV(penalty='l2', Cs=10, random_state=0, n_jobs=-1)
model = logistic_rgscv.fit(features_std, iris_target)
在超大数据集上训练分类器 solver=‘sag’
features_std = scaler.fit_transform(iris_features)
logistic_rgs = LogisticRegression(random_state=0, solver='sag')
model = logistic_rgs.fit(features_std, iris_target)
处理不均衡的分类 class_weight=‘balanced’
import numpy as np
features = iris_features[40:, :]
target = iris_target[40:]
target = np.where((target ==0), 0, 1)
features_std = scaler.fit_transform(features)
logistic_rgs = LogisticRegression(random_state=0, class_weight='balanced')
model = logistic_rgs.fit(features_std, target)
2023-04-01