【Python机器学习】实验03 logstic回归
发布人:shili8
发布时间:2025-03-12 09:28
阅读次数:0
**实验03: Logistic 回归**
Logistic 回归是一种常见的二分类算法,用于预测目标变量为0 或1 的情况。它通过学习数据中的模式来确定特定输入的概率。
在本实验中,我们将使用 Python 来实现 Logistic 回归,并对其进行解释和演示。
###1. Logistic 回归的基本概念Logistic 回归是一种线性模型,但它不是直接预测目标变量,而是预测其对数几率。这种方法可以避免预测概率值过大或过小的问题。
假设我们有一个二分类问题,目标变量为0 或1,我们希望预测某个输入的概率属于类别1。
Logistic 回归使用以下公式来计算对数几率:
log(p / (1 - p)) = w^T * x + b其中:
* p:预测概率* w:权重向量* x:输入特征向量* b:偏置项###2. Logistic 回归的实现我们将使用 Scikit-learn 库来实现 Logistic 回归。
# 导入必要的库from sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score, classification_report, confusion_matriximport numpy as np#生成随机数据np.random.seed(0) X = np.random.rand(100,5) #100 个样本,5 个特征y = (X[:,0] >0.5).astype(int) # 目标变量为0 或1# 将数据分割成训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 实例化 Logistic 回归模型model = LogisticRegression(max_iter=10000) # 最大迭代次数# 训练模型model.fit(X_train, y_train) # 预测测试集y_pred = model.predict(X_test) #评估模型性能accuracy = accuracy_score(y_test, y_pred) print("准确率:", accuracy) print("分类报告:") print(classification_report(y_test, y_pred)) print("混淆矩阵:") print(confusion_matrix(y_test, y_pred))
###3. Logistic 回归的优点和缺点Logistic 回归有以下优点:
* 简单易懂,易于实现* 可以用于二分类问题* 可以使用交叉验证来评估模型性能然而,它也有一些缺点:
* 不适合多分类问题* 需要手动选择超参数(如最大迭代次数)
* 不支持正则化和早停等技术###4. Logistic 回归的应用场景Logistic 回归适用于以下场景:
* 二分类问题* 预测概率* 需要简单易懂的模型然而,它不适合以下场景:
* 多分类问题* 需要复杂模型* 需要支持正则化和早停等技术