使用SGDClassifier()进行Python数据挖掘的实例案例
发布时间:2024-01-05 14:35:43
SGDClassifier是scikit-learn中的一个分类器,基于随机梯度下降算法实现。它适用于大规模数据集,因为它只需处理单个训练样本,而不需要加载整个数据集到内存中。在本篇文章中,我们将使用SGDClassifier对一个鸢尾花数据集进行分类。
首先,我们需要导入所需的库和数据集。以下是必要的代码:
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import SGDClassifier 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)
接下来,我们创建一个SGDClassifier对象,并使用训练数据对其进行拟合:
# 创建SGDClassifier对象 classifier = SGDClassifier() # 拟合训练数据 classifier.fit(X_train, y_train)
现在,我们可以使用训练好的分类器对测试数据进行预测,并计算精确度得分:
# 对测试数据进行预测
y_pred = classifier.predict(X_test)
# 计算精确度得分
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
最后,我们可以打印出分类器的参数,以及每个特征对应的权重值:
# 打印分类器的参数
print("Intercept:", classifier.intercept_)
print("Coefficients:", classifier.coef_)
# 打印特征和对应的权重值
features = data['feature_names']
weights = classifier.coef_
for feature, weight in zip(features, weights[0]):
print(feature, ":", weight)
这个例子展示了如何使用SGDClassifier进行分类任务。我们加载鸢尾花数据集,将其划分为训练集和测试集,然后使用SGDClassifier拟合训练数据,并对测试数据进行预测。最后,我们计算精确度得分,并打印出分类器的参数和特征权重。
