机器学习入门-Scikit-learn

ops/2024/11/25 9:40:07/

目录

一.Sklearn基本介绍

二.以鸢尾花数据集为例,理解基础运用

1.导入包

2.加载数据集

3.数据预处理

4.数据集拆分

5.模型训练

6.模型评估

7.模型保存和加载

三.碎碎念

一.Sklearn基本介绍

       scikit-learn是一个开源的Python机器学习库,提供了大量易于使用的工具和算法,用于数据挖掘和数据分析。它支持多种学习算法,包括分类、回归、聚类、降维等,并且易于集成到Python项目中。

       我们在前文使用到Sklearn库,由于存在很多理论疑惑,于是开始补这块知识。这里有官方的用户指南和API,都可以在里面找到详细的解释。参考文档如下:

https://scikit-learn.org/stable/user_guide.html

二.以鸢尾花数据集为例,理解基础运用

1.导入包

python">from sklearn import datasets    
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
import joblib  # 用于保存和加载模型

2.加载数据集

python">
# 加载鸢尾花数据集
iris=datasets.load_iris()
X,y=iris.data,iris.targetprint(iris.DESCR) # 查看数据集的基本信息

dataset:以下是自带的一些数据集,可以直接使用,比如load_iris就是鸢尾花数据集。

API使用介绍:

sklearn.datasets.load_iris(*, return_X_y = False, as_frame = False)

3.数据预处理

python">
# 标准化特征
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

        StandardScaler:是一个预处理工具,用于标准化(或归一化)特征数据。标准化是指将特征数据按照比例缩放,使之落入一个小的特定区间,将数据调整为均值为0,标准差为1,使得每个特征的数据都服从标准正态分布。

       fit_transform:这个方法结合了fit和transform两个步骤,fit方法会计算每个特征的均值和标准差。transform方法使用fit 方法学习到的统计属性来转换(或标准化)数据,注意对于测试数据或新数据,应该只使用transform方法,而不是fit_transform。

4.数据集拆分

python">
# 将数据集分割为训练集和测试集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)

train_test_split:按照用户的需要指定划分为训练集和测试集。

5.模型训练

python">
# 初始化逻辑回归模型
logreg = LogisticRegression(max_iter=200)  # 设置最大迭代次数以避免警告
# 训练模型
logreg.fit(X_train, y_train)

LogisticRegression:逻辑回归,主要用于二分类问题。

6.模型评估

python">
# 预测测试集
y_pred = logreg.predict(X_test)
# 评估模型性能
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
# 打印分类报告
print(classification_report(y_test, y_pred, target_names=iris.target_names))

accuracy_score(y_true,y_pred,normalize=True, sample_weight=None)  准确率获取。

classification_report:分类报告。

7.模型保存和加载

python">
# 保存模型
joblib.dump(logreg, 'iris_logreg_model.joblib')
# 加载模型
loaded_logreg = joblib.load('iris_logreg_model.joblib')
# 使用加载的模型进行预测(可选)
y_pred_loaded = loaded_logreg.predict(X_test)print(f"Loaded Model Accuracy: {accuracy_score(y_test, y_pred_loaded)}")

三.碎碎念

      当你开始接受新事物的时候,你会发现完蛋入坑了,学不完,根本学不完。很多知识都是新的,充满着好奇心地去学,但另一方面会开始自卑,为什么不知道这些东西呢?所以"知道的越多你会发现自己知道的越少"也是有道理的。这个库里面的每个函数都涉及到相当多的知识,比如数据归一化工具:MinMaxScaler,逻辑回归LogisticRegression等都涉及到大量的数学推导。只能做到在使用到的知识里尽可能多的去深入理解原理再加以运用,当出现效果后再来反反复复做调参优化,再次深入研究。想一次性完完全全吸收所有知识,哈哈,那我暂时办不到。

        频繁记录的目的也可能是为了防止忘记,时而拿出来回忆。

        

        本文参考官方文档:https://scikit-learn.org/stable/

        本文仅为个人学习使用所写。


http://www.ppmy.cn/ops/136532.html

相关文章

无Linux管理员权限,照样可以安装CUDA

以下演示内容使用CUDA版本为 CUDA11.7 1、官网 官网:CUDA官网下载地址 这里会列出所有的CUDA版本,选择需要的版本即可。 2、查看系统信息 这里分享三个命令,可以查看Linux系统的配置信息,方便下一步下载合适的CUDA版本。 可以根据这些命令输出的系统配置信息选择相应的…

阿里云IIS虚拟主机部署ssl证书

宝塔配置SSL证书用起来是很方便的,只需要在站点里就可以配置好,但是云虚拟主机在管理的时候是没有这个权限的,只提供了简单的域名管理等信息。 此处记录下阿里云(原万网)的IIS虚拟主机如何配置部署SSL证书。 进入虚拟…

IntelliJ IDEA常用快捷键

文章目录 环境快捷键外观编辑移动光标提示查找Live Templates列操作调试运行 环境 Ubuntu 24.04.1IntelliJ IDEA 2024.1.6 快捷键 外观 Alt 1:打开/关闭“项目”窗口(即左边的导航窗口) Alt 4:打开/关闭“运行”窗口 Alt …

HarmonyOS 应用中复杂业务场景下的接口设计

文章目录 前言设计理念与原则模块化设计动态可扩展性支持多种查询模式统一响应格式实现复杂业务接口示例后端接口代码(Node.js Express)前端调用代码(ArkTS)前端界面(ArkUI) 代码详解后端代码详解前端代码…

数据结构:链表进阶

链表进阶 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现 3.链表面试题4.LinkedList的使用5.1 什么是LinkedList4.2 LinkedList的使用 5. ArrayList和LinkedList的区别 1. ArrayList的缺陷 通过源码知道,ArrayList底层使用数组来存储元素&#xff1…

Python3 Flask 应用中使用阿里短信发送

代码大部分都是官网提供的,稍做了一点修改。 需要申请 access_key_id 和 access_key_secret 很简单这里就不絮叨了,如果你不会私信我,我教你。 安装命令 pip install alibabacloud_dysmsapi201705253.1.0 # -*- coding: utf-8 -*- from…

HARCT 2025 新增分论坛7:机器人和自动化的新趋势

会议名称:机电液一体化与先进机器人控制技术国际会议 会议简称:HARCT 2025 大会时间:2025年1月3日-6日 大会地点:中国桂林 主办单位:桂林航天工业学院、广西大学、桂林电子科技大学、桂林理工大学 协办单位&#…

网络爬虫——爬虫项目案例

本节将全面讲解如何通过实战爬虫项目解决复杂问题。结合最新技术和实际开发需求,案例将涵盖完整开发流程,包括需求分析、实现代码、优化方法和常见问题解决。力求实现高效、可扩展的爬虫项目架构,帮助开发者提升实战能力。 案例 1&#xff1a…