机械学习--逻辑回归

一.理论

logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。 逻辑回归根据给定的自变量数据集来估计事件的发生概率,由于结果是一个概率,因此因变量的范围在 0 和 1 之间。 [3]例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。然后通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到底哪些因素是胃癌的危险因素。同时根据该权值可以根据危险因素预测一个人患癌症的可能性。

二.代码

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression

# 获取用户输入的特征值
def get_user_input():
    feature1 = float(input("Enter value for Feature 1: "))
    feature2 = float(input("Enter value for Feature 2: "))
    return np.array([[feature1, feature2]])

# 创建并训练逻辑回归模型
def train_logistic_regression(X_train, y_train):
    model = LogisticRegression()
    model.fit(X_train, y_train)
    return model

# 获取用户输入的特征值并进行预测
def predict_with_model(model):
    user_input = get_user_input()
    prediction = model.predict(user_input)
    return prediction

if __name__ == "__main__":
    # 使用已有的虚拟数据集
    X_train = np.array([[1, 2], [2, 3], [3, 4], [4, 5]])
    y_train = np.array([0, 0, 1, 1])  # 0和1代表两个类别

    # 创建并训练逻辑回归模型
    model = train_logistic_regression(X_train, y_train)

    # 获取用户输入并进行预测
    user_prediction = predict_with_model(model)

    print("Prediction:", user_prediction)

三.结果

四.总结

优点:

  1. 实现简单:逻辑回归是一种简单且高效的分类算法,易于理解和实现。
  2. 计算速度快:逻辑回归的计算复杂度低,训练速度快。
  3. 输出结果概率化:逻辑回归可以输出样本属于不同类别的概率,而不仅仅是分类结果。
  4. 容易解释:模型的结果具有很好的可解释性,可以清晰地理解每个特征对分类的影响程度。

缺点:

  1. 对特征空间的线性可分性要求高:逻辑回归假设数据是线性可分的,对于非线性数据的分类效果不佳。
  2. 对异常值敏感:逻辑回归对异常值比较敏感,可能会影响模型的性能。
  3. 只能处理两分类问题:逻辑回归只能处理二分类问题,在多分类问题上需要进行修改或组合。
  4. 特征相关性:当特征之间存在相关性时,逻辑回归的表现可能不稳定,容易受到多重共线性的影响。
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值