首页 > 其他分享 >机器学习入门-Scikit-learn

机器学习入门-Scikit-learn

时间:2024-11-24 19:33:14浏览次数:7  
标签:iris 入门 fit 模型 Scikit logreg learn test 数据

目录

一.Sklearn基本介绍

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

1.导入包

2.加载数据集

3.数据预处理

4.数据集拆分

5.模型训练

6.模型评估

7.模型保存和加载

三.碎碎念

一.Sklearn基本介绍

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

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

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

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

1.导入包

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.加载数据集


# 加载鸢尾花数据集
iris=datasets.load_iris()
X,y=iris.data,iris.target

print(iris.DESCR) # 查看数据集的基本信息

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

API使用介绍:

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

3.数据预处理


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

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

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

4.数据集拆分


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

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

5.模型训练


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

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

6.模型评估


# 预测测试集
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.模型保存和加载


# 保存模型
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/

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

标签:iris,入门,fit,模型,Scikit,logreg,learn,test,数据
From: https://blog.csdn.net/sx52013/article/details/143909061

相关文章

  • 深度学习入门- 梯度(Gradient)(一)
    目录一.梯度的数学基础1.复合函数2.链式法则3.驻点,极值点,鞍点4.偏导数5.梯度6. 梯度法一.梯度的数学基础1.复合函数    由多个函数构成的函数,比如z=(x+y)**2,由函数1: z=t**2和函数2: t=x+y构成。2.链式法则    如果某个函数由复合函数表示,则该复......
  • Pulsar 入门实战(6)--Rest API
    RestAPI是broker提供的关联API,JavaadminAPI和pulsar-adminCLI底层都是使用的RestAPI;本文主要介绍其基本使用,文中所使用到的软件版本:Pulsar3.3.0。1、Admin1.1、BOOKIES1.1.1、列出所有bookiecurlhttp://10.49.196.30:8080/admin/v2/bookies/all1.2、BROKER......
  • KOA 入门,完善用户注册和登录逻辑
    在上次简单实现用户注册和登录逻辑的时候「传送门」,提到了很多优化的地方,在这里我们来解决优化这些问题。在开始之前,因为上次我们测试的时候创建了多个相同账号名字的账号,所以我们先进行强制同步模型来清空上次创建的相关数据。调用node./src/db/connect.js来处理相关逻辑。......
  • 《 C++ 修炼全景指南:一 》新手福音:C++ 入门全指南,掌握编程核心
    摘要这篇博客为C++初学者提供了一份全面而详尽的入门指南,涵盖了C++的方方面面。首先,从语言的起源与发展入手,讲述了C++的历史脉络及其对现代编程的深远影响。接着,详细剖析了C++的核心关键字,包括const、static和auto,并通过实际示例展示其应用。文章还深入探讨了命名空间的概......
  • C++入门(2)
    变量变量的创建:数据类型是用来创建变量的。经常变化的值称为变量。例:intage;charch;doubleweight;变量的命名规则:1.只能由数字,字母,下划线组成,且必须以字母或下划线开头。2.不能包含特殊字符,如空格,连字符等。3.不能使用语言的关键字,如int,char等。4.应具有意义,......
  • C++入门(1)
    名字空间#include<iostream>usingnamespacestd;intmain(){}1.usingnamespacestd;意思是:使⽤名字空间std(名字空间也叫命名空间)。2.在C++中,变量、函数和类都是⼤量存在的,这些变量、函数和类的名称如果都存在于全局作⽤域中,可能会导致很多冲突。使⽤名字空间的......
  • MybatisPlus入门(八)MybatisPlus-DQL编程控制(下)
    一、字段映射与表名映射数据库表和实体类名称一样自动关联,数据库表和实体类有部分情况不一样。问题一:表名与编码开发设计不同步,表名和实体类名称不一致。  解决办法:在模型类上方,使用@TableName注解,通过value属性,设置当前类对应的数据库表名称。  示例代......
  • OSTrack:Joint Feature Learning and Relation Modeling for Tracking: A One-Stream F
    Abstract问题:传统的双流跟踪框架对目标提取的特征不够具体。特征提取和关系建模是分开进行的,导致算法在区分目标和背景方面的能力有限。两流、两阶段框架容易受到性能-速度困境的影响。解决:提出一种新的单流跟踪框架,OSTrack通过桥接具有双向信息流的模板搜索图像来统一特......
  • MybatisPlus入门(七)MybatisPlus-DQL编程控制(上)
     一、查询条件设置查询条件如下图:  用户登录(eq匹配),代码示例:LambdaQueryWrapper<User>lqw=newLambdaQueryWrapper<User>();//等同于=lqw.eq(User::getName,"Jerry").eq(User::getPassword,"jerry");UserloginUser=userDao.selectOne(lqw);System.o......
  • MybatisPlus入门(五)MybatisPlus条件查询
    一、MybatisPlus条件查询MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合  方式一:按条件查询查询年龄小于18的用户,代码示例:@SpringBootTestclassMybatisplusDqlApplicationTests{@AutowiredprivateUserDaouserDao;......