Task_01

异常检测基本概念与方法1.比如基于模型方法的异常检测:异常检测是一种技术,一般首先建立一个数据模型,对于不能完美拟合或偏离模型非常远的数据很可能是异常的。2.高斯分布特点:高斯分布是自然界最常见的分布形态,用它来做异常检测是非常合适的模型。枪打出头鸟,那些分布在两端的小概率事件,要么好的出奇(右边),要么差得离谱(左边)。3.异常检测场景(补充): . 在工业制造。比如某个制造飞机引擎的公司,从飞机引擎提取出一系列的特征值,并且训练出一个模型。当新制造出来的引擎符合这个模型时,就可认为是良品,
摘要由CSDN通过智能技术生成

异常检测基本概念与方法

1.比如基于模型方法的异常检测:异常检测是一种技术,一般首先建立一个数据模型,对于不能完美拟合或偏离模型非常远的数据很可能是异常的。
2.高斯分布特点:高斯分布是自然界最常见的分布形态,用它来做异常检测是非常合适的模型。枪打出头鸟,那些分布在两端的小概率事件,要么好的出奇(右边),要么差得离谱(左边)。
3.异常检测场景(补充):
    . 在工业制造。比如某个制造飞机引擎的公司,从飞机引擎提取出一系列的特征值,并且训练出一个模型。当新制造出来的引擎符合这个模型时,就可认为是良品,如果偏离这个模型较远时,就可以认为可能有缺陷,需要进一步的检测。
    . 从一台服务器上提取出一系列特征,如内存占用,CPU 使用率,网络吞吐量,磁盘访问频率等等。利用这些特征建立一个模型。当某个服务器偏离这个模型较远时,可能这台机器快要死机了,就可以进一步查看这台机器的情况以便做出相应的处理。
    . 时间序列异常检测应用,同比,是指在相邻时段中的某一相同时间点进行比较。
    环比,是指在同一时段中的相邻时间点进行比较。对于时间序列(是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列)来说,T
    时刻的数值对于T−1
    时刻有很强的依赖性。比如流量在8:00很多,在8:01时刻的概率是很大的,但是如果07:01时刻对于8:01时刻影响不是很大。
    首先,我们可以使用最近时间窗口(T
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
帮我优化postgresql语句,如下:select source_name as "SOURCE_NAME",type_name as "TYPE_NAME",shift_date as "SHIFT_DATE",dd as "DD",task_title as "TASK_TITLE", task_content as "TASK_CONTENT",task_creator as "TASK_CREATOR",task_executor as "TASK_EXECUTOR",task_description as "TASK_DESCRIPTION", create_time as "CREATE_TIME",creatorid as "CREATORID",creatorname as "CREATORNAME",org_id as "ORG_ID",executorid as "EXECUTORID",executorname as "EXECUTORNAME", plan_start_time as "PLAN_START_TIME",plan_end_time as "PLAN_END_TIME",act_start_time as "ACT_SART_TIME",act_end_time as "ACT_END_TIME", gap_date as "GAP_DATE",task_status as "TASK_STATUS",1 as "TASK_QTY", (case when task_status='Finish' then '已结案' when task_status='Confirm'then '已结案' when gap_date>0 then '已逾期' --直播状态如下 --when gap_date>0 and gap_date<=1 then '已逾期' when gap_date>0.3 then '已结案' when gap_date<=0 and task_status='Going' then '进行中' when gap_date<=0 and task_status='Plan' then '计划中' end ) as "STATUS" -------union from ((select source_name,source_id,type_name,task_id,to_char(shift_date,'MM')||'月' as shift_date,task_title,task_content,task_status,task_creator, Plan_Start_Time,plan_end_time,act_start_time,(case when act_end_time is null then current_date else act_end_time end) as act_end_time, create_time,SUBSTR(TASK_EXECUTOR,1,8)AS TASK_EXECUTOR,'M'||TO_CHAR(SHIFT_DATE,'MM') as dd, round(date_part('epoch', (case when act_end_time is null then now() else act_end_time end) - plan_end_time))/60/60/24 as gap_date, TASK_DESCRIPTION from estone.r_est_task WHERE SITE = 'S01' --and to_char(shift_date,'yyyy')=to_char(current_date,'yyyy') --and extract(month from shift_date)>extract(month from current_date)-3 and shift_Date>to_date('20221031','yyyymmdd') ) union (select source_name,source_id,type_name,task_id,to_char(shift_date,'MM')||'月' as shift_date,task_title,task_content,task_status,task_creator, Plan_Start_Time,plan_end_time,act_start_time,(case when act_end_time is null then current_date else act_end_time end) as act_end_time, create_time,SUBSTR(TASK_EXECUTOR,1,8)AS TASK_EXECUTOR,'M'||TO_CHAR(SHIFT_DATE,'MM') as dd, round(date_part('epoch', (case when act_end_time is null then now() else act_end_time end) - create_time))/60/60/24 as gap_date, TASK_DESCRIPTION from estone.h_Est_Comp WHERE SITE = 'S01' and substr(pt_mfg_date,1,6)>=to_char(current_date-100,'yyyymm') --and to_number(substr(pt_mfg_date,5,2),'99G999D')>=extract(month from current_date)-3 --and to_char(shift_date,'yyyy')=to_char(current_date,'yyyy') --and extract(month from shift_date)>extract(month from current_date)-3 and shift_Date>to_date('20221031','yyyymmdd') ) )xx left join (select emp_no as CreatorID,emp_name as CreatorName from restricted.ausref_emp_data_ausz where substr(org_id,1,4)='MS01')yy on xx.task_creator = yy.CreatorID left join (select emp_no as ExecutorId,emp_name as ExecutorName,org_id from restricted.ausref_emp_data_ausz where substr(org_id,1,4)='MS01' )aa on xx.task_executor = aa.ExecutorId
06-09
可以尝试以下优化: 1. 将 SELECT 语句中的多个子查询转换为 JOIN,这样可以减少子查询的次数,提高查询效率。 2. 对于 WHERE 子句中的一些判断条件,可以根据具体情况添加索引,加快查询速度。 3. 对于计算字段 "STATUS" 中的逻辑判断,可以使用 CASE WHEN THEN ELSE END 语句,这样可以使查询更加简洁明了。 下面是优化后的 SQL 语句: SELECT source_name AS "SOURCE_NAME", type_name AS "TYPE_NAME", shift_date AS "SHIFT_DATE", dd AS "DD", task_title AS "TASK_TITLE", task_content AS "TASK_CONTENT", task_creator AS "TASK_CREATOR", task_executor AS "TASK_EXECUTOR", task_description AS "TASK_DESCRIPTION", create_time AS "CREATE_TIME", creatorid AS "CREATORID", creatorname AS "CREATORNAME", org_id AS "ORG_ID", executorid AS "EXECUTORID", executorname AS "EXECUTORNAME", plan_start_time AS "PLAN_START_TIME", plan_end_time AS "PLAN_END_TIME", act_start_time AS "ACT_SART_TIME", act_end_time AS "ACT_END_TIME", gap_date AS "GAP_DATE", task_status AS "TASK_STATUS", 1 AS "TASK_QTY", CASE WHEN task_status IN ('Finish', 'Confirm') THEN '已结案' WHEN gap_date > 0.3 THEN '已结案' WHEN gap_date > 0 THEN '已逾期' WHEN gap_date <= 0 AND task_status = 'Going' THEN '进行中' WHEN gap_date <= 0 AND task_status = 'Plan' THEN '计划中' ELSE NULL END AS "STATUS" FROM ( SELECT source_name, source_id, type_name, task_id, to_char(shift_date, 'MM') || '月' AS shift_date, task_title, task_content, task_status, task_creator, Plan_Start_Time, plan_end_time, act_start_time, (CASE WHEN act_end_time IS NULL THEN current_date ELSE act_end_time END) AS act_end_time, create_time, SUBSTR(TASK_EXECUTOR, 1, 8) AS TASK_EXECUTOR, 'M' || TO_CHAR(SHIFT_DATE, 'MM') AS dd, ROUND(DATE_PART('epoch', (CASE WHEN act_end_time IS NULL THEN now() ELSE act_end_time END) - plan_end_time)) / 60 / 60 / 24 AS gap_date, TASK_DESCRIPTION FROM estone.r_est_task t JOIN restricted.ausref_emp_data_ausz c ON t.task_creator = c.emp_no JOIN restricted.ausref_emp_data_ausz e ON t.task_executor = e.emp_no WHERE t.SITE = 'S01' AND substr(c.org_id, 1, 4) = 'MS01' AND substr(e.org_id, 1, 4) = 'MS01' AND t.shift_date > to_date('20221031', 'yyyymmdd') AND t.shift_date >= current_date - interval '3 month' ) UNION ( SELECT source_name, source_id, type_name, task_id, to_char(shift_date, 'MM') || '月' AS shift_date, task_title, task_content, task_status, task_creator, Plan_Start_Time, plan_end_time, act_start_time, (CASE WHEN act_end_time IS NULL THEN current_date ELSE act_end_time END) AS act_end_time, create_time, SUBSTR(TASK_EXECUTOR, 1, 8) AS TASK_EXECUTOR, 'M' || TO_CHAR(SHIFT_DATE, 'MM') AS dd, ROUND(DATE_PART('epoch', (CASE WHEN act_end_time IS NULL THEN now() ELSE act_end_time END) - create_time)) / 60 / 60 / 24 AS gap_date, TASK_DESCRIPTION FROM estone.h_Est_Comp c JOIN restricted.ausref_emp_data_ausz e ON c.task_executor = e.emp_no WHERE c.SITE = 'S01' AND substr(e.org_id, 1, 4) = 'MS01' AND substr(c.pt_mfg_date, 1, 6) >= to_char(current_date - interval '100 day', 'yyyymm') AND c.shift_date > to_date('20221031', 'yyyymmdd') ) AS xx LEFT JOIN restricted.ausref_emp_data_ausz AS yy ON xx.task_creator = yy.emp_no LEFT JOIN restricted.ausref_emp_data_ausz AS aa ON xx.task_executor = aa.emp_no

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值