SGDClassifier
和 LogisticRegression
都是 scikit-learn 库中的分类算法,用于解决二分类或多分类问题。
hinge
、log
、modified_huber
等)。l1
、l2
、elasticnet
等)。liblinear
、lbfgs
、newton-cg
、sag
、saga
等求解器。原因:
解决方法:
ConvergenceWarning
警告。原因:
解决方法:
max_iter
参数增加迭代次数。max_iter
参数增加迭代次数。from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import SGDClassifier, LogisticRegression
from sklearn.metrics import accuracy_score
# 加载数据集
data = load_iris()
X = data.data
y = data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 数据标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 使用 SGDClassifier
sgd_clf = SGDClassifier(loss='log', learning_rate='optimal', max_iter=1000, random_state=42)
sgd_clf.fit(X_train_scaled, y_train)
y_pred_sgd = sgd_clf.predict(X_test_scaled)
print("SGDClassifier Accuracy:", accuracy_score(y_test, y_pred_sgd))
# 使用 LogisticRegression
log_reg = LogisticRegression(max_iter=200, random_state=42)
log_reg.fit(X_train_scaled, y_train)
y_pred_log = log_reg.predict(X_test_scaled)
print("LogisticRegression Accuracy:", accuracy_score(y_test, y_pred_log))
领取专属 10元无门槛券
手把手带您无忧上云