自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SOARING

积跬步,至千里!积小流,成江海!

  • 博客(104)
  • 问答 (1)
  • 收藏
  • 关注

原创 统计学学习入门-第一周

数据的图表表示既然是统计学,肯定是和数据的统计有关,这也就当然离不开数据的展示,直观的数据展示可以让我们发现数据的规律和隐藏的价值。1) 直观文字展示,直接用文字表述某数据的的情况2)表格表示,直接罗列数据到表格中3)图形表示,将数据通过各式图形表现出来1、数据的预处理原始数据可能不能直接使用,需要我们进一步的处理后才能进行统计分析。审核--》筛选--》排序--》...

2019-11-03 10:53:10 408

原创 Hive--hive一种通用的上亿级别的去重方法

前些阵子在公司做项目遇到了一个问题,就是需要都行业中的所有品牌的uid进行去重的然后计数的操作。数据量去完重复大概2个亿,去之前大概将近三个亿。做法一:最原始的做法使用的是count(distingct uid)这个需要大概跑3个小时的任务。做法二:使用group by去重,效果依然不好。做法三:使用row_number() over(partition by uid order ...

2019-09-07 09:39:00 3513 3

原创 剑指offer(Java版)---- 字符串转换成整数

题目描述将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。解法一:根据题目意思前面可能又+-号,如果出现非0-9的话返回0;所以算法实现首先要判断是否又正负号,有就从角标1开始遍历,每次检查当前字符是否是数字,不是直接返回0;...

2019-08-11 20:32:12 216

原创 剑指offer刷题笔记(Java版)---- 构建乘积数组

本題首先需要清楚的理解題目的意思,然後在去想法解題。题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。有些題目看着不是很清晰的話,可以適當的去畫圖觀察一下,比如本題數組就取A[1,2,3,4,5]這些元素。那麼B[i]與A[...

2019-08-08 00:24:12 155

原创 剑指offer刷题笔记(Java版)---- 找出数组重复数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。简单而言就是:找出数组中重复的数字存入到一个数组中。解法一:简单想法就是利用hashmap,遍历数组放入hash...

2019-08-07 17:39:17 187

原创 已做算法目录导引

LEETCODE 1.两数之和 2.两数相加 4. 寻找两个有序数组的中位数 7、整数反转 11. 盛最多水的容器 13、罗马数字转整数 14、最长公共前缀 19. 删除链表的倒数第N个节点 20、括号匹配 21、合并两个有序链表 26.、删除排序数组中的重复项 27. 移除元素...

2019-07-13 10:55:06 180

原创 LeetCode刷题笔记(Java版)----142. 环形链表入口

给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。/** * Definition for singly-linked list. * class ListNode { * ...

2019-07-06 17:32:29 334

转载 Sqoop导入导出数据命令参数详解

注:转自https://blog.csdn.net/wtzhm/article/details/81810159sqoop 导入导出数据命令参数详解1. 从关系数据库中导入到hdfs中sqoop import \--connect<jdbc-uri> 指的是连接地址,这里面是mysql服务器的地址;--username<username> 数据...

2019-07-01 13:46:22 2685

原创 机器学习----集成学习和随机森林详解(未完)

什么是集成学习?集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。一般情况下,集成学习中的多个学习器都是同质的"弱学习器"。我们生活中也有很多集成学习的思想,比如买手机找别人推荐,几个人推荐几部手机,看他们综合意见。看电影,10个人7个说好,3个说不好,综合他们决定去看。。。比如利用:逻辑回归,svn,决策树进...

2019-06-23 22:29:08 331

原创 机器学习----决策树学习记录、信息熵详解

什么是决策树?决策树是广泛用于分类和回归的模型,本质上是一层层if/else问题中进行学习,并得出结论的。决策树的思路在生活中很常见,比如公司招聘一个机器学习工程师流程:这一系列问题呢就可以表示一颗决策树,树的每一个叶子节点代表一个问题或者结果。即为了分类录用和考察,利用三个特征论文、研究生、GPA、项目来构建一个模型。下面简单用鸢尾花数据实现以下:import nump...

2019-06-23 15:01:49 893

原创 机器学习----keras,Tensorflow安装记录

前言安装的时候走了些弯路,费了点时间,特记录一下。本文只针对如何安装进行介绍,对于keras、Tensorflow不做介绍。一、安装anaconda官网可以下载,建议走清华园开源软件镜像站,速度快。包括后边的pip操作,建议走镜像,否则网速很慢,还会出现其他问题。本次安装的是这个版本,其他版本也差不多。下载好安装包进行安装即可了,参考网上教程。二、创建个tensorfl...

2019-06-23 11:50:41 1067

原创 机器学习----核函数

什么是核函数?前面我们知道SVM的本质就是求解有条件的最优化的问题。变形成求解最优化问题。即对于样本数据集任意两个向量都要做一次点乘计算。如果想使用多项式特征的话,我们之前的做法呢是对于本来的特征xi给他添加多项式特征变成x~i,xj一样,。即上面红色方框中变成求解,我们能不能不把xi 和 xj 先转换成和在做计算呢?设置一个K函数 --->,即有,这个K函数就叫核函数!K就是就是省略...

2019-06-21 16:20:28 340

原创 机器学习----SVM(支撑向量机)

什么是支撑向量机Suppor Vector Machine ,既支持回归又支持分类。之前我们进行分类使用的时决策边界,分布在不同边界的数据被分类成不同类别。如果决策边界不唯一的情况叫做不适定问题,逻辑回归解决不适定问题,定义概率函数sigmoid。 根据sigmoid 建模形成损失函数,最小化损失函数形成边界,损失函数完全由训练集决定的。以上左图的决策边界离红色点太近,...

2019-06-21 14:09:06 1380

转载 Linux基础知识必备

声明:本文转自Github,原文地址:https://github.com/Snailclimb/JavaGuide常见目录说明:/bin:存放二进制可执行文件(ls、cat、mkdir等),常用命令一般都在这里; /etc:存放系统管理和配置文件; /home:存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示...

2019-06-18 22:19:04 128

原创 机器学习--方差(Variance)与偏差(Bias)的平衡及正则化岭回归

首先理解一下什么是方差和偏差:类比到打靶,低方差就是每次打靶的点都比较集中在某部分,低偏差就是每次打靶都离目标较远。方差就是描述的离散程度,偏差描述的命中程度。模型的误差:偏差+方差+不可避免的误差(数据本身的噪音)偏差+方差和算法模型关系密切。导致偏差:如非线性数据使用线性回归,即欠拟合。导致方差:数据的扰动对模型影响很大,即模型学习过多的噪音数据。kNN 天生高方差,非参...

2019-06-18 15:01:01 2598

原创 机器学习--利用学习曲线观察模型泛化能力详解

前言上一节说到了模型欠拟合和过拟合的概念知道,过拟合会导致模型的泛化能力很差,增加新的数据的话并不能预测较为准确的值,甚至错的离谱。那么我们怎么知道一个模型泛化能力的好坏呢?很容易想到的就是使用训练集测试集分离,我们用训练集进行模型的fit,然后拿测试集进行预测,最后对比测试集的特征数据预测出来的结果 对比测试集合的真实结果,就能知道这个模型预测的准确性和泛化能力。除此之外也可以通过学习曲...

2019-06-14 21:36:44 3209

原创 机器学习----过拟合和欠拟合 实例+效果图详解

前言使用多项式回归 可能出现的问题:过拟合和欠拟合过拟合(Over Fitting):算法所训练的模型过多的表达了数据间的噪音关系 。就是太过于细节了!欠拟合(Under Fitting):算法所训练的模型不能完全表述数据关系。就是太笼统了!上手实践线性回归:x=np.random.uniform(-3,3,size=100) #生成x特征 -3到3 100个...

2019-06-14 17:11:11 10031 1

原创 机器学习----多项式回归详解

前言我们在使用线性回归的时候有个局限性,就是他是假设数据背后是存在线性关系的,实际中这种情况还是比较少的。较多的还是非线性关系,多项式回归法正是解决数据之间非线性关系进行预测的机器学习算法,思路还是线性回归的原理。本质还是线性回归,只是增加了样本的特征。如下右图:将x、x^2当成两个特征。 在右图中 相当于在左边的基础上增加了一个特征...

2019-06-14 16:27:05 4200

原创 jupyter notebook中美观显示矩阵

from IPython.display import display,Latex,Math%matplotlib inlinefrom IPython.core.interactiveshell import InteractiveShellsh = InteractiveShell.instance()def number_to_str(n,cut=5): ns=str(...

2019-06-14 15:49:48 3841 2

原创 机器学习基础--kNN算法

一、kNN算法介绍首先先介绍下kNN算法,有这么一个场景给定了肿瘤块的大小和时间的一组数据,其中每一组数据对应一个结果数据,即恶性还是良性。这么一组数据: raw_data_x = [[3.39,2.33], #特征 [3.11,1.78], [1.34,3.37]...

2019-06-10 20:53:07 1211

原创 剑指offer刷题笔记(Java版)---- 跳台阶(递归,动态规划,)

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。解法1:容易想到的,递归,缺点有较多的重复计算public class Solution { public int JumpFloor(int target) { if(target==1){ ...

2019-06-10 10:00:59 231

原创 Hive自定义函数UDF的简单应用。

本实例简单的对json字符串使用自定义函数进行解析,方便hive的使用。首先数据长这样:很多几十万条:{"movie":"2081","rate":"5","timeStamp":"977536266","uid":"106"}{"movie":"1357","rate":"3","timeStamp":"977536364","uid":"106"}{"movie":"902"...

2019-06-09 17:37:40 819

原创 Hive分析窗口函数的使用

一:基本的窗口函数使用,SUM,MIN,AVG,MAX用于实现分组所有统计和连续累计的统计。准备数据能更好的理解对函数的使用,假设以下数据,页面、时间、访问次数。page time pvhttps://baidu.com/,2019-06-01,2https://baidu.com/,2019-06-02...

2019-06-09 15:13:33 478

原创 Hive维度表设计之--缓慢变化维、维度层次、维度一致性

维度表设计维度表在维度建模中相当重要,在维度表设计中的一些问题直接关系到维度建模的好坏。1、维度变化维度表通常来自于业务系统,比如商品维度可能来自超时pos系统的商品表,但是商品会变化的,比如类目,标签价格,描述等,这些变化可能是之前错误需要订正,也可能是本身业务的变化。这种缓慢变化的维度,称为缓慢变化维度,那么源头数据的变化在维度表中如何表示呢 ??1.1、重写纬度值新维度值...

2019-06-09 13:35:24 7578

原创 剑指offer刷题笔记(Java版)---- 斐波那契(三种解法)

解法1:最容易想到的,递归呗。缺点,重复计算多啊,数大的话容易栈溢出比如:Fibonacci(5) =Fibonacci(4)+Fibonacci(3) =Fibonacci(3)+Fibonacci(2)+Fibonacci(2)+Fibonacci(1) ...

2019-06-03 23:39:29 169

原创 剑指offer刷题笔记(Java版)---- 两个栈实现队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解法:比较简单,栈1用来push,栈2用来pop。比如:123首先push到栈1,出栈的时候,把栈1里面的数据push到栈2,然后在pop栈2。import java.util.Stack;public class Solution { Stack<Integer> stack1...

2019-06-02 22:23:34 109

原创 剑指offer刷题笔记(Java版)---- 从尾到头打印链表

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解法1 :首先我们想到的就是递归实现了,其实底层也是栈。/*** public class ListNode {* int val;* ListNode next = null;* ListNode(int val) {* this.val =...

2019-06-02 10:54:41 115

原创 剑指offer刷题笔记(Java版)---- 二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法1:采用二分查找的思想,题干中给了,从做到右从上到下是递增的,对每一维进行一次二分查找。public class Solution { public boolean Find(...

2019-06-01 22:42:06 121

原创 随笔--厉害的人都是怎么思考问题的?

今天读了一篇知乎的博客觉得收获很多,标题是"厉害的人遇到问题的思维模式和普通人的区别是什么?",看的是最高赞140k的一位答主的解答。原文请戳:https://www.zhihu.com/question/301459876/answer/525937106从低级到最顶级一级一级的剖析,觉得很有道理。level 1 :环境典型代表:遇到问题首先从环境不友好去思考,认为一切导致问题的...

2019-06-01 15:31:08 236 1

原创 HiveSQL行转列lateral view explore()以及连接concat_ws()和列转行collect_list()&collect_set()区别的使用案例

行转列:在我们使用hive进行数据统计分析时可能有这么一个场景:一行数据中,一个字段中有很多和数据项,我们需要对每个数据项进行一个统计分析。例如:一个人有很多人生的重要阶段,我们有一批人,求在某个阶段的人的总数uid,stage1,jiehun:shengzi:maiche2,maiche:maifang3,maifang:jiehun4,dushu:maiche5,d...

2019-05-29 10:53:51 6439

原创 Hive函数 explore() 和lateral view的使用

假如有这么一组类型的数据:id,name,course1,xiaoming,数学:语文:生物:化学2,lilei,化学:地理:物理:语文3,hanmeimei,数据结构:操作系统:计组我们要把他放到hive表中做相应的操作,course显然需要array<string>类型即:create table t_xuanxiu(uid string,name st...

2019-05-28 11:59:53 5246

原创 Hive窗口函数 row_number over()和sum() over()的使用详解

row_number over()的使用:假如我们有这样一组数据,我们需要求出不同性别的年龄top2的人的信息。这个时候怎么做?可能我们会首先想到分组,但是分组只能值top1,怎么样能求出top2,top3呢?这时候我们想如果分组后能够按照年龄排序然后标出来序号就好了!id age name sex1,18,xiaoli,male2,19,wang,male3,22,l...

2019-05-27 22:10:34 27352

原创 LeetCode刷题笔记(Java版)----150. 逆波兰表达式求值

解法1:构建一个栈,循环string数组,讲数组中的元素转换成int放入栈中,如果出现了异常,说明是操作符号。然后捕获进行处理,即出栈两个元素进行相应的加减乘除操作。操作后的结果在放入栈中,最终栈中的元素即为最终结果。class Solution { public int evalRPN(String[] tokens) { Stack<Integer>...

2019-05-27 16:35:13 286

原创 HA总结,zookeeper,HDFS,YARN

HDFS-HA架构ActiveNode和StandbyNode形成互备,当Active挂掉的时候启动standby作为active对外提供服务。 ZKFailoverController 作为独立的进程运行,对 NameNode 的主备切换进行总体控制。ZKFailoverController 能及时检测到 NameNode 的健康状况,在主 NameNode 故障时借助 Zook...

2019-05-23 10:49:42 617

原创 HBase不睡觉读书笔记----HBase内部解析(数据模型,如何存储)

一,数据模型namespace:多表分到一个组里管理的时候用到。数据库中表 很多的时候才用到 Table:由多个列族组成,有数据属性,eg:超时时间TTL,压缩算法(conpression),都在列族中定义, Row:多列组成,by列族分类。 Culumn Family:列族是多个列的集合,HBase会把一个列族的列放到同一个服务器上,提高存取性能。 批量管理一堆列,建表定义列族而非列...

2019-05-12 16:12:19 349

原创 Spark的Cache和checkpoint

Checkpoint:有时候我们对RDD的计算会复杂很多,而且可能耗时很多费很大仅才会计算出来的结果,这个结果是来之不易的,以后可能还需要使用。所以希望进行持久化的操作,一遍日后使用的时候直接调用这个中间结果,不用在进行一次复杂耗时的计算。 如果persist()或者cache到内存,虽然最快速但是也是最不可靠的。磁盘相对比内存更可靠些。 Checkpoint 可以指定把数据放在本地并且是...

2019-05-09 11:16:11 683

原创 Spark算子之fold()和aggregate()的解释

RDD算子其他的都比较好理解,唯独fold和agg这俩稍微比较难理解一点,因为scala语言这个语法个人感觉有点异于其他语言。先说说reduce()函数,他和fold()函数也就一个初始值的区别:val rdd=list1.parallelize(List(1,2,3,4))rdd.reduce((x,y)=>x+y)其实就是 1+2+3+4 返回10 ,x其实指代的就是返...

2019-05-08 21:41:41 836

原创 MapReduce超详细内部核心工作机制

比如说我们需要MR去对hdfs的...../input/file1,2,3,4,5.....的很多文件进行处理,首先在提交MR程序的时候Job客户端会根据你写的目录去扫描所有的文件。按照block size进行分片的划分。然后,不同的map task 并行的去处理这些分片。假设map task 0 去处理split 0 :首先,TextInputFomat将split0读进来,然后...

2019-05-08 14:01:51 187

原创 LeetCode刷题笔记(Java版)----202、快乐数

202、快乐数一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。解法一:思路,用set记录每次对一个数进行平方操作后的数,记录一次判断一次这个数是否出现过,或者是否为1,如果出现过说明不是快乐数,如果为1则说明是快乐数。#重点是,不是快乐数会一...

2019-05-07 22:29:13 432

原创 LeetCode刷题笔记(Java版)----198,打家劫舍

198,打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。class Solution { public int rob(int[] n...

2019-05-07 22:28:07 323

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除