python
yisun123456
大数据开发、个性化推荐
展开
-
pyspark 使用函数regexp_replace 替换竖线|
pyspark 使用函数regexp_replace 替换竖线|原创 2023-01-30 16:38:15 · 601 阅读 · 1 评论 -
基于Python版本的golang哈希编码
Python 和GO版本哈希hash编码。原创 2022-10-10 11:40:00 · 527 阅读 · 1 评论 -
pyspark dataframe分位数计算
pyspark dataframe分位数计算原创 2022-08-04 17:09:22 · 1768 阅读 · 2 评论 -
mac book pro m1安装xgboost
mac book pro m1安装xgboost原创 2022-06-07 12:40:18 · 519 阅读 · 0 评论 -
pyspark explode时增加序号
对于Spark2.4+,可以使用带高阶函数 transformation的explode。from pyspark.sql import functions as Fdemo.select('pois').withColumn("pois2", F.explode(F.expr("""transform(pois,(x,i)-> struct(x as poi,(i+1) as poi_rn))""")))\.select('pois2.*','pois').show(truncate=Fa原创 2022-05-20 15:40:29 · 558 阅读 · 0 评论 -
python dataframe计算日期对应的周数或者星期几
import pandas as pdimport datetimea=['20211001','20211002','20211003','20211003','20211004']df=pd.DataFrame(a,columns=['t'])df['t2'] = pd.to_datetime(df['t'])df['day_of_week'] = pd.to_datetime(df['t']).dt.weekdf['week'] = df['t2'].dt.weekdaydf['wee.原创 2021-11-17 15:52:30 · 5894 阅读 · 1 评论 -
模型训练的auc和loss比较问题
AUC 反应的是正样本在负样本前面的概率问题,AUC越大,说明正样本更靠前。LOSS 反应的是真实值与预测值之前的差值,就是损失,LOSS越小,说明预测值越接近于真实值。在二分类问题中,LOSS越小,说明预测的样本预测值两极占比高(负样本更接近0,正样本更接近1)例如:两个模型A B,一个auc高一些,但log也大一些。另一个auc低,但log也低。A模型AUC高,说明它在判断哪个更好的方面,有着更好的表现,但是可能它比较“保守”,预估分都接近于正负样本的比例值(比如ctr=0.1,则预估分接近0原创 2021-11-04 12:23:29 · 3268 阅读 · 0 评论 -
Python 多线程读取多文件
# -*- coding:utf-8 -*-import pandas as pdimport osfrom concurrent.futures.thread import ThreadPoolExecutorfrom concurrent.futures._base import as_completeddef get_single_data(cur_path): return pd.read_csv(cur_path)def get_all_data(file_dir):.原创 2021-09-17 19:37:20 · 1995 阅读 · 0 评论 -
pyspark jieba 集群模型 对文本进行切词
如果是单个机器或者是local模式,简单的方式就是在节点上pip install jieba就完事了。但是在集群上肯定不能安装啊。怎么办呢??spark可以使用自己的镜像。比如本地有一个conda的envs的环境。可以将这个打包,在提交任务的时候可以分发到各个executor上。spark-submit \--name seg_tags \--queue root.niubi_queue\--deploy-mode cluster \--driver-memory 10g \-.原创 2021-09-09 16:47:26 · 375 阅读 · 0 评论 -
keras使用class weight和sample weight处理不平衡问题
在机器学习或者深度学习中,经常会遇到正负样本不平衡问题,尤其是广告、push等场景,正负样本严重不平衡。常规的就是上采样和下采样。这里介绍Keras中的两个参数class_weight和sample_weight1、class_weight 对训练集中的每个类别加一个权重,如果是大类别样本多那么可以设置低的权重,反之可以设置大的权重值2、sample_weight 对每个样本加权中,思路与上面类似。样本多的类别样本权重低例如 model.fit(class_weight={0:1.,1:原创 2021-08-03 14:38:40 · 2210 阅读 · 2 评论 -
smote 采样
对于正负样本严重不平衡的训练集,可以采用下面的办法进行采样# 使用sklearn的make_classification生成不平衡数据样本from sklearn.datasets import make_classification# 生成一组0和1比例为9比1的样本,X为特征,y为对应的标签X, y = make_classification(n_classes=2, class_sep=2, weights=[0.9, 0.1], n_i...原创 2021-07-23 12:30:19 · 1659 阅读 · 0 评论 -
mac python环境搭建
一、对于Mac 默认是pip3,为了方便,同时安装pip2,脚本是get-pip.py。然后执行相应的sudo python get-pip.py分别使用pip 和pip3因为是pycharm上切换的两个环境,所以在使用时分别进行下载安装包。二、对于报错ERROR: Command errored out with exit status 1:可以安装pandas和numpy,但是安装scipy和sklearn报错最终解决方式:pip install --upgrade原创 2021-07-07 18:56:33 · 303 阅读 · 0 评论 -
python 创建2维数组
对于初学者,python提供了方便的数组创建方式1.res=[[1] *3 ] *3[[1,1,1],[1,1,1],[1,1,1]]看起来没什么问题,但是这种方式的创建 实际上左边数组的3次复制(指针、地址) 在修改任意一个元素时,其他对应位置上的元素也会变动2.res=[[1] * 3 for i in range(3)] 这种方式 每个内部数组,会在新的迭代中新建,也就是说会开辟新的指针/地址。在任意修改一个元素时,只会作用当前元素。3.也可以使用np创建数组res=np.o.原创 2020-10-28 10:19:56 · 976 阅读 · 0 评论