hachirou
hachirou
还记得2002年的冬天吗
关注数: 183
粉丝数: 385
发帖数: 7,757
关注贴吧数: 80
掐丝珐琅款马桶
均方根误差 标准差 - SQRT(1-power(相关系数,2)) 得到范围是+- 回归线范围的半径
kafka plusar
kafka 结构
u检验、t检验、F检验、卡方检验详细分析 一、正态分布是统计学的基础,它对于各种假设检验极其的重要,t分布,F分布,卡方分布都是基于正态分布衍生出来的,而且中心极限定理也证明了,多数分布在样本量n足够大的情况下,其样本均值服从正态分布。 二、假设检验的步骤 1 提出假设,包括无效假设H0和备择假设H1。 2 预设检验水准,一般设为0.05,概率小于0.05为小概率事件 3 选定检验方法,检验方法的选定要依据抽样的样本数量等因素进行确定 4 依据检验方法,确定在H0假设下的发生概率,如果小于0.05,则证明,H0假设为小概率事件,就可以拒绝H0 三、假设检验的实质是否定,是为了否定H0。 一、u检验(总体均值,总体方差已知的情况下使用) u检验,又称为z检验,是基于正态分布的检验。举个简单的例子: 一台机器生成某种金属球,直径服从正态分布N(10,0.04)。抽取100个样本后,发现样本的均值为9.8cm,请问该机器生产的产品直径的均值是否为10cm。在0.05的显著性水平下 1、H0: H1: 2、取 3、样本量为100,所以这里选择u检验(为什么会选择u检验,而不选择t检验?在总体方差已经知道的情况下,不管样本数量多少都可以选择u检验。而如果总体方差未知,且样本数量小于40,则应该选择t检验。那么如果总体方差未知,但是样本数量超过40了,则u检验和t检验都可以使用,因为样本量大的情况下,t分布趋向于正态分布) 4、计算 可以发现这里是双边检验,所以查=1.96。所以拒绝H0 二、t检验(总体均值已经知道,但总体方差未知,只知道样本的方差) (一)、单总体t检验 一台机器生成某种金属球,直径服从正态分布。抽取16个样本后,发现样本的均值为9.8cm,方差为0.04,请问该机器生产的产品直径的均值是否为10cm。在0.05的显著性水平下 1、H0: H1: 2、取 3、总体方差未知,样本量为16,所以这里选择t检验(如果样本数量较大,比如超过40,亦可以选择u检验) 4、计算 查,所以拒绝H0 (二)、两总体t检验(这两个总体的方差齐,且服从正态分布) 两台机器A,B生产某种金属球,从A生产的产品中取16件,发现其均值为9.8cm,方差为0.04,从B生产的产品中取9件,发现其均值为9.7cm,方差为0.015,是否可以认定A,B产品的直径有显著性差异,在0.05的显著性水平下。 1、H0: H1: 2、取 3、判断两个总体的均值是否有显著性差异,要用t检验 4、计算 ,所以接受H0。 三、卡方检验(总体均值未知,单个正态总体的卡方检验,卡方检验的目标是为了检验样本的总体是否符合某种分布) 一台机器生成某种金属球,直径服从正态分布。抽取16个样本后,发现样本的均值为9.8cm,方差为0.04,请问该机器生产的金属球的直径的方差是否为0.02。 1、H0: H1: 2、取 3、总体均值未知,样本量为16,所以这里选择卡方检验 4、计算 查,所以拒绝H0,说明金属球的直径不符合方差为0.02的正态分布。 注:卡方检验还有另一种计算方式为 四、F检验(总体均值未知,两个正态总体的F检验,F检验的目标是为了检验两个样本的总体的方差是否相同,t检验中的方差齐是可以用F检验来进行检验的) 两台机器A,B生产某种金属球,从A生产的产品中取10件,发现其方差为0.02,从B生产的产品中取10件,发现其方差为0.015,是否可以认定A,B产品的方差相等,在0.05的显著性水平下。 1、H0: H1: 2、取 3、判断两个总体的方差是否齐,要用F检验 4、计算 将数据带入得到F=1.333,查,所以接受H0,说明在0.05的显著性水平下可以认为方差相等。 ———————————————— 版权声明:本文为CSDN博主「Soybean11」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fblog.csdn.net%2Fcsefrfvdv%2Farticle%2Fdetails%2F100705856&urlrefer=94ff3f77fd411784a208ea95343684d0
lambda kappa 在本文中,我们简述了 Lambda 架构和 Kappa 架构这两种大规模数据处理架构,它们都各自有着自身的优缺点。我们需要按照实际情况来权衡利弊,看看在业务中到底需要使用到哪种架构。 如果你所面对的业务逻辑是设计一种稳健的机器学习模型来预测即将发生的事情,那么你应该优先考虑使用 Lambda 架构,因为它拥有批处理层和速度层来确保更少的错误。 如果你所面对的业务逻辑是希望实时性比较高,而且客户端又是根据运行时发生的实时事件来做出回应的,那么你就应该优先考虑使用 Kappa 架构。
cloud native
pr scheduler E-mind
文盲 寿命短
oracle setup instantclient_11_2 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
win32com 本文主要讲解Python中操作word的思路。 一、Hello,world! 使用win32com需要安装pypiwin32 pip install pypiwin32 推荐使用python的IDLE,交互方便 1、如何新建文档
人工卫星magion databrics https://community.cloud.databricks.com/?o=4942128342011226#notebook/1435270050212527/command/884823702460261
采用互信息来作为特征筛选 machineLearning/MI_feature_extraction.ipynb TobeyLi/machineLearning (github.com)
weka 本论文的目标是建立一个只使用小部分的大训练数据集的紧凑表示,然后利用完整训练数据集的紧凑表示来推断分类模型。 完整训练数据集的精简版是通过应用训练在训练数据的第一部分上的分类模型来生成的。我们的想法是我们不能在大数据集上训练分类模型。我们必须先压缩它。 要创建训练数据集的紧凑表示,必须编写执行以下步骤的代码。
python 客/服 文件传输 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cnblogs.com%2Fdreamer-fish%2Fp%2F5501924.html&urlrefer=778809fad5a0a53482e6dfd9c13942b9
リケ恋
芥川龙之介,鲁迅
pvalue和卡方分布一楼防吞 pvalue和卡方分布 一楼防吞
安装pyspark 1. 安装java8 2. pip3 install pyspark 3. export SPARK_HOME = "/usr/local/lib/python3.6/dist-packages/pyspark" 4. export SPARK_PYTHON = python3
历史天气查询 tianqi.2345.com/wea_history/54511.htm
守夜从周一开始
black校则
微博id 卯月的qolo。 背番号13のqolo選手。 電波系的qolo。 owari社长qolo君。 ひきこもり情報弱者qolo。 摸鱼工程师,杉本制药
日日是好日
prophet demo 时间序列模型Prophet使用详细讲解
分块专利 一种使用多页面信息进行网页块功能识别的方法
盗钩者诛,盗国者侯
kibana - grafana zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 建于 Docker 之上的 Kubernetes 可以构建一个容器的调度服务,其目的是让用户透过 Kubernetes 集群来进行云端容器集群的管理,而无需用户进行复杂的设置工作。
がルフレ音
宅男腐女恋爱真难
Abtest Spliting Hashing 实现了abtest平均分配 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fblog.richardweiss.org%2F2016%2F12%2F25%2Fhash-splits.html&urlrefer=ac557916c23395697fd604f1f3dcccb4 # First, all the imports for the whole example from tqdm import tqdm_notebook import hashlib import pandas import scipy.statsfrom sklearn.metrics import mutual_info_score import statsmodels.api as sm def ab_split(id, salt, control_group_size): ''' Returns 't' (for test) or 'c' (for control), based on the ID and salt. The control_group_size is a float, between 0 and 1, that sets how big the control group is. ''' test_id = str(id) + '-' + str(salt) test_id_digest = hashlib.md5(test_id.encode('ascii')).hexdigest() test_id_first_digits = test_id_digest[:6] test_id_final_int = int(test_id_first_digits, 16) ab_split = (test_id_final_int/0xFFFFFF) if ab_split > control_group_size: return 't' else: return 'c'
wota恋 天降
昨晚过得很愉快吧
小包 合縁奇縁 一期一会 袖すり合うも多生の縁 この世の奇跡ギュッとつめて 君と出会えたんだ 青い春いつか幕を閉じ 桜と共に舞い散っても 必ず僕らまたどこかで 出会いを果たすだろう かけがえない 僕と似た君へ 1人で転んで傷だらけになったときは いつでもどこまでも走るよ たまには喧嘩して怒ろう 泣き顔見たら慰めよう とびきりの長いお説教は短めにして 綺麗なものを探しに行こう 美味しいものもたくさん食べよう つまりはこれからもどうかよろしくね 時が経つのは早いもので 別れの季節が顔を出す 積み上げてきたものがやけに 涙を誘うんだ 青い春が今幕を閉じ 桜が散る音は静かで 切ない想いが押し寄せた さよならの夕焼け かけがえない 僕と似た君は 1人でも大丈夫だからただ前を見て 広がる道を走るんだ たまには2人語り合おう 嫌なこと全部吐き出そう とびきりの長いアドバイスはちゃんと聞いてて 嬉しいことは報告しよう 新しい出会い大事にしよう つまりはいつでもいつまでも‥ ああ 僕らは立った今 ゴールは別々スタートライン 思い出しまい込んで 踏み出した先は 未来へ かけがえない 僕と似た君は 1人でも大丈夫だからただ前を見て 広がる道を走るんだ たまにはほどほどに休もう 休めたらゆるりと進もう とびきり長い近況報告お待ちしてます どれだけ敵を作ろうとも 僕が君の味方でいるから つまりはこれからもどうかよろしくね
我发表了一篇图片贴,大伙来看看吧~
batch_size/epoch/steps/period An epoch usually means one iteration over all of the training data. For instance if you have 20,000 images and a batch size of 100 then the epoch should contain 20,000 / 100 = 200 steps. However I usually just set a fixed number of steps like 1000 per epoch even though I have a much larger data set. At the end of the epoch I check the average cost and if it improved I save a checkpoint. There is no difference between steps from one epoch to another. I just treat them as checkpoints. People often shuffle around the data set between epochs. I prefer to use the random.sample function to choose the data to process in my epochs. So say I want to do 1000 steps with a batch size of 32. I will just randomly pick 32,000 samples from the pool of training data. 多少个steps进行一次汇报,为一个period
看到恒大球迷满脸凝重,我就放心了
千利休的审美 如果欣赏利休推崇寂禅的审美,一旦陷进去,真的让人致郁。
mapbox pk.eyJ1Ijoid3V4aW5yYW4iLCJhIjoiY2prOTJ5amdsMGZobTNscXhvd3ZyM3hiOSJ9.GRhFcBxDyhsBSwzElOEeSA
test
茄子
gurobi http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.edgestone-it.com%2Fgurobi.htm&urlrefer=28f78a90759b9c26038957d779d646d9
绘制地图 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.114.6776%26rep%3Drep1%26type%3Dpdf&urlrefer=9dd2eb299ba2c6162f5d5ba8cb65e31d http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.89.1137%26rep%3Drep1%26type%3Dpdf&urlrefer=9eb666b3bee3ec93d9a5880b55a1de5b http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.cs.kent.ac.uk%2Fpubs%2F2004%2F1925%2Fcontent.pdf&urlrefer=150807b68367e84f12db4e9985bf0517
geo tools http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.geomesa.org%2F&urlrefer=8a6e106012d8fc5f420e16441ca498eb http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2FEsri%2Fspatial-framework-for-hadoop%2Fwiki%2FUDF-Documentation&urlrefer=35c09ea43d694c396c4200d2a9bcf0c8
LTV trips Trip Prediction: TS Prophet - http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2Ffacebook%2Fprophet&urlrefer=306f7103ed27278808c71d67f751d69e Shop_or_Drop gamma gamma - http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.brucehardie.com%2Fnotes%2F025%2Fgamma_gamma.pdf&urlrefer=9251db5846c0cf7d60d74f88722ba0e3 - http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2Fstijnzweegers%2Fshop_or_drop&urlrefer=90980256cda20a01d1f10db4f691a9dd 季节+趋势 模型 (demo note) http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.otexts.org%2Ffpp%2F7%2F5&urlrefer=86d3416e055da367a84b746af56420d4 地理区块 实验 regular | adhoc cohort | 渠道 beta-geometric / Negative Binomial Distributions Dynamic Pricing: Learning dynamic prices in electronic retail markets with customer segmentation http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Frepository.ias.ac.in%2F30340%2F1%2F315.pdf&urlrefer=8550d55be5bace2ec497dbe0bef7a189 Learning Curve: A Simulation-Based Approach to Dynamic Pricing http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.researchgate.net%2Fprofile%2FAmy_Greenwald%2Fpublication%2F2559394_Learning_Curve_A_Simulation-Based_Approach_to_Dynamic_Pricing%2Flinks%2F56a7aecc08ae0fd8b3fe1b63.pdf&urlrefer=3a426b2e1658eac8b2b53d39f8f3b726
antifraud AntiFraud - user Graph 1) CopyCatch: Stopping Group Attacks by Spotting Lockstep Behavior in Social Networks http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Falexbeutel.com%2Fpapers%2Fwww2013_copycatch.pdf&urlrefer=75f8b119d5c60eec05d37f3e4ec7c23d 2) CatchSync : Catching Synchronized Behavior in Large Directed Graphs http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Falexbeutel.com%2Fpapers%2Fkdd2014.catchsync.pdf&urlrefer=c6166c4a94388ed788aa5c004dc9358a 3) FRAUDAR: Bounding Graph Fraud in the Face of Camouflage http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Falexbeutel.com%2Fpapers%2Fkdd2016_fraudar.pdf&urlrefer=a7e44c4e0724efba6479f9077bdb8b17 4) CMU tutoria Subgraph Analysis http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cs.cmu.edu%2F~abeutel%2Fkdd2015_tutorial%2Fslides%2F010Subgraph.pdf&urlrefer=c586e2ddab7e6edfd4c7b1af5b50497a Propagation Methods http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cs.cmu.edu%2F~abeutel%2Fkdd2015_tutorial%2Fslides%2F020AllProp.pdf&urlrefer=e2365618eaa04aa8eec77a07ac4e613a Latent Factor Models http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cs.cmu.edu%2F~abeutel%2Fkdd2015_tutorial%2Fslides%2F030LatentFactors.pdf&urlrefer=cf178f1c28634b6bb516f8e331274e75 5) GRAPH-BASED USER BEHAVIOR MODELING PREDICTION TO FRAUD DETECTION http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cs.cmu.edu%2F~abeutel%2Fkdd2015_tutorial%2Fslides%2F000Intro.pdf&urlrefer=79fe433b5ed849b7c9627990107891e0 AntiFraud - anomaly detection 简介 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.zhihu.com%2Fquestion%2F29814056&urlrefer=5b428055f00fbfabac4aa83875ffa91b 利用难以改变的特征,增加作弊成本,降低反作弊成本 缩短Attacker Controls时间 快速发现问题 → 更新反作弊策略 → 上线生效 Policy Engine实时生效,与ML层结合 2) 算法原理 Andrew NG http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cnblogs.com%2Fzsychanpin%2Fp%2F6796837.html&urlrefer=d963a5c35e12550b9aeb19b4d02d7cac spark anomaly fraud detection http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fmicvog.com%2F2016%2F05%2F21%2Fusing-spark-for-anomaly-fraud-detection%2F&urlrefer=b83a9c5accd07018993fc7c7f00fc7fc spark implement http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.mamicode.com%2Finfo-detail-1464635.html&urlrefer=891d23ca55050ae8e8f6a27b6a86b3dc Mahalanobis Dist https://tieba.baidu.com/p/1604728930 Outlier Detection With Quantiles and IQR http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fblog.madhukaraphatak.com%2Fstatistical-data-exploration-spark-part-3%2F&urlrefer=f495402a546e758bad48cdb9dd196784 Unsupervied-anomaly-detection http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fmapr.com%2Febooks%2Fspark%2F08-unsupervised-anomaly-detection-apache-spark.html&urlrefer=eb6d6dbd0c4ef97acd9d60dfb32d8b9e
jutyters tutorial interest http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2Fjupyter%2Fjupyter%2Fwiki%2FA-gallery-of-interesting-Jupyter-Notebooks&urlrefer=e8056012dd36b160790494fdc9925779 27 jupyter 秘诀 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.zybuluo.com%2Fhanxiaoyang%2Fnote%2F534296&urlrefer=3da6c0391b50447d15705d4c9e42d673
beta-Geometric / negative binomial distribution Pareto / NBD 是用于客户群分析的强大模型,但其经验性应用可能具有挑战性,特别是在参数估计方面。 在任何实证应用中,BG / NBD都是Pareto / NBD模型的有吸引力的替代者。 Pareto / NGD Model 用户活跃度随时间衰减建模,使用Pareto Timeing Model (指数函数/Gamma函数 混合)。 存活用户复购行为建模,使用Negative Binomial Counting Model (Poisson - Gamma)。 Pareto / NGD Model 基于的五个前提假设: 存活用户在时间长度t内的交易量,服从交易率λ的泊松分布。 客户交易率的变化性遵循具有形状参数r和尺度参数α的伽马分布。 每个客户都有一个潜在长度τ的生命周期。 客户存活以指数形式分布,具有丢失率μ 客户丢失率的变化性遵循具有形状参数s和尺度参数β的伽玛分布。 交易率λ和丢失率μ在各个客户之间独立变化。 BG/NBD Model 和 Parato / NBD 的区别仅仅是:用户是如何失活 Parato / NBD : 失活发生在任何时间点,独立于购买 BG / NBD : 失活发生在一次购买之后,立即发生 BG / NGD Model 基于的五个前提假设:
微信亿级用户异常检测框架的设计与实践 月活用户越高的互联网产品,被黑产盯上的可能性就越大。在微信的安全生态里,正是有网络黑产的层出不穷,变化多端,才有了微信安全的不断进化。本文将带你一窥究竟,微信是怎么做异常检测框架的? 1写在前面 如何在大规模数据下检测异常用户一直是学术界和工业界研究的重点,而在微信安全的实际生态中,一方面,黑产作恶手段多变,为了捕捉黑产多变的恶意模式,若采用有监督的方法模型可能需要频繁更新,维护成本较高;另一方面,通过对恶意帐号进行分析,我们发现恶意用户往往呈现一定的“聚集性”特征,因此这里需要更多地依赖无监督或半监督的手段对恶意用户进行检测。然而,微信每日活跃帐号数基本在亿级别,如何在有限的计算资源下从亿级别帐号中找出可疑帐号给聚类方案的设计带来了不小的挑战,而本文则是为了解决这一问题的一个小小的尝试。 2异常检测框架设计目标及核心思路 设计目标为了满足在实际场景检测异常用户的要求,在设计初期,我们提出如下设计目标: 主要用于检测恶意帐号可能存在的环境聚集和属性聚集; 方案需要易于融合现有画像信息等其他辅助信息; 方案需要具有较强的可扩展性,可直接用于亿级别用户基数下的异常检测。 核心思路 通常基于聚类的异常用户检测思路是根据用户特征计算节点之间的相似度,并基于节点间相似度构建节点相似度连接图,接着在得到的图上做聚类,以发现恶意群体。然而,简单的分析就会发现上述方案在实际应用场景下并不现实,若要对亿级别用户两两间计算相似度,其时间复杂度和空间消耗基本上是不可接受的。为了解决这一问题,可将整个用户空间划分为若干子空间,子空间内用户相似度较高,而子空间之间用户之间的相似度则较低,这样我们就只需要在每个用户子空间上计算节点相似度,避免相似度较低的节点对之间的相似度计算 (这些边对最终聚类结果影响较低),这样就能大大地降低计算所需的时间和空间开销。 基于这一想法,同时考虑到恶意用户自然形成的环境聚集和属性聚集,我们可以根据环境以及用户属性对整个用户空间进行划分,只在这些子空间上计算节点之间的相似度,并基于得到的用户相似度图挖掘恶意用户群体。此外,直观上来分析,如果两个用户聚集的维度越“可疑”,则该维度对恶意聚集的贡献度应该越高,例如,如果两个用户同在一个“可疑”的 IP下,相比一个正常的 IP而言,他们之间存在恶意聚集的可能性更高。基于这一直觉,为了在每个用户子空间内计算用户对之间的相似度,可根据用户聚集维度的可疑度给每个维度赋予不同的权值,使用所有聚集维度的权值的加权和作为用户间的相似度度量。 注:依据上述思路,需要在属性划分后的子空间计算两两用户之间的相似度,然而实际数据中特定属性值下的子空间会非常大,出于计算时间和空间开销的考虑,实际实现上我们会将特别大的 group按照一定大小 (如 5000)进行拆分,在拆分后的子空间计算节点相似度。(实际实验结果表明这种近似并不会对结果造成较大影响) 3异常检测框架设计方案 基于上述思路,异常检测方案需要解决如下几个问题: 如何根据用户特征 /使用怎样的特征将整个用户空间划分为若干子空间? 如何衡量用户特征是否“可疑”? 如何根据构建得到的用户相似度关系图找出异常用户群体? 为了解决以上三个问题,经过多轮的实验和迭代,我们形成了一个较为通用的异常检测方案,具体异常检测方案框架图 如图 1所示: 图 1异常用户检测框架 如图 1所示,首先,用户空间划分模块根据“划分属性”将整个用户空间划分为若干子空间,后续节点间相似度的计算均在这些子空间内部进行;恶意属性检测模块则根据输入数据自动自适应地识别用户特征中的“可疑”值;用户空间划分和恶意属性检测完成后,在每个用户子空间上,用户相似度计算模块基于恶意属性检测得到的恶意属性库和相应的权重策略计算用户之间两两之间的相似度,对于每个特征以及其对应的不同的可疑程度,权重策略模块会为其分配相应的权重值,用户间边的权重即为节点所有聚集项权重的加权和,为了避免建边可能带来的巨大空间开销,方案仅会保留权值大于一定阈值的边;得到上一步构建得到的用户相似度关系图后,可使用常用的图聚类算法进行聚类,得到可疑的恶意用户群体。 用户空间划分 为了进行节点间相似度的计算,首先需要将整个用户空间划分到不同的子空间中去,那么这些用于划分的属性该如何选取呢?经过一系列的实验和分析,我们将用户特征划分为以下两类: 核心特征:核心特征指黑产帐号若要避免聚集,需要付出较大的成本的特征,主要包括一些环境特征; 支撑特征:支撑特征指黑产帐号若要避免聚集,改变所需成本较小的特征。 不难发现,对于上述核心特征,黑产规避的成本较大,所以在具体的划分属性的选取上,我们使用核心特征对用户空间进行划分,并在划分得到的子空间上计算节点对之间的相似度。在子空间上计算节点之间的相似度时,我们引入支撑特征进行补充,使用核心特征和支撑特征同时计算用户之间的相似度,以提高恶意判断的准确率和覆盖率。 何为“可疑” 可疑属性提取 在确定划分属性后,一个更为重要的问题是如何确定哪些用户属性值是可疑的?这里我们主要对用户脱敏后的登录环境信息进行分析,依赖微信安全中心积累多年的环境画像数据,通过对用户属性值的出现频次、分布等维度进行分析,提取出一些可疑的属性值。 多粒度的可疑属性识别 在进行养号识别的实验过程中,我们发现,单纯依靠若干天登录数据的局部信息进行养号检测往往无法达到较高的覆盖率。为了解决这一问题,在可疑属性提取过程中,我们会融合安全中心现有的环境画像信息以及反垃圾数据等全局信息辅助进行判断,局部信息和全局信息的融合有以下两个好处: 融合局部信息和全局信息,可增大可疑属性判断的置信度和覆盖度,提高算法覆盖率; 增加了用户相似度计算设计上的灵活度,如若特定帐号与已封号帐号有边相连,可通过赋予该边额外的权重来加大对已知恶意用户同环境帐号的打击。 恶意用户识别 我们将超过一定阈值的用户视为恶意用户,其中,阈值可根据不同阈值得到的算法的准确率和覆盖率选取一个合适的阈值。 另,处于性能和可扩展考虑,我们使用 Connected Components算法来识别可疑的用户团体,同时,得到恶意团体后我们会对团体进行分析,提取在团体维度存在聚集性的属性值,以增强模型的可解释性。 4从百万到亿——异常检测框架性能优化之路 初步实验时,我们随机抽取了百万左右的用户进行实验,为了将所提方案扩展到全量亿级别用户上,挖掘可疑的用户群体,我们做了如下优化: Spark性能优化 在基于 Spark框架实现上述异常检测框架的过程中,我们也碰到了 Spark 大数据处理中常见的问题 ------数据倾斜。分析上述异常检测方案不难发现,方案实现中会涉及大量的 groupByKey,aggregateByKey,reduceByKey等聚合操作,为了规避聚合操作中数据倾斜对 Spark性能的影响,实际实现中我们主要引入了以下两个策略:两阶段聚合和三阶段自适应聚合。 两阶段聚合 如图 3所示,两阶段聚合将聚合操作分为两个阶段:局部聚合和全局聚合。第一次是局部聚合,先给每个 key都打上一个随机数,比如 10以内的随机数,此时原先一样的 key就变成不一样的了,比如 (hello, 1) (hello, 1) (hello, 1) (hello, 1)就会变成 (1_hello, 1) (1_hello, 1) (2_hello, 1) (2_hello, 1)。接着对打上随机数后的数据,执行 reduceByKey等聚合操作,进行局部聚合,得到局部聚合结果 (1_hello, 2) (2_hello, 2)。然后将各个 key的前缀给去掉,得到 (hello,2),(hello,2),再次进行全局聚合操作,即可得到最终结果 (hello, 4)。 图 3两阶段聚合 三阶段自适应聚合 用户空间划分阶段我们需要将整个用户空间根据划分属性划分为若干个子区间,实际实验时我们发现在亿级别数据下,使用两阶段聚合,也会出现特定 key下的数据量特别大的情况,导致 Spark频繁 GC,程序运行速度极其缓慢,甚至根本无法得到聚合后的结果。为了解决这一问题,注意到通过划分属性进行划分后,仍然会将特别大的 group按照一定大小进行切割,那么直接在聚合过程中融合这一步骤不就可以了么,这样就能解决特定属性值下数据特别多的情形,也能极大地提升算法运行效率。 三阶段自适应聚合分为以下四个阶段: 随机局部聚合:设定一个较大的数(如 100),参照两阶段聚合第一阶段操作给每个 key打上一个随机数,对打上随机数后的 key进行聚合操作; 自适应局部聚合:经过随机局部聚合后,可获取每个随机 key下的记录条数,通过单个随机 key下的记录条数,我们可以对原 key下的数据条数进行估算,并自适应地调整第二次局部聚合时每个原始 key使用的随机数值; 第二轮随机局部聚合;根据自适应计算得到的随机数继续给每个 key打上随机数,注意此时不同 key使用的随机数值可能是不同的,并对打上随机数后的 key进行第二轮局部聚合; 全局聚合:经过第二轮随机局部聚合后,若特定 key下记录数超过设定阈值 (如 5000),则保留该结果,不再进行该阶段全局聚合;否则,则将随机 key还原为原始 key值,进行最后一阶段的全局聚合。 Faster, Faster, Faster 经过以上调优后,程序运行速度大致提升了 10倍左右。然而,在实验中我们发现当对亿级别用户进行相似度计算并将边按阈值过滤后,得到的边数仍然在百亿级别,占用内存空间超过 2T。那么我们有没有可能减小这一内存占用呢?答案是肯定的。通过对整个异常用户检测流程进行细致的分析,我们发现我们并不需要对子空间内所有用户对进行相似度计算,通过前期实验我们发现当用户可疑度超过 0.7时,基本就可以判定该用户是恶意用户。根据用户可疑度计算公式反推,当节点关联边的权重超过 18.2时,其在最后结果中的权值就会超过 0.7,基于这一想法,我们引入了动态 Dropping策略。 动态 Dropping策略 引入 HashMap保存当前子空间每个节点的累计权重值,初始化为 0.0;按照原始算法依次遍历子空间下的节点对,若节点对两个节点累计权重值均超过阈值(18.2),则跳过该节点对权值计算,否则则根据原始算法计算节点对权重,并累加到 HashMap中,更新关联节点的累积权重值。引入动态 Dropping策略后,对于较大的用户子空间,程序会跳过超过 90%的节点对的相似度计算,极大地减少了计算量;同时,亿级别用户相似度计算生成的边的内存占用从原来超过 2T降到 50G左右,也极大地降低了程序所需内存占用。 图划分策略 通过相似度计算得到的用户相似度关系图节点分布是极不均匀的,大部分节点度数较小,少部分节点度数较大,对于这种分布存在严重倾斜的网络图,图划分策略的选择对图算法性能具有极大影响。为了解决这一问题,我们使用 EuroSys 2015 Best Paper提出的图划分算法 HybridCut对用户相似度关系图进行划分。 图 4 HybridCut图划分算法 如图 4所示,HybridCut图划分算法根据节点度数的不同选取差异化的处理策略,对于度数较低的节点,如节点 2,3,4,5,6,为了保证局部性,算法会将其集中放置在一起,而对于度数较高的节点,如 1,为了充分利用图计算框架并行计算的能力,算法会将其对应的边摊放到各个机器上。通过按节点度数对节点进行差异化的处理,HybridCut算法在局部性和算法并行性上达到了较好的均衡。以上仅对 HybridCut算法基本思路进行粗略的介绍,更多算法细节请参阅论文 PowerLyra: Differentiated Graph Computation and Partitioning on Skewed Graphs。 5总结和讨论 优点与不足优点 上述异常用户检测框架具有如下优点: 能够较好地检测恶意用户可能存在的环境聚集和属性聚集,且具有较高的准确率和覆盖率; 能够自然地融合画像信息以及反垃圾信息,通过融合不同粒度的信息,可提高算法的覆盖率,同时也给算法提供了更大的设计空间,可以按需选择使用的特征或信息; 良好的扩展性,可直接扩展到亿级别用户进行恶意用户检测,且算法具有较高的运行效率。 不足 无法对非环境和属性聚集的恶意用户进行检测 (当然,这也不在方案的设计目标里),无法处理恶意用户使用外挂等手段绕过环境和属性聚集检测的情况; 上述方案权重策略部分需要人工指定权重,这无疑增加了人工调参的工作量,若黑产恶意模式或使用特征发生较大的变更,则可能需要对权重重新进行调整,维护成本较高。 Next... 探索自动化的权重生成策略,以应对可能的特征或黑产模式变更; 是否可以根据聚类过程中的信息生成规则,用于实时恶意打击; 上述方案比较适合用来检测恶意用户可能存在的环境聚集和属性聚集,对于非环境和属性聚集的恶意类型则显得无能为力了 (一种可能的方案是将连续属性离散化,不过这样太不优雅了!),因此后续我们会尝试从行为维度对用户行为进行分析,并构建相应的打击模型。 6参考文献 Chen R, Shi J, Chen Y, et al. PowerLyra: differentiated graph computation and partitioning on skewed graphs[C]// Tenth European Conference on Computer Systems. ACM, 2015:1.
MC methods mcts.ai/pubs/mcts-survey-master.pdf
弄了个小茄子。
yarn yarn logs -applicationId application_1514982786009_123304 yarn application -list yarn application -kill
wechat 黑产 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.yidianzixun.com%2Farticle%2F0IAFdBEI%3Fs%3D4&urlrefer=d64a395f013dd9c9bf1f74bccb4efa27
我的天要出真人版的鬼才传了
请给我一顶圣诞帽
cloudera docker run --privileged=true --hostname=quickstart.cloudera -p 8020:8020 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -t -i -d cloudera/quickstart /usr/bin/docker-quickstart [plain] view plain copy /home/cloudera/cloudera-manager --force --express Log into http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Flocalhost%3A7180%2F+++&urlrefer=496715fc5a21b806cefe6d54844e0bcd (cloudera/cloudera) yum install ntp chkconfig ntpd on service ntpd start start HDFS service start HIVE service start Implala service
hbase info tochecka
1
下一页