sklearn函数汇总

2023-11-03

Python笔记--sklearn函数汇总

关注他
28 人 赞同了该文章

1. 拆分数据集为训练集和测试集:

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = 
train_test_split(x, y, test_size = 0.2,random_state=3,shuffle=False)
# test_size代表测试集的大小,train_size代表训练集的大小,两者只能存在一个
  random_state代表随即种子编号,默认为None
  shuffle代表是否进行有放回抽样


2. 数据预处理

2.1 标准化:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler().fit(x_train) # fit生成规则
x_trainScaler = scaler.transform(x_train) # 将规则应用于训练集
x_testScaler = scaler.transform(x_test)  # 将规则应用于测试集

2.2 区间缩放:

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler().fit(x_train) # fit生成规则
x_trainScaler = scaler.transform(x_train) # 将规则应用于训练集
x_testScaler = scaler.transform(x_test)  # 将规则应用于测试集

2.3 归一化:

from sklearn.preprocessing import Normalizer
scaler = Normalizer().fit(x_train) # fit生成规则
x_trainScaler = scaler.transform(x_train) # 将规则应用于训练集
x_testScaler = scaler.transform(x_test)  # 将规则应用于测试集

2.4 二值化:设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0

from sklearn.preprocessing import Binarizer
scaler = Binarizer(threshold=3).fit(x_train) # threshold为设定的阀值
x_trainScaler = scaler.transform(x_train) # 将规则应用于训练集
x_testScaler = scaler.transform(x_test)  # 将规则应用于测试集

2.5 哑编码处理:

from sklearn.preprocessing import OneHotEncoder
scaler = OneHotEncoder().fit(x_train.reshape((-1,1)))
x_trainScaler = scaler.transform(x_train) # 将规则应用于训练集
x_testScaler = scaler.transform(x_test)  # 将规则应用于测试集

2.6 自定义函数变换

from numpy import log1p  # 使用对数函数转换
from sklearn.preprocessing import FunctionTransformer
scaler = FunctionTransformer(log1p).fit(x_train)
x_trainScaler = scaler.transform(x_train) # 将规则应用于训练集
x_testScaler = scaler.transform(x_test)  # 将规则应用于测试集

2.7 PCA降维:

from sklearn.decomposition import PCA
pca = PCA(n_components=3).fit(x_train)  # n_components设置降维到n维度
x_trainPca = pca.transform(x_train) # 将规则应用于训练集
x_testPca = pca.transform(x_test)  # 将规则应用于测试集

2.8 LDA降维:

from sklearn.lda import LDA
lda = LDA(n_components=3).fit(x_train)  # n_components设置降维到n维度
x_trainLda = lda.transform(x_train) # 将规则应用于训练集
x_testLda = lda.transform(x_test)  # 将规则应用于测试集


3. 特征筛选

3.1 Filter法:

from sklearn.feature_selection import SelectKBest, f_classif
selector = SelectKBest(f_classif, k=4) -- 用f_classif方法,设定数目为4
a=selector.fit(x,y)
print(np.array(a.scores_),'\n',a.get_support())  --  输出得分及选择的结果

3.2 Wrapper法(递归法):

from sklearn.linear_model import LinearRegression --导入基模型
from sklearn.feature_selection import RFE  -- 导入RFE模块
model1 = LinearRegression()   -- 建立一个线性模型
rfe = RFE(model1,4)           -- 进行多轮训练,设置筛选特征数目为4个
rfe = rfe.fit(x,y)            -- 模型的拟合训练
print(rfe.support_)           -- 输出特征的选择结果
print(rfe.ranking_)           -- 特征的选择排名


4.构建模型

4.1决策树模型

决策树优点:

  • 便于理解和解释。树的结构可以可视化出来。
  • 训练需要的数据少,对异常值和缺失值不敏感。
  • 能够处理数值型数据和分类数据。

决策树缺点:

  • 容易产生一个过于复杂的模型,使模型产生过拟合的问题。
  • 决策树可能是不稳定的,因为数据中的微小变化可能会导致完全不同的树生成。
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(criterion='gini', --设置衡量的系数,有entropy和gini,默认gini
                               splitter='best', --选择分类的策略,best和random,默认best
                               max_depth=5, --设置树的最大深度
                               min_samples_split=10,-- 区分一个内部节点需要的最少的样本数
                               min_samples_leaf=5 -- 一个叶节点所需要的最小样本数
                               max_features=5 --最大特征数     
                               max_leaf_nodes=3--最大样本节点个数
                               min_impurity_split --指定信息增益的阀值
                               )
clf= clf.fit(x_train,y_train)  -- 拟合训练


4.2 逻辑回归模型

优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低。

缺点:容易欠拟合,分类精度可能不高。对异常值和缺失值敏感

from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(penalty='l2', --惩罚项(l1与l2),默认l2
                         dual=False, --对偶或原始方法,默认False,样本数量>样本特征的时候,dual通常设置为False
                         tol=0.0001, --停止求解的标准,float类型,默认为1e-4。就是求解到多少的时候,停止,认为已经求出最优解
                         C=1.0, --正则化系数λ的倒数,float类型,默认为1.0,越小的数值表示越强的正则化。
                         fit_intercept=True, --是否存在截距或偏差,bool类型,默认为True。
                         intercept_scaling=1, --仅在正则化项为”liblinear”,且fit_intercept设置为True时有用。float类型,默认为1
                         class_weight=None, --用于标示分类模型中各种类型的权重,默认为不输入,也就是不考虑权重,即为None
                         random_state=None, --随机数种子,int类型,可选参数,默认为无
                         solver='liblinear', --优化算法选择参数,只有五个可选参数,即newton-cg,lbfgs,liblinear,sag,saga。默认为liblinear
                         max_iter=10, --算法收敛最大迭代次数,int类型,默认为10。
                         multi_class='ovr'--分类方式选择参数,str类型,可选参数为ovr和multinomial,默认为ovr。 
                                          如果是二元逻辑回归,ovr和multinomial并没有任何区别,区别主要在多元逻辑回归上。 
                         verbose=0, --日志冗长度,int类型。默认为0。就是不输出训练过程
                         warm_start=False, --热启动参数,bool类型。默认为False。
                         n_jobs=1--并行数。int类型,默认为1。1的时候,用CPU的一个内核运行程序,2的时候,用CPU的2个内核运行程序。
                        )
clf= clf.fit(x_train,y_train)  -- 拟合训练


4.3 线性回归模型

优点:实现简单,可解释性强。

缺点:容易出现欠拟合,对异常值和缺失值比较敏感。

from sklearn.linear_model import LinearRegression()
clf = LinearRegression(copy_X=True, 
                       fit_intercept=True, 
                       n_jobs=1, 
                       normalize=False)
clf= clf.fit(x_train,y_train)  -- 拟合训练


4.4 K-means聚类

from sklearn.cluster import KMeans
clf = KMeans(n_clusters=4, --给定的类别数
             max_iter=100,--为迭代的次数,这里设置最大迭代次数为300
             n_init=10,--设为10意味着进行10次随机初始化,选择效果最好的一种来作为模型
             copy_x=True--布尔型,默认值=True,如果把此参数值设为True,则原始数据不会被改变。如果是False,则会直接在原始数据 
                        上做修改并在函数返回值时将其还原。
             )
clf= clf.fit(x)  -- 拟合训练

关于作者:

本人就职于某金融科技公司从事风控建模工作,欢迎交流。

对于风控和机器学习感兴趣的童鞋可以关注下我的公众号:风控汪的数据分析之路。

编辑于 2019-12-08
机器学习
Python
数据分析
赞同 28​ 6 条评论
分享
收藏
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sklearn函数汇总 的相关文章

  • (1)密码学之RSA算法

    开始前先讲一下对称加密算法和公钥加密算法 我不喜欢叫非对称加密算法 这使我想起那个被问MD5算法属于对称还是非对称的恐惧 对称加密算法 1 甲方选择某一种加密规则 对信息进行加密 2 乙方使用同一种规则 对信息进行解密 公钥加密算法 1 乙
  • oracle 整理表 碎片,Oracle数据库表空间碎片的查询和整理方法

    一 查看表空间碎片的方法 1 查看fsfi值 select a tablespace name trunc sqrt max blocks sum blocks 100 sqrt sqrt count blocks 2 fsfi from
  • php+redis实现消息队列

    个人理解在项目中使用消息队列一般是有如下几个原因 把瞬间服务器的请求处理换成异步处理 缓解服务器的压力 实现数据顺序排列获取 redis实现消息队列步骤如下 1 redis函数rpush lpop 2 建议定时任务入队列 3 创建定时任务出
  • 目标检测mAP计算详解

    首先说明计算mAP有多个版本 每个数据集和比赛用的版本和方式也不同 下以VOC与COCO举例说明 精确度 precision 召回率 recall 分别为 常规的mAP计算为 这是一个N类检测任务 1 计算单张图片中class1的精度P V
  • Mac启动磁盘已满怎么办?Mac启动磁盘已满怎么清理?

    如果你的Mac电脑经常弹出窗口 您的启动盘几乎已经满了 这说明你的Mac硬盘空间严重不足了 清理各种不必要的垃圾可以释放一些空间 那么Mac启动磁盘已满怎么清理 下面为大家带来几点非常实用的Mac启动磁盘清理技巧 学会这些对你使用Mac电脑
  • 若依(ruoyi)代码生成树表结构的那些坑

    相信许多做后端开发的同学 一定用过若依这款框架 这款框架易上手 适合用来做后台管理系统 但是其中也存在一些坑 稍不注意就会中招 大佬可以忽略 今天 我们说的是若依的代码生成 树结构表 话不多说 直接看图说话 1 项目正常运行 成功登录之后
  • JS 对象和函数

    目录 一 对象 创建对象的四种方式 构造函数原型对象prototype和对象原型 proto 二 函数 创建函数的3种方式 一 对象 创建对象的四种方式 第一种方式 字面量 var o1 name o1 var o2 new Object
  • STM32F103C8用内部Flash做一个优盘(USB+MSC+FATFS)

    STM32F103C8用内部Flash做一个优盘 USB MSC FATFS 轻松实现APP升级 数据存储 基本工程生成 直接使用STM32CubeMX生成基本的工程 省得我们去调底层 时钟配置为外部8MHz晶振 这个需要根据自己开发板的晶
  • Python爬虫教程:爬取800多所大学学校排名、星级等

    前言 国内大学最新排名 北大反超 浙大仅第四 中科大跌至第八 时隔五年 双一流 大学即将迎来首次大考 这也是继改变高校评断标准之后 第一次即将以官方对外发布 自然是引来了许多人的关注 最近 有许多不同机构发布的国内高校排名 但彼此之间的差异
  • 自我理解:TCP和UDP、HTTP、进程和线程

    一 TCP和UDP 1 什么是TCP和UDP TCP是面向连接的协议 发送数据前要建立连接 TCP提供的是可靠传输 UDP是无连接的协议 发送数据前不需要建立连接 是不可靠传输 2 TCP和UDP的区别 TCP是面向连接的协议 发送数据前要
  • 晟元协议指纹头,单片机开发踩坑指南

    一 硬件说明 1 接口 注意 其中Touch VCC 3 3V是需要常供电的 用于Touch Out触摸唤醒供电 VDD3 3V可以检测到Touch Out高电平信号再上电 如果不需要低功耗设计 可以忽略Touch Out和Touch VC
  • Arduino(六)——蜂鸣器唱歌

    进行这节课需要了解一个函数 1 tone pin frequency Duration 在我们的pin脚上 也就是我们的蜂鸣器上所连的脚 产生的一定频率frequency unsigned int hz 的方波信号 占空比一半 如果不再需要
  • 解决AppData/Local/Microsoft/WindowsApps/python: Permission denied

    先说一下原因 windows更新导致 path路径下多了下面这个路径的配置所以出问题 这2个文件导致 解决方案 让正确的pathon exe位于windows制定的python上方 如下图所示
  • Kubernetes高可用动态存储NFS集群

    文章目录 安装NFS服务 安装keepalived 安装Rsync Inofity 设置Rsync Inotify自动同步 Master节点服务器操作 Slave节点服务器操作 K8s部署NFS Provisioner 创建一个Servic
  • 2021年 年终总结

    不知道你们写这个类似年终总结的时候是怎么打开思路的 每年到这个时候 心里总是想着晚两天再写吧 一直拖到快到31号了才开始 动笔 一般都会打开手机相册 看看这一年从一月一号开始都记录了什么 或者生活日常 或者美食 或者自恋自拍 或者在路上 今
  • Java中double,float类型比较大小或相等的方法-soanr扫描问题Floating point numbers should not be tested for equality

    由于在二进制表示中存储这些值的挑战 浮点数学是不精确的 更糟糕的是 浮点数学不是关联的 推动float或double通过一系列简单的数学运算 由于每个步骤发生的舍入 答案将根据这些操作的顺序而不同 即使是简单的浮点赋值也不简单 float
  • Tik Tok月活12亿 Tiktok和抖音有什么不同 ?

    Tik Tok月活12亿 Tiktok和抖音有什么不同 哈喽大家好 我是项柚 目前从事Tiktok从事2年 首先 我先给大家抛一个对比数据图 国内抖音和tiktok的用户区别以及月活量分布 国内抖音月活量是4个亿左右 tiktok国际抖音月
  • MySQL 服务正在启动 . MySQL 服务无法启动 服务没有报告任何错误 解决方案

    方法一 1 找到MySQL的安装目录 将data删除 注意该文件下会有一些你自己建立的数据库的数据 2 然后复制bin文件的路径 3 从开始里搜索cmd 右键以管理员身份运行 否则会出如下错误Install Remove of the Se
  • 计算机竞赛 深度学习 YOLO 实现车牌识别算法

    文章目录 0 前言 1 课题介绍 2 算法简介 2 1网络架构 3 数据准备 4 模型训练 5 实现效果 5 1 图片识别效果 5 2视频识别效果 6 部分关键代码 7 最后 0 前言 优质竞赛项目系列 今天要分享的是 基于yolov5的深
  • pnpm安装报错npm ERR code EEXIST

    pnpm安装报错 C Users admin working gt npm install g pnpm C Program Files nodejs pnpm gt C Program Files nodejs node modules

随机推荐

  • 高效程序员工作法(一)

    目录 前言 一 高效程序员的思考框架 思考框架 四个思考原则 以终为始 任务分解 沟通反馈 自动化 一句话总结 二 以终为始 如何让你的努力不白费 一句话总结 三 DoD的价值 你完成了工作 为什么他们还不满意 一句话总结 四 接到需求任务
  • java中map的几种常用实现类

    java为数据结构中的映射定义了一个接口java util Map 他实现了四个类 分别是 HashMap HashTable LinkedHash MapTreeMap Map不允许键重复 但允许值重复 1 HashMap 最常用的Map
  • Hbase建表操作--shell语句

    一 介绍 HBase是一个分布式的 面向列的开源数据库 源于google的一篇论文 bigtable 一个结构化数据的分布式存储系统 HBase是Google Bigtable的开源实现 它利用Hadoop HDFS作为其文件存储系统 利用
  • 机器学习之聚类算法:K均值聚类(二、算法案例)

    一 简易数据集的Kmeans实现 数据下载 提取码 quu3 导入库并载入数据 import numpy as np import matplotlib pyplot as plt 载入数据 data np genfromtxt kmean
  • 使用遗传算法解决多变量函数优化问题!

    很多朋友在碰到多变量值优化的问题的时候不能很好的将问题转化 利用有效编码的方法将解的个数 解的编码很好的很合理的进行设计 因此不能利用遗传算法进行问题的求解 其实 简单的来说 就是将多个变量的数值编码编排进去 进行组合 只需要增长基因个体的
  • python 如何合并多个dict

    a a 1 b 1 b a 2 b 2 c c 3 result dict tmp str result result update a print update format tmp a result tmp str result res
  • 06.网页布局

    布局方式 1 固定宽度布局 为网页设置一个固定的宽度 通常以px做为长度单位 常见于PC端网页 2 流式布局 为网页设置一个相对的宽度 通常以百分比做为长度单位 3 栅格化布局 将网页宽度人为的划分成均等的长度 然后排版布局时则以这些均等的
  • Qt中动态增加或移除QButtonGroup(按钮组)中指定子button(按钮)

    首先从QButtonGroup移除全局子button比较容易 直接remove就行 但是如果我们是动态往QButtonGroup中移除指定的子button 则相对比较麻烦 动态往QButtonGroup中增加子button QButtonG
  • zlib包的下载

    zlib包下载地址 http www zlib net 这里注意很多帖子都是直接给了具体的连接 比如 wget http www zlib net zlib 1 2 8 tar gz 然后 所以 这里不宜生搬硬套 直接去官网上看 源码地址
  • SpringBoot整合Zookeeper做分布式锁

    环境准备 zookeeper准备 首先你需要一个zookeeper服务器 或者是一个zookeeper集群 我已经准备好了一个zookeeper集群 如图 当然一个单节点的zookeeper也可以搭建分布式锁 如果你还没有zookeeper
  • cocos compile命令指定Android项目目录

    cocos2d x 3 5 创建项目 会自动添加几个平台的目录 例如 proj android proj ios 编译时执行命令 cocos compile p android s my project m debug 编译命令指定平台为
  • vue实现登录界面

    使用Vue实现简单的用户登录界面 登录成功以后查询账号用户类型进行相应的页面路由跳转 效果如下图所示 HTML部分
  • 如何让Vscode的鼠标滚轮滑动加上ctrl键可以调整字体大小?什么是setting.json?

    打开Vscode 按照以下步骤操作 文件 gt 首选项 gt 设置 gt 文本编辑器 gt 字体 gt 进入setting json中编辑 在setting json中加入代码 editor mouseWheelZoom true 如果你把
  • 计算机网络基础(十四)---传输层-UDP协议详解

    文章内容概览 UDP协议简介 UDP User Datagram Protocol 用户数据报协议 UDP相对于TCP来说 是一个非常简单的协议 数据报 指的就是应用层所传输过来的一个完整的数据 UDP不会对这个完整的数据进行处理 不会进行
  • 图生图—AI图片生成Stable Diffusion参数及使用方式详细介绍

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 Python从零开始进行AIGC大模型训练与推理 系列文章 地址为 https blog csdn net suiyingy article details 130169592 Stab
  • Xshell和Xftp的安装与使用教程

    软件安装环境 windows7 64 下载最新软件官方地址 http www netsarang com download main html 一 下载步骤 1 点击相应要下载软件的链接 2 点击下面链接中的任意一个 3 如图 4 查收对方
  • VirtualBox Pwn x64 ubuntu 22.04

    链接 https pan baidu com s 1zab8YHwnULmEXjYaD ERfw pwd 9999 提取码 9999
  • 计算机程序的构造和解释习题3.33

    计算机程序的构造和解释习题3 33 SICP Exercise 3 33 This is similar as the celsius fahrenheit converter procedure plain view plaincopy
  • 解决u盘中病毒后如何文件被隐藏的问题

    优盘往实验室的打印机电脑上查了一插 结果就中了病毒 原来优盘里面的文件全部不可见 一开始我以为只是隐藏了 所以我就打开优盘以后更改设置 显示隐藏文件和隐藏文件夹 结果仍然不可见 也试过了网上的写脚本 无果 后来突然灵机一动 找到了解决方法
  • sklearn函数汇总

    Python笔记 sklearn函数汇总 Summer Memories 关注他 28 人 赞同了该文章 1 拆分数据集为训练集和测试集 from sklearn model selection import train test spli