- 博客(23)
- 收藏
- 关注
原创 【数据挖掘】GBDT,XGBoost
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 两个模型都是基于Boosting的思想,采用串联的方法来提升预测的精度 一、GBDT GBDT采用的弱学习器是CART回归决策树,所以,首先学习一下CART回归决策树的知识 假设有 N 个样本,每个样本有 J 个属性 1.对每个样本的y值进行从小到大的排序,然后取相邻两个值的均值作为分割点 2.计算分割后,左右两个叶子的误差之和: 其中c1是左边叶子节点的y的预测值的均值,c2是右边叶子节点的y的预测值的均值,计算出每个划分点的均方误差的值,
2020-10-16 22:51:11
539
原创 【数据挖掘】Bagging,Boosting,AdaBoost
一、Bagging Bagging用于将多个基学习器集成一个相对较强的集成学习器。拿决策树当作基学习器来说,一颗树的预测能力有限,常常存在偏差和误差,使得预测不准确。这时候可以选择构造多颗决策树,通过多颗决策树的结果来判断最终的分类结果。 在构建决策树的时候,我们要尽可能使得每棵决策树之间的差异较大,如果两棵树是一样的,则没有意义了。Bagging算法在随机森林上采用两种方法来保证树与树之间差异较大: 1、采用Boostrap方法来取样本,当给我们的样本的容量是m时候,通过有放回的随机抽样,抽取k组样本,通
2020-10-12 12:01:23
663
原创 【数据挖掘】C3.0、C4.5、CART算法
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 1.引入熵的概念: 计算集合中,所有数据的熵 D表示整个集合,pk表示第k类分类的数据所占的比例,熵越大,表示集合D越混乱,越小表示集合越纯。一般熵介于0,1之间。 2、引入条件熵 p(xi)表示属性x,是xi属性的数据所占比列,Entropy(Y|xi)表示在属性是xi的前提下,Y的信息熵 3、信息增益 信息增益 = 集合D的信息熵 - 属性X下的条件信息熵 表示决策树在属性X下的信息熵减少的程度 4、C3.0算法 选择信息增益最大的属
2020-10-10 23:48:53
904
原创 【统计知识】 2
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、ROC曲线 TPR = TP / (TP+FN):召回率(Recall) FPR = FP / (FP+TN) TP / (TP+FN):精确度(Percision) (TP+TN) / (TP+FP+TN+FN):正确率 二、等深划分,等宽划分 等深划分:保证每个划分区间的长度一样 等宽划分:保证每个区间里面的数据数量一样 三、数据的属性类型 1、标注属性 2、二元属性:只有两个状态,0和1,比如性别属性 (对称二元属性:属性的两个状态的
2020-10-09 10:32:26
3693
2
原创 【剑指offer】Python题解 4
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、剑指 Offer 38. 字符串的排列 class Solution: def permutation(self, s: str) -> List[str]: res = [] def dfs(s,path): if not s:res.append(path) seen = set() for i in range(len(s)): if s[i] in seen:con
2020-10-02 15:23:46
208
原创 【剑指offer】Python题解 3
一、剑指 Offer 14- I. 剪绳子 class Solution: def cuttingRope(self, n: int) -> int: dp = [1] * (n-1) for i in range(2,n+1): for j in range(1,(i+1)//2): tmp = max(j,dp[j])*max(i-j,dp[i-j]) dp[i] = max(dp[i],tmp) return dp[
2020-10-01 09:45:27
155
原创 【数据挖掘】KNN K-means
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、KNN KNN(K临近算法),是有监督的分类算法,用于把未知分类的样本点,通过计算附近K个,最近的,已分类的样本点,通过这K个样本点的投票决定,将未知样本点分类到哪一类的样本群中。 步骤: 1.选择合适的距离(欧氏距离,曼哈顿距离) 2.计算未分类样本点到其他已分类样本点的距离(当样本量较小,可以计算出距离,当样本点过大,可以使用K-d树来选择需要计算的样本点) 3.针对计算出来的距离,将样本点升序排列 4.选择最近的K个点 当K过分小时
2020-09-30 14:22:39
380
原创 【剑指offer】Python题解 2
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、剑指 Offer 34. 二叉树中和为某一值的路径 第一想法:深度遍历,遍历每一条路径,找到正确答案 class Solution: def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]: res, path = [], [] def dfs(root,tar): if not root:retur
2020-09-26 17:16:59
169
原创 【业务相关】4 游戏数据分析
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、若游戏的收入在下降,该怎么分析 1、确定边界 首先明确,是某一个市场收入下降还是全盘的收入都下降; 是某个平台的收入下降还是所有平台都下降; 是某个渠道下降还是所有渠道到下降 2、明确下降用户类型 明确是PC端下降还是手机端下降,还是全部下降。 如果是PC端,看是哪些操作系统;如果是手机端,看是IOS还是安卓 3、明确最近游戏产品有没有改动 明确了以上三个方面,我们针对具体的范围,来从内部和外部来分析 4、公司外部 其他公司是否有竞品上线,
2020-09-22 22:01:56
664
1
原创 【业务相关】3 游戏数据分析
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、如何判断影响平衡性 我们分为MOBA游戏和RPG游戏来讨论 1、MOBA游戏 最直接的数据:英雄胜率 英雄胜率一定程度上反映了英雄强度,胜率越高,强度越高;但不同段位玩家的操作水平不同,所以有可能某些英雄操作难度高,但是上限较高,导致在低段位的胜率低,高段位胜率高,此时可以稍微允许这个英雄的胜率在不同段位的偏差,计算加权胜率来判断。 其次数据:英雄登场率,BAN率,击杀数据,连续击杀数据,伤害量等等 一般高强度英雄都伴随着较高的BAN率,登
2020-09-22 12:48:11
877
原创 【业务相关】2 游戏相关指标
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 从标准的AARRR模型入手:用户获取—>用户激活—>用户留存—>用户付费 一、用户获取,激活 用户获取必定伴随着广告,宣传等投放花费 CPC(cost per click):每个点击用户的成本,CPC=投放宣传的总成本/带来的点击用户量 CPA(cost per action):每个激活用户的成本,CPA=投放宣传的总成本/带来的激活用户量 CPR(cost per regester):每个注册用户的成本,CPA=投放宣传的总
2020-09-21 21:03:34
1058
原创 【大数据】基础知识 6
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、Spark shuffle于MR shuffle的区别 1、内存方面:Spark shuffle是多进程多线程模式,中间的结果不会落地,减少了IO流操作,提高了执行速度;MR shuffle当任务复杂的时候,存在多个MR Job串联的情况,每两个MR job之间都有数据读写到磁盘,这样便存在对磁盘的IO操作,影响性能 2、容错方面:Spark shuffle存在RDD(弹性分布式数据集)模式,当数据处理错误,可以通过计算流程实现重建;MR
2020-09-19 12:05:55
156
原创 【大数据】基础知识 5
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、Hive原理 Hive是一个部署在Hadoop上的一个数据仓库基础工具,可以将类SQL语言转化成MR任务,并运行。是的大数据的存储,查询更加方便 运行步骤: 1.解析器:把SQL语法转换成抽象书AST,对AST进行语法分析,查看是是否存在语法错误 2.编译器:把AST转换成逻辑执行计划 3.优化器:对逻辑执行计划进行优化 4.执行器:把逻辑执行计划转换成物理计划,即MR任务 二、spark运行流程 1、启动Resource manager
2020-09-17 21:55:56
173
原创 【大数据】基础知识 4
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、Hive数据倾斜解决方案 数据倾斜原因是有的key对应了太多的数据,这些数据都集中到一个reducer上处理,表现出来是,其他reduce都处理完了,但这个reduce一直没结束任务 解决方法: 1、设置hive.map.aggr = true:先在map端对数据进行整合,把Key相同的放在一起,减少数据量,这样可以减少进入reduce的数据量,可以一定程度优化数据倾斜的问题。 2、设置均衡负载器,hive.groupby.skewinda
2020-09-17 13:24:02
200
原创 【大数据】基础知识 3
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、HIVE中常用的存储格式 1.textfile存储格式 textfile是按行存储的方式,没有进行压缩,并且上传文件到HDFS是通过put方式 2.ORC存储格式 ORC是按行和按列结合的存储格式,若有1w条数据,ORC模式先把1w行的表拆分成100行一个的小表,再对每个小表进行按列存储。 create table test_orc ( id int, name string, price float ) row format delim
2020-09-17 09:44:23
256
原创 【剑指offer】Python题解 1
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 剑指 Offer 57 - II. 和为s的连续正数序列 想法:滑动窗口,改变窗口的上下限来遍历 class Solution: def findContinuousSequence(self, target: int) -> List[List[int]]: i,j,res = 1,2,[] while j <= target//2 + 1: cursum = su
2020-09-15 21:10:21
224
原创 【统计知识】 1
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、PCA 在处理大数据时,数据量太多太杂,影响执行效率。这时候使用PCA来选择重要的信息,实现降维,减少数据量。 具体步骤 1.对特征归一化:对每个特征,求特征的平均值,再用每个特征减去这个平均值。 2.求协方差矩阵:A和A的转置相乘,得到协方差矩阵,因为PCA的思想就是使得降维后的数据尽量分开,同样保证不同特征之间的关联性小。这样只要让协方差矩阵的对角元素尽可能大,其他元素为0 3.对角化:求解协方差阵的特征值和特征向量,让协方差阵对角化
2020-09-15 10:14:08
296
原创 【大数据】基础知识2
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、Linix的常用基础操作命令 pwd:查看当前文件的路径 du -sh:查看文件大小,例、du -sh /etc service network restart:重启网络服务 ls /:查看根目录下的文件,文件夹信息 ls -al:显示隐藏文件,并且以更加详细的形式显示 mkdir a:创建a目录 mkdir -p a/b/c:循环创建目录 rm -rf a:删除a文件夹 mv a b:把a文件夹名称修改成b echo:创建一个空文件,并写
2020-09-14 10:00:14
120
原创 【数据结构与算法】排序算法(python)2
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、归并排序 归并排序是一个先分再合的过程,先将序列通过二分法分成一个个子序列,后面再比较相邻的两个序列,把两个序列合并成一个有序序列,重复这个过程,直到合并完毕 def merge_sort(list): n = len(list) if n <= 1:return list mid = n//2 left = merge_sort(list[:mid]) right = merge_sort(list[mid:]) lef
2020-09-11 10:28:34
128
原创 【数据结构与算法】排序算法(python)1
一、冒泡排序 通过比较相邻的两个数字,通过交换的方法,使得较大的数字在右边,最终便形成了一个增序的数列。 在这里插入代码片
2020-09-09 17:49:29
200
原创 【业务相关】1
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 一、同比和环比 同比:今年4月和去年4月相比较 环比:今年4月和今年3月相比较 同比可以避免季节性带来的影响,用作长期比较;环比用于短期的比较 二、辛普森悖论 在各分组中占有比率优势的一方,在总体中不一定占有优势 例: 商学院和法学院的男生录取率都比女生录取率高,但是总体的男生录取率却比女生录取率低。 三、幸存者偏差 只看到了幸存者提供的信息,却没有看到不幸者提供的数据,使得最后得出的结论有偏差。 例:成功者马云和比尔盖茨都有退学经历,如果得出
2020-09-08 16:52:20
258
原创 【数据挖掘】Log
小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 逻辑回归虽然叫回归,其实是一个0,1分类问题。相比于其他的分类,逻辑回归嵌套了一个sigmod函数,使得分类有了对应的概率。 sigmod函数: 其中z是线性回归的模型: 这样便得到了一个值域是(0,1)的模型。 建立这个模型的任务便是训练出线性模型(z)中的各个未知参数sigmasigmasigma。这里使用极大似然函数来作为损失函数(为什么不使用平方损失函数,因为使用平方损失函数得到的目标函数不是凸函数,在后续求解最小值的过程中,得到的结
2020-09-07 17:54:52
428
原创 【大数据】基础知识1
一、Hadoop 1.x 和 Hadoop 2.x的区别: 1.x使用 MapReduce进行调度和数据的计算 2.x使用 MapReduce进行数据的计算,使用Yarn进行资源的调度 二、Hadoop的主要组成: 1.Hadoop Common:是Hadoop的底层模块,为Hadoop各子项目提供各种工具,如:配置文件和日志操作等。 2.HDFS:主要用于存储数据,里面有NameNode和DataNode,Namenode主要用来存储元数据,相当于数据的目录;DataNode用来存储真正的数据。 3.M
2020-09-07 17:07:24
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅