当前位置: 首页 > news >正文

【机器学习算法基础】(基础机器学习课程)-10-逻辑回归-笔记

一、模型的保存与加载

 

 

 

 

逻辑回归是一种常见的机器学习算法,广泛用于分类问题。为了在不同的时间或环境下使用训练好的模型,我们通常需要将其保存和加载。

保存模型

  1. 训练模型:首先,你需要用你的数据训练一个逻辑回归模型。例如,在Python中使用scikit-learn库,你可以这样做:

    from sklearn.linear_model import LogisticRegression 
    model = LogisticRegression() 
    ​​​​​​​model.fit(X_train, y_train)

  2. 保存模型:训练好模型后,你需要将其保存到一个文件中。这样你就不需要每次都重新训练模型。常用的方法是使用Python的pickle库或joblib库。以下是使用joblib库的示例:

    import joblib
    joblib.dump(model, 'logistic_regression_model.pkl')
    

    这里的'logistic_regression_model.pkl'是你保存模型的文件名。你可以选择任何合适的文件名和路径。

加载模型

  1. 加载模型:当你需要使用之前保存的模型时,可以将其从文件中加载回来。继续使用joblib库,加载模型的方法如下:

    model = joblib.load('logistic_regression_model.pkl')
    

    使用模型进行预测:加载模型后,你就可以直接使用它进行预测,而不需要重新训练模型。例如:

  2. 使用模型进行预测:加载模型后,你就可以直接使用它进行预测,而不需要重新训练模型。例如:
    predictions = model.predict(X_test)

总结

  • 为什么保存模型? 保存模型的主要目的是为了节省时间和计算资源。训练模型可能需要大量的数据和时间,而保存模型后可以在需要时直接加载和使用。
  • 保存模型的方法:常用的库包括pickle和joblib,joblib在处理大文件时效率更高。
  • 加载模型:加载模型非常简单,只需一行代码就可以将保存的模型加载回来,方便快速进行预测或分析。

实际应用场景

想象你是一个数据科学家,在一个项目中你花了几个小时甚至几天时间来训练一个逻辑回归模型,用于预测某些客户是否会购买你的产品。模型训练好了,你不希望每次运行预测时都重新训练模型,所以你会将其保存。当你需要在下个月或明年再次运行预测时,你只需要加载保存好的模型,而无需重新训练,大大节省了时间和资源。

这种方法不仅适用于逻辑回归模型,还适用于其他机器学习模型,如决策树、支持向量机和神经网络等。模型的保存与加载是机器学习工作流程中非常重要的一部分,可以提高效率和便利性。

二、逻辑回归定义,损失函数,优化与线性回归比较

 

 

 

 

 

 

 

 

 逻辑回归是一种用于分类问题的机器学习算法,尽管名字中有“回归”二字,但它实际上用于二分类或多分类任务。

 

小结

  • 逻辑回归用于分类问题,通过逻辑函数将线性模型的输出映射到概率值。
  • 损失函数为对数损失函数,最小化它以优化模型。
  • 优化方法主要为梯度下降。
  • 与线性回归的比较显示了它们在任务、输出、假设、模型和损失函数上的不同之处。

三、逻辑回归预测癌症案例

 

 

 

 

场景设定

假设我们有一组数据,记录了若干患者的健康状况及其是否患有癌症。数据包括患者的年龄、体重、是否吸烟等信息,以及是否患有癌症(0表示未患癌,1表示患癌)。

目标

我们的目标是利用这些数据训练一个逻辑回归模型,当我们输入新的患者信息时,模型可以预测该患者是否患有癌症的概率。

步骤

  1. 收集和准备数据

    • 数据集可能包含以下信息:
      | 年龄 | 体重 | 吸烟 | 是否患癌 |
      |----|----|----|-------|
      | 45 | 70 | 1  | 1     |
      | 50 | 65 | 0  | 0     |
      | 40 | 80 | 1  | 1     |
      | 30 | 60 | 0  | 0     |
      
    • 每一行代表一个患者的信息。
  2. 训练模型

    • 使用这些数据来训练逻辑回归模型。
    from sklearn.linear_model import LogisticRegression
    import pandas as pd# 假设数据已经被加载到一个DataFrame中
    data = pd.DataFrame({'age': [45, 50, 40, 30],'weight': [70, 65, 80, 60],'smoke': [1, 0, 1, 0],'cancer': [1, 0, 1, 0]
    })X = data[['age', 'weight', 'smoke']]
    y = data['cancer']model = LogisticRegression()
    model.fit(X, y)
    
  3. 保存模型

    • 训练好模型后,将其保存到文件中,以便后续使用。
    import joblib
    joblib.dump(model, 'cancer_prediction_model.pkl')
    

    加载模型和预测

    • 当有新的患者信息时,可以加载保存的模型并进行预测。
    # 加载模型
    model = joblib.load('cancer_prediction_model.pkl')# 新患者的信息
    new_patient = [[50, 70, 1]]# 预测该患者患癌的概率
    cancer_probability = model.predict_proba(new_patient)[0][1]
    print(f'该患者患癌的概率是: {cancer_probability:.2f}')
    

结果解释

  • 输出结果:模型会输出一个概率值,表示患者患癌的可能性。例如,输出值为0.81,表示该患者有81%的可能性患癌。

逻辑回归在癌症预测中的优势

  • 处理概率问题:逻辑回归擅长处理二分类问题,如“是否患癌”这种是或否的问题。
  • 概率输出:模型提供概率值而不是简单的分类,有助于医生根据概率值做进一步判断。
  • 解释性强:逻辑回归的模型参数可以解释每个特征对预测结果的影响,帮助理解哪些因素更容易导致癌症。

小结

通过这个案例,我们可以看到逻辑回归在实际生活中的应用。它通过学习患者的历史数据,构建一个模型,帮助预测新患者是否患有癌症。这种方法不仅高效,而且能够提供概率结果,辅助医生进行决策。

四、逻辑回归总结

 

 

 

 

http://www.lryc.cn/news/414435.html

相关文章:

  • 自动驾驶行业知识汇总
  • C#根据反射操作对象
  • 打包python脚本(flask、jinja2)为exe文件
  • 嵌入式初学-C语言-练习三
  • 最新版Sonible Plugins Bundle v2024 winmac,简单智能,持续更新长期有效
  • J032_实现简易版的B/S架构
  • 【前端面试】五、框架
  • C语言 | Leetcode C语言题解之第316题去除重复字母
  • 本地部署 Llama-3-EvoVLM-JP-v2
  • Evaluating the Generation Capabilities of Large Chinese Language Models
  • YOLOv8添加注意力模块并测试和训练
  • 「Unity3D」自动布局LayoutElement、ContentSizeFitter、AspectRatioFitter、GridLayoutGroup
  • 【Golang 面试 - 进阶题】每日 3 题(十六)
  • Redis2
  • C语言--函数
  • Shell 编程的高级技巧和实战应用
  • VMWare虚拟机如何连接U盘
  • 【学习笔记】后缀自动机(SAM)
  • Godot的节点与场景
  • C++ 学习(2) ---- std::cout 格式化输出
  • 前端拿不到Long类型成员变量,用@JsonSerialize(using = ToStringSerializer.class)序列化一下
  • JWT登录校验流程
  • yarn安装和部署
  • Visual Studio的安装教程与使用方法
  • 一键换装软件哪个好?6个换装工具让你秒变穿搭达人
  • 【EtherCAT】Windows+Visual Studio配置SOEM主站——源码配置
  • GPTPDF深度解析:开源文档处理技术全攻略
  • 网络学习:应用层DNS域名解析协议
  • 7.怎么配置一个axios来拦截前后端请求
  • Day17_1--AJAX学习之GET/POST传参