自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NT的博客

记录学习点滴,学无止境、同上高楼

  • 博客(131)
  • 资源 (2)
  • 收藏
  • 关注

原创 NVIDIA驱动重装经历

ps:训练模型时xgb的GPU不支持了,报系统错误。一顿神操作,nvidia-smi突然不能用了,(手动狗头)查看原因。。。尼玛有两个版本nvidia-driver互相冲突,不知道为嘛它自己就给更新了嘛。。驱动报废,GPU也用不了,模型训练CPU不给力,心塞。那就驱动卸载,卸不干净,新的也装不上,凉凉。。在我考虑把GPU环境弄进docker里怎么操作的时候发现神预言blog,完美解决我的问题。奉上链接:https://blog.csdn.net/physuleo/article/details/9749

2021-08-05 11:59:24 1321

原创 GPU加速你的xgboost、lightgbm

lightgbmpip install lightgbm --install-option=–gpu新增传入参数: ‘device’ : ‘gpu’, ‘gpu_platform_id’:0,  ‘gpu_device_id’:0xgboost:pypi.org downloadpip install xgboost.whl新增传入参数: ‘gpu_id’:0,  ‘tree_method’:‘gpu_hist’...

2021-08-05 11:56:52 856

原创 Catboost参数

CatBoost是一种基于对称决策树(oblivious trees)为基学习器实现的参数较少、支持类别型变量和高准确性的GBDT框架,主要解决的痛点是高效合理地处理类别型特征,这一点从它的名字中可以看出来,CatBoost是由Categorical和Boosting组成。此外,CatBoost还解决了梯度偏差(Gradient Bias)以及预测偏移(Prediction shift)的问题,从而减少过拟合的发生,进而提高算法的准确性和泛化能力。与XGBoost、LightGBM相比,CatBoost的

2021-08-05 11:55:55 2231

原创 LightGBM参数

参考:https://www.freesion.com/article/76441004344/#LightGBM__sklearn__329https://blog.csdn.net/qq_39777550/article/details/109277937LightGBM的优点lightgbm是xgboost的加强升级版.LightGBM=XGBoost+Histogram+GOSS+EFB其中,Histogram算法是直方图算法,作用:减少后选分类点的算法GOSS是基于梯度的单边采样算法

2021-08-05 11:54:36 6083

原创 xgboost的参数

class XGBClassifier(XGBModel, XGBClassifierBase):class XGBRegressor(XGBModel, XGBRegressorBase):class XGBModel(XGBModelBase):    # pylint: disable=too-many-arguments, too-many-instance-attributes, missing-docstring    def init(self,

2021-08-05 11:53:36 937

原创 Ubuntu20.04 LTS CUDA安装、TF-GPU、Torch-GPU

CUDA 卸载没有 uninstall卸载办法# 用 runfile 方式安装的删除方法:sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl# 用 package manager 方式安装的删除方法:sudo apt-get --purge remove cuda-8.0sudo apt autoremovesudo apt-get autoclean# cudnn文件和samples残留在 /usr/local/cuda-8.0/,删除

2021-08-05 11:51:42 314

原创 模型调参-hyperopt

XGB + hyperopt 优化参数# 初始化空间space = { "max_depth": hp.choice("max_depth", [4, 5, 6, 7, 8, 9, 10]), "gamma": hp.uniform("gamma", 1, 9), "reg_alpha": hp.quniform('reg_alpha', 40, 180, 1), "reg_lambda": hp.uniform("reg_lambda", 0, 1), "sub

2021-08-05 11:49:54 415 1

翻译 FM & FFM算法解读与实践

FM & FFM算法解读与实践在推荐系统和计算广告业务中,点击率CTR(click-through rate)和转化率CVR(conversion rate)是衡量流量转化的两个关键指标。准确的估计CTR、CVR对于提高流量的价值,增加广告及电商收入有重要的指导作用。业界常用的方法有人工特征工程 + LR(Logistic Regression)、GBDT(Gradient Boosting Decision Tree) + LR、FM模型。在这些模型中,FM近年来表现突出。因子分解机(Fact

2020-12-24 17:30:12 488 1

原创 AUC计算公式推导

AUC计算公式推导基本公式推算基本排名的公式推算2.详解如何计算AUC?计算AUC时,推荐2个方法。方法一:在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。,其中, 这样说可能有点抽象,我举一个例子便能够明白。IDlabelproA00.1B00.4C10.35D10.8假设有4条样本。2个正样本,2个负样本,那么

2020-12-24 17:16:18 3660 1

翻译 Pandas 数据分析 实用小技巧(四)

Pandas 数据分析 实用小技巧(四)16 melt透视数据小技巧melt 方法固定某列为一个维度,组合其他列名为另一个维度,实现宽表融化为长表:zip_code factory warehouse retail0 12345 100 200 11 56789 400 300 22 101112 500 400 33 131415 600

2020-12-24 17:06:38 218 1

翻译 Pandas 数据分析 实用小技巧(三)

Pandas 数据分析 实用小技巧(三)小技巧 10:如何快速拿到数据最多的 3 个分类?读入数据:df = pd.read_csv("IMDB-Movie-Data.csv")df1000 行数据,genre 取值的频次统计如下:vc = df["genre"].value_counts()vc筛选出 top3 的 index:top_genre = vc[0:3].indexprint(top_genre)打印结果:Index(['Action,Adventure,Sci

2020-12-24 17:04:53 283 1

翻译 Pandas 数据分析 实用小技巧(二)

Pandas 数据分析 实用小技巧(二)小技巧6:如何快速找出 DataFrame 所有列 null 值个数?实际使用的数据,null 值在所难免。如何快速找出 DataFrame 所有列的 null 值个数?使用 Pandas 能非常方便实现,只需下面一行代码:data.isnull().sum()data.isnull(): 逐行逐元素查找元素值是否为 null..sum(): 默认在 axis 为 0 上完成一次 reduce 求和。读取泰坦尼克预测生死的数据集data = pd.rea

2020-12-24 17:01:45 255 1

翻译 Pandas 数据分析 实用小技巧(一)

Pandas 数据分析 实用小技巧(一)小技巧1:如何使用map对某些列做特征工程?先生成数据:d = {"gender":["male", "female", "male","female"],"color":["red", "green", "blue","green"],"age":[25, 30, 15, 32]}df = pd.DataFrame(d)df ![](https://cdn.nlark.com/yuque/0/2020/png/1501787/16066

2020-12-24 16:52:39 193 2

转载 itertools的使用详解

1.无穷的迭代器1.1 count(start,[step]) count()接受两个参数start:循环开始的数字 step:循环中的间隔from itertools import countc = count(0, 2)v = next(c)while v < 10: v = next(c) print(v, end=',') # 2,4,6,8,10,1.2 cycle()cycle就是一while True,无限循环里面的数字。from

2020-12-24 16:33:06 966 1

转载 机器学习数学基础:随机事件与随机变量

机器学习数学基础:随机事件与随机变量所谓机器学习和深度学习, 背后的逻辑都是数学, 所以数学基础在这个领域非常关键, 而统计学又是重中之重, 机器学习从某种意义上来说就是一种统计学习。这次借着在Datawhale组织的概率统计专题学习的机会再重新温习一遍数学基础,非常感谢组织的这次学习机会。这一版块是整理概率统计的相关内容, 具体知识点参考了Datawhale的开源教程概率统计, 这次又是站在了大佬的肩膀上前行, 同时对其中的重点知识进行整理和补充, 然后进行了必要的代码实现。今天是概率统计基础的第一

2020-11-16 23:37:26 1463

转载 机器学习数学基础:常见分布与假设检验

机器学习数学基础:常见分布与假设检验所谓机器学习和深度学习, 背后的逻辑都是数学, 所以数学基础在这个领域非常关键, 而统计学又是重中之重, 机器学习从某种意义上来说就是一种统计学习。这次是学习概率统计的第三篇文章, 基于前两篇文章进行展开。在第一篇文章的概率论基础学习了离散型随机变量和连续型随机变量及其分布,本篇将继续会学习七种机器学习领域中常见的数据分布。而这篇文章的第二部分假设检验, 属于第二篇数理统计的内容, 假设检验是统计推断中的一类重要问题,在总体的分布函数完全未知或只知其形式,不知其参数

2020-11-16 23:35:04 1263

转载 机器学习数学基础:数理统计与描述性统计

所谓机器学习和深度学习, 背后的逻辑都是数学, 所以数学基础在这个领域非常关键, 而统计学又是重中之重, 机器学习从某种意义上来说就是一种统计学习。今天是概率统计基础的第二篇文章, 基于第一篇随机变量与随机事件进行整理, 首先理一理这里面的逻辑,第一篇的内容蕴涵了大部分概率论的知识(除了大数定律和中心极限定理这种理论性的支持, 后期有机会会补上)。而今天的这篇内容是在概率论的基础上往前一步, 属于数理统计的内容。概率论中, 我们研究随机现象, 随机变量, 但是我们是假设它们的分布已知, 比如已知某一

2020-11-16 21:51:18 1559

转载 python 实现二叉树和七种遍历方法

树的遍历主要有两种,一种是深度优先遍历,像前序、中序、后序;另一种是广度优先遍历,像层次遍历。在树结构中两者的区别还不是非常明显,但从树扩展到有向图,到无向图的时候,深度优先搜索和广度优先搜索的效率和作用还是有很大不同的。深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。Python实现功能:树的构造 递归实现先序遍历、中序遍历、后序遍历 堆栈实现先序遍历、中序遍历、后序遍历 队列实现层次遍历 class Node(obj...

2020-11-04 21:55:04 224

翻译 迭代器

迭代器指的就是支持迭代的容器,更确切的说,是支持迭代的容器类对象,这里的容器可以是列表、元组等这些Python提供的基础容器class listDemo: def __init__(self): self.__date=[] self.__step = 0 def __next__(self): if self.__step <= 0: raise StopIteration self...

2020-11-04 21:51:38 169

翻译 深入思考协程-Python

定义:协程,微线程。是允许在不同入口点不同位置暂停或开始的计算机程序,简单来说,协程就是可以暂停执行的函数。原理:记录一个函数的上下文,协程调度切换时会将记录的上下文保存,在切换回来时进行调取,恢复原有的执行内容,以便从上一次执行位置继续执行。协程本质上就是一个线程,以前多线程任务的切换是由操作系统控制的,遇到I/O阻塞就自动切换,现在我们用协程的目的就是较少操作系统切换的开销(开关线程,创建寄存器、堆栈等,在他们之间进行切换等),在我们自己的程序(应用层面)里面来控制任务的切换。对于单线程下,

2020-11-04 21:49:32 197

原创 按列表元素长度排序

s = ["a",'asd', 'wvvwvewv', 'yrt', 'ab']b = sorted(s, key=lambda x:len(x))print(b, s) # sorted 有返回值,不该表s原列表s.sort()print(s) # sort无返回值,直接修改自身>>> ['a', 'ab', 'asd', 'yrt', 'wvvwvewv'] ['a', 'asd', 'wvvwvewv', 'yrt', 'ab']>>> ['a',.

2020-11-04 21:44:44 1949

翻译 字符串和base64 转换

import base64strInput="zgxhcgjvx3547687tghv%^&"bs=str(base64.b64encode(strInput.encode('utf-8')), "utf-8")print('转码:'+bs)print('解码:'+str(base64.b64decode(bs), "utf-8"))

2020-11-04 21:43:01 706

原创 三大高阶函数(map,reduce,filter)

filter() 语法: filter(function, iterable) filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的迭代器对象。filter()函数接收一个函数f和一个list, 这个函数f的作用是对每个元素进行判断,返回True或Falsefilter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list迭代对象import mathdef is_sqr(x): return math.sqrt(x) % 1

2020-11-04 21:41:10 889

转载 Python元类

在Python当中万物皆对象,我们用class关键字定义的类本身也是一个对象,负责产生该对象的类称之为元类,元类可以简称为类的类,元类的主要目的是为了控制类的创建行为.type是Python的一个内建元类,用来直接控制生成类,在python当中任何class定义的类其实都是type类实例化的结果。只有继承了type类才能称之为一个元类,否则就是一个普通的自定义类,自定义元类可以控制类的产生过程,类的产生过程其实就是元类的调用过程.一个类由三大组成部分,分别是1、类名class_na.

2020-11-04 21:38:34 169

翻译 单例模式 python

每次实例化出来一个对象, 就会在内存中重新分配一块空间, 而今天介绍的单例模式, 就是为了解决上述问题, 使得由一个类对象所实例化出来的全部对象都指向同一块内存空间class A: passa = A()print('a对象所在的内存地址是 %d, A类所在的内存地址是 %d' % (id(a), id(A)))b = A()print('b对象所在的内存地址是 %d, A类所在的内存地址是 %d' % (id(b), id(A)))c = A()print('c对象所在的内存地

2020-11-04 21:35:44 157

原创 __new__ 和 __init__区别

__new__()用于创建实例,而__init__()则负责初始化实例__new__方法:类级别的方法 、 __init__方法:实例级别的方法1、__new__ 至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别2、__new__ 必须要有返回值,返回实例化出来的实例,可以return 父类__new__出来的实例 或者直接是object的__new__出来的实例3、__int__有一个参数self,就是这个__new__返回的实例, __init__在__.

2020-11-04 21:31:12 1119

原创 Kafka生产者之Sender分析

基于kafka2.x 版本生产者局部架构图Sender线程run()步骤:场景驱动方式cluster中已有元数据1、获取元数据2、判断哪些partitinon有消息要发送,获取分区号对应的broker主机3、标志还没有拉取到元数据的topic4、检查与要发送数据的主机网络是否建立好5、有可能要发送的parttition有多个,有一些parttition的leader partition在同一台服务器上。按照broker进行分区,同一个broker的partition.

2020-10-12 15:49:27 854

转载 Kafka基础架构图

Producer :消息生产者,就是向 kafka broker 发消息的客户端; Consumer :消息消费者,向 kafka broker 取消息的客户端; Consumer Group (CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。 Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broke..

2020-10-12 15:48:01 278

翻译 kafka生产者之内存池设计

一个消息被分区以后,消息就会被放到一个缓存里面,我们看一下里面具体的细节。默认缓存块的大小是 32M,这个缓存块里面有一个重要的数据结构:batches,这个数据结构是 key-value 的结果,key 就是消息主题的分区,value 是一个队列,里面存的是发送到对应分区的批次,Sender 线程就是把这些批次发送到服务端01 生产者高级设计之自定义数据结构生产者把批次信息用 batches 这个对象进行存储。Kafka 这儿采取的方式是自定义了一个数据结构:CopyOnWriteMap。

2020-10-12 15:46:48 720

原创 kafka问题总结、面试点

为什么要用 Kafka 集群?kafka 如何不消费重复数据?不用 zk,怎么管理集群元数据信息?Offeset 极限是多少?过了极限又是多少?Kafka的offset是Long型,如果累积到了最大值(Long.MAX_VALUE),那么再加1的话就会立即变成Long.MIN_VALUE如何实现 exactly once?一、Kafka 三种语义在分布式系统中,构成系统的任何节点都是被定义为可以彼此独立失败的。比如在 Kafka 中,broker 可能会 crash,在 producer 推送数

2020-10-12 15:44:27 308

原创 go redis 连接池

package mainimport ( "fmt" red "github.com/gomodule/redigo/redis" "time")type Redis struct { pool *red.Pool}var redis *Redisfunc initRedis() { redis = new(Redis) redis.pool = &red.Pool{ MaxIdle: 256, .

2020-07-28 15:53:49 212

原创 go mysql连接池

package mainimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")func query_columns(db *sql.DB){ //查询数据,指定字段名,返回sql.Rows结果集 rows, err := db.Query("select ip,port from Ipport limit 20") if err != nil { fmt.Pri.

2020-07-28 15:52:16 337

原创 gomod 模式,解决引入pkg下第三方包飘红

go版本1.14.4 goland 2019.3首先解决一个理解误区,第三方包下载到src目录下不是gomod模式,哪种方式属于go老版本包管理方式了,不再赘述。gomod包管理方式,第三方包是下载到pkg/mod 目录下。还有go 1.12 之后安装完不用再配置环境变量了第三方包引入方式如以前一样,多数新手迫不及待 go get 一个包,此时引入包会报红,以下是我的解决办法使用gomod1、Gopath=/user/gospace/prjpath # 项目路径2、cd ...

2020-07-28 15:49:46 6522

转载 B树、B-树、B+树、B*树图文详解

B树B树又叫做二叉搜索树,倒状的树形结构。如下图所示特点: 所有的非子夜节点最多拥有两个子节点树(左子树和右子树)。 所有结点存储一个关键字。 节点的左右儿子,左边是比该节点小的,右边是比该节点大的。 缺点:因为二叉搜索树不存在平衡算法,所以在某些特殊的情况下,二叉搜索树等同于线性,出现蹩脚的情况,设计者们发现降低树的高度自然就可以提高查找效率。那么如何解决降低树的高度的问题?在这种基础上设计者给二叉树加入了平衡算法,出现了平衡树。二叉树搜索树的.

2020-06-27 13:22:17 2030 2

转载 Redis缓存三大问题

Redis技术就是NoSQL技术中的一种。Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存击穿和缓存雪崩。本篇文章从实际代码操作,来提出解决这三个缓存问题的方案,毕竟Redis的缓存问题是实际面试中高频问点,理论和实操要兼得。缓存穿透缓存穿透是指查询一条数据库和缓存都没有的一条数据

2020-06-27 13:15:22 1056

转载 Redis五种数据结构详解

前言Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库、缓存、消息中间件,这么优秀的东西一定要一点一点的吃透它。话不多说,我们直接进入主题,很多人都知道Redis的五种数据结构包括以下五种:String:字符串类型 List:列表类型 Set:无序集合类型 ZSet:有序集合类型 Hash:哈希表类型但是作为一名优秀的程序员可能不能只停留在只会用这五种类型进行crud工作,还是得深入了解这五种数据结构的底层原理。Redis核心对象在Redis中有一个「核心的..

2020-06-27 13:04:53 1848 1

转载 InnoDB 一棵 B+ 树可以存放多少行数据

InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是4k,而对于我们的InnoDB存储引擎也有自己的最小储存单元——页(Page),一个页的大小是1

2020-06-27 12:33:01 283

原创 shell命令文件合并、去重

1、 两个文件的交集、并集(1)、取出两个文件的并集(重复的行只保留一份)cat file1 file2 | sort | uniq > file3(2)、取出两个文件的交集(只留下同时存在于两个文件中的文件)cat file1 file2 | sort | uniq -d > file3(3)、 删除交集,留下其他的行cat file1 file2 | sort | uniq -u > file32、一个文件去掉重复的行(1)、 重复的多...

2020-06-22 16:54:40 1323

原创 Python 异步HTTP

async def post_httpresp(param): with async_timeout.timeout(1.0): async with aiohttp.ClientSession() as session: try: async with session.post(searchurl, json=param) as resposne: res = await respos.

2020-06-17 16:47:04 732

原创 Python 操作Mongo 增删改查

import pymongomongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/").nga# 写入一条 db.collection.insert_one({})mongo.ttt.insert_one({"_id": 1234, "users": "[1111,2222,33,4555]"})# 写入多条 db.collection.insert_many([{},{}...])mongo.ttt.insert_many([{"_.

2020-06-17 16:43:48 353

五子棋代码

可以运行的Java小游戏,联系一下Java技能,还能向小伙伴们秀一下棋艺。

2015-12-07

有关数组的一点个人笔记

主要是初学Java的一点笔记代码,还有Java经典小题的题及答案,内容详细,适合Java初学者练习参考。

2015-12-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除