原理:
逻辑回归是一种广泛使用的分类算法,尤其适用于二分类问题。虽然名为"回归",但它实际上是一个分类模型。逻辑回归通过将输入特征与权重相乘,然后应用Sigmoid函数将结果映射到0到1之间,得到样本属于某一类的概率。
Sigmoid函数的公式为:f(z) = 1 / (1 + e^(-z)),其中z = w1 * x1 + w2 * x2 + ... + wn * xn + b,w为权重,b为偏置,n为特征数量。
逻辑回归的目标是找到最佳的权重和偏置,使得正类样本的概率尽可能接近1,负类样本的概率尽可能接近0。这通常通过最大化对数似然函数或最小化交叉熵损失函数来实现。
使用方法:
在scikit-learn中,可以使用LogisticRegression类来实现逻辑回归。以下是使用步骤:
1. 导入所需的库:
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
2. 准备数据:将数据分为特征矩阵X和目标向量y,并划分为训练集和测试集。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
3. 创建和训练模型:
model = LogisticRegression()
model.fit(X_train, y_train)
4. 模型评估:使用测试集进行预测,并计算评估指标如准确率、精确率、召回率和F1分数。
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
5. 模型应用:使用训练好的模型对新的数据进行预测。
new_data = [[...]] # 新数据的特征
prediction = model.predict(new_data)
逻辑回归对特征缩放敏感,因此在建模前对数据进行标准化或归一化处理很重要。此外,逻辑回归假设样本独立且特征间不存在多重共线性。如果特征高度相关,可以考虑使用正则化技术(如L1或L2正则化)来缓解这个问题。