- 博客(39)
- 收藏
- 关注
原创 CART回归树
2、针对集合S,遍历每一个feature的每一个value,用该value将原数据集S分裂成2个集合:左集合S_left(<=value的样本)、右集合S_right(>value的样本),每一个集合也叫做一个结点。3、找到最佳分割feature以及最佳分割value之后,用该value将集合S分裂成2个集合:左集合S_left、右集合S_right,每一个集合也叫做一个结点。(ps:这个mean就是该结点的值,也就是落在该结点内的样本的预测值,同一个结点中的样本具有同一个预测值。
2023-12-01 10:49:51
79
原创 CART分类树原理
在计算出来的各个特征的各个值的基尼系数中,选择基尼系数最小的特征A及其对应的取值a作为最优特征和最优切分点。然后根据最优特征和最优切分点,将本节点的数据集划分成两部分 和 ,同时生成当前节点的两个子节点,左节点的数据集和右节点的数据集。m个样本的连续特征A有m个值,从小到大排列 ,则CART取相邻两样本值的平均数做划分点,一共有m-1个;CART分类树算法使用基尼系数选择特征,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。输入:训练集D,基尼系数的阈值,切分的最少样本个数阈值。
2023-12-01 10:23:28
89
原创 RocketMQ发送消息的三种方式
1.rocketQM有三种发送方式:同步发送:等待返回结果异步发送:立即返回,使用回调函数一次性发送:只发送一次,不关心发送结果2.DefaultMQProducer同步发送DefaultMQProducer.send(msg);public SendResult send(msg,CommunicationMode.SYNC,(SendCallback)null,timeout);2.DefaultMQProducer异步发送DefaultMQProudcer.send(msg,send
2022-05-27 11:24:41
2280
原创 rocketMQ producer的异步发送
1.异步发送的回调函数producer.send(msg,new SendCallback(){ @Override public void onSuccess(SendResult sendResult){ } @Override public void onException(Throwable e){ }});2.消息发送成功 sendMessageAsyncsendResult = MQClientAPIImpl.this.processSendResponse(b
2022-05-27 10:54:45
595
原创 HIVE SQL 按照某字段先分区,分区内部排序,再取内部的第一条数据
with tmp as (select *,ROW_NUMBER() OVER (PARTITION BY name ORDER BY level1,level2) as num from table )select * from tmp where num=1
2022-02-24 20:03:52
1270
原创 python partial函数
partial的**kwargs应用场景:def a(x,**kwargs): print(x) print(kwargs.get("a"))from functools import partialdef hi(x,**kwargs): aa = partial(a,**kwargs) aa(x)调用hi("7",a="ok")
2021-12-28 18:36:39
233
原创 如何在SQL中将某个算出来的值平摊到每一行中使用
构造一个关联字段,使用left join,例如求出总和,再求占比:with a as (select name,count(1) as c,1 as j from t1 group by name),b as (select count(1) as c,1 as j from t1)select a.name,a.c as cn,b.c as total,(100*a.c/b.c) from a left join b on a.j=b.j...
2021-07-12 20:08:10
675
原创 java调用PMML模型文件
生成模型from sklearn2pmml import PMMLPipelinefrom sklearn.datasets import load_irisfrom sklearn import treeiris = load_iris()clf = tree.DecisionTreeClassifier()pipeline = PMMLPipeline([("classifier", clf)])pipeline.fit(iris.data, iris.target)print(ir
2021-06-09 17:35:58
2014
原创 IDEA控制台乱码问题
IDEA文本为UTF-8编码格式,中文不乱码,但控制台乱码,解决方式:HELP->Edit Custom VM OPtions中加 -Dfile.encoding=utf-8重启idea
2021-05-21 16:17:44
83
原创 LoggerFactory.getLogger的用法
Logger类下有多个不同的error方法,根据传入参数的个数及类型的不同,自动选择不同的重载方法。使用+,只打印异常,不打印堆栈信息private static final Logger logger = LoggerFactory.getLogger(LoggerTest.class); @Test public void logEorrorTest(){ try { int a=0; int c = 5/a;
2021-05-21 11:28:34
1068
原创 写文件数据逻辑
//创建文件夹String rootPath = "path";String dirPath = new StringBuilder(rootPath).append(File.separator).append("yyyyMMdd").toString();File root = new File(rootPath);if (!root.exists()) { root.mkdir();}File dir = new File(dirPath);if (!dir.exists()) {
2021-02-26 17:10:50
105
原创 python matplotlib 系列
折线图# 正弦函数x = np.linspace(0,10,100)y = sin(x)plt.plot(x,y,label='正弦函数')plt.legend() #显示标签
2021-02-25 09:52:28
78
原创 SQL case when 结合group by的应用方式
WITH c_temp AS (SELECT avg(CASE WHEN d<'20201102' THEN cnt ELSE 0 END) AS avg_7, sum(CASE WHEN d='20201102' THEN cnt ELSE 0 END) AS pv,
2020-11-03 18:58:40
1573
原创 鸢尾花数据集-数据分析
from sklearn import datasetsimport pandas as pdimport matplotlib.pyplot as pltimport numpy as np# 获取鸢尾花数据集lris_df = datasets.load_iris()# 输入特征lris_df.data# 目标特征lris_df.targetdata_DF = pd.DataFrame(lris_df.data)target_DF = pd.DataFrame(lris_d
2020-10-16 18:21:41
1497
1
原创 特征工程之OneHot独热编码
如果有离散特征,如[‘Arsenal’,‘ManCity’,‘Liverpool’],将它们转换为数字表示更好[0,1,2]即使转化为数字表示后,上述数据也不能直接用在很多的分类器中。因为,分类器数据往往是连续的、有序的。但是,按照我们上述的表示,数字并不是有序的,而是随机分配的。使用OneHot就可以解决此类问题其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。例如拥有六个状态的属性独热编码为:000001,000010,000100
2020-10-12 10:57:47
403
原创 数据处理之缺失值填充-Python实现
import pandas as pdimport numpy as nptest_dict = {'id':[1,2,3,4,5,6], 'counts':[1,2,None,1,4,5], 'amounts':[54,49,None,52,None,50] }test_df = pd.DataFrame(test_dict)#指定值填充test_df['counts'] = test_df['counts'].fillna(12)#均值填充
2020-10-10 18:19:20
579
原创 数据处理之标准化-python代码示例
本文使用python实现max-max和z-score两种标准化方法import pandas as pdimport numpy as nptest_dict = {'id':[1,2,3,4,5,6], 'num':[1,2,1,1,4,5], 'total':[54,49,51,52,51,50] }test_df = pd.DataFrame(test_dict)# min-max标准化归一方法def minMaxScale(data):
2020-10-10 17:23:28
3354
原创 数据分析方法归结
数据管理输入 — 文件输入、HIVE表输入、kafka输入、关系数据库输入等输出 — 文件输出、HIVE表输出、kafka输出、关系数据库输出等数据处理行 — 数据过滤、随机抽样、数据不平衡处理列 — 设置角色、重命名、属性过滤、缺失值删除、随机数/ID生成、缺失值填充、属性类型变换高级 — 数据标准化、分类汇总、RFM、异常值检测数据融合数据连接、数据追加、数据拆分特征工程数据交叉、属性生成、特征编码、主成分分析、因子分析、分箱、变量选择、高级特征交叉、WOE编码、
2020-10-10 14:26:28
186
原创 数据处理之随机抽样-Python实现
有时候我们只需要数据集中的一部分,并不需要全部的数据。这个时候我们就要对数据集进行随机的抽样。随机抽样,是指随机从数据中,按照一定的行数或者比例抽取数据。 python代码示例import numpy as npimport pandas as pdtest_dict = {'id':[1,2,3,4,5,6], 'name':['Alice','Bob','Kaka','Raul','Fabregas','Grace'] }test_df = pd.DataFr.
2020-10-09 18:27:56
1962
原创 ES匹配查询
作为经典的文档检索数据库,ElasticSearch提供了丰富的接口来搜索数据,满足用户不同的搜索需求。我们的系统为了支持实时字段明细查询功能,会将数据实时写入ES。整个系统数据量较多且维度丰富,每天写入的文档数据达到10多亿条,单个最大索引存储达到2T以上,除了满足业务的查询功能需求之外,数据的时效性以及存储空间都是系统必须优化考虑的问题。本文对ES中一些常用的匹配查询方式原理及其在业务系统中的使用场景进行介绍。匹配查询ElasticSearch官方对文本查询介绍了两种方式:基于词项和基于全文的查询。
2020-09-28 09:13:54
3958
原创 Hive LEAD() LAG() 函数与partition by order by的结合
LAG() 表示当前行向上取, LEAD() 表示当前行向下取以LAG为例:LAG (scalar_expression [,offset] [,default]) OVER ( [ partition_by_clause ] order_by_clause ) 使用partition by和order by让数据先排好序,排好序以后使用LAG函数来对上序行取数。LAG第一个参数表示取上行的字段名,第二个字段表示取向上第几行,第三个参数表示值为空时的默认值(若同一个parition
2020-09-27 17:09:50
977
原创 python中文关键词提取
from pyspark.conf import SparkConffrom pyspark.sql import SparkSessionimport numpy as npimport pandas as pdfrom datetime import datetimefrom datetime import datefrom datetime import timedeltafrom gensim import corpora,models,similaritiesfrom collec
2020-09-27 16:49:38
528
原创 Hive将时间格式转为时间戳函数
SELECT unix_timestamp(substr(time,1,19),‘yyyy-MM-dd HH:mm:ss’)*1000+substr(time,21,3),write_time from tableA原始时间格式:2020-09-15 10:35:33:841转换后时间戳:1600137333841
2020-09-18 14:50:55
1271
原创 pandas报错:A value is trying to be set on a copy of a slice from a DataFrame 解决方案
pandas使用索引+列名修改元素值报错:df.loc[0]['keywords']='key'A value is trying to be set on a copy of a slice from a DataFrame解决办法:使用 DafaFrameming.loc[索引,列名]=‘value’ 的方式处理:df.loc[0,'keywords']='key'...
2020-09-02 11:27:20
1349
2
原创 HIVE SQL按照字符位置截取
需求:判断某个字符或字符串在字段中的位置,再根据位置开始截取instr函数:instr(string str,string substr) 返回字符串substr在str中首次出现的位置,若不出现则为0substr函数:substr(string A,int start) 字符串A从start位置到结尾的字符串substr(string A,int start,int len) 字符串A从start位置开始,长度为len的字符串SELECT CASE WHEN in
2020-08-13 14:56:01
6040
原创 Flink的ParameterTool
Flink提供一个ParameterTool工具类获取参数,提供fromArgs、fromPropertiesFile、fromMap、fromSystemProperties的方式fromArgs从main入参中获取fromPropertiesFile从文件中获取fromMap从map中获取fromSystemProperties从系统参数中获取...
2020-08-11 10:42:11
1226
原创 用户频繁路径更新
package demoimport java.text.SimpleDateFormatimport java.util.ArrayListimport java.util.Calendarimport scala.collection.JavaConversions._import org.apache.spark.sql.{DataFrame, SparkSession}import scala.collection.mutable.ArrayBufferimport scala.u
2020-07-22 17:27:09
114
原创 使用HIVE SQL将多行数据按照指定字段为key排序
使用到的函数lpad(string str, int len, pad):返回值:string,说明:将str进行用pad进行左补到len位如:hive> select lpad(‘abc’,10,‘td’) from lxw1234;tdtdtdtabcover(partition by class order by sroce):按照sroce排序进行累计,order by是个默认的开窗函数,按照class分区。row_number 与over结合使用cast:类型转换co
2020-06-10 19:30:04
2226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人