Sklearn - 逻辑回归



训练二元分类器

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

猜你喜欢

转载自blog.csdn.net/lovechris00/article/details/129904905