您的位置:

逻辑回归Python代码实现

一、什么是逻辑回归

逻辑回归是机器学习中的一种分类算法,用于根据输入变量特征预测输出变量的概率。这种算法的核心思想是根据输入变量的线性组合获取一个连续值,该值经过一个逻辑函数的转换,得到输出变量的概率。

这样的分类算法通常用于处理二元分类问题,例如将邮件标记为垃圾邮件或非垃圾邮件,对疾病进行诊断等等。通常,当预测值大于某个阈值时,分类结果被视为一个类别,否则,结果被视为另一个类别。

下面是一个使用Python实现逻辑回归的示例。

二、数据准备阶段

在使用逻辑回归前,首先需要加载数据集,将其拆分成训练集和测试集,并对数据进行预处理,以便它们成为可以输入逻辑回归算法的输入特征变量和输出变量。

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler

# 加载数据集
cancer = load_breast_cancer()

# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, random_state=0)

# 对数据进行预处理,进行特征缩放
scaler = MinMaxScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)

三、逻辑回归模型

在准备完数据之后,我们可以使用sklearn库中的逻辑回归模型,设置超参数,拟合模型并在测试集上评估准确率。

from sklearn.linear_model import LogisticRegression

# 定义逻辑回归模型,设置超参数
logreg = LogisticRegression(C=100).fit(X_train_scaled, y_train)

# 在测试集上评估逻辑回归模型的准确率
print("Test set accuracy: {:.2f}".format(logreg.score(X_test_scaled, y_test)))

四、模型优化

逻辑回归的拟合过程中,还可以对超参数进行调整,优化模型的性能。例如,我们可以更改正则化强度、使用不同的求解器、更改迭代次数等。

# 定义逻辑回归模型,使用liblinear求解器和较小的正则化强度
logreg = LogisticRegression(C=0.01, solver='liblinear').fit(X_train_scaled, y_train)
print("Test set accuracy: {:.2f}".format(logreg.score(X_test_scaled, y_test)))

五、模型预测

当训练好模型后,我们可以使用它来进行预测。给定一组输入变量,逻辑回归模型将返回一个概率值,该值指示变量属于输出变量类别的概率。

下面是一个对新数据进行预测的示例:

# 对新数据进行预测
X_new = [[0.2, 0.4, 0.6, 0.8], [0.1, 0.3, 0.5, 0.7]]
print("Probability of class 1:", logreg.predict_proba(X_new))
print("Predicted class:", logreg.predict(X_new))

六、总结

本文演示了如何使用Python编写逻辑回归算法,并将其用于预测二元分类变量。我们讨论了数据准备、模型构建、超参数优化以及预测。这些步骤是机器学习中掌握逻辑回归的基础。