自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

汪云辉的博客

跳出自我认识看世界

  • 博客(71)
  • 收藏
  • 关注

原创 数仓-集群环境搭建

集群环境搭建1-数据仓库DW数据来源:  爬虫 日志采集系统 业务数据 财务系统数据去向:  报表系统、用户画像、推荐系统、机器学习、风控系统 项目需求分析  ① 数据采集平台搭建  ② 实现用户行为数据仓库的分层搭建  ③ 实现业务数据仓库的分层搭建  ④ 针对数据仓库中的数据进行,留存、转化率、GMV(每天交易额)、复购率、活跃等报表行为;  项目框架技术选型 ...

2019-09-07 20:07:14 1124

原创 Hive-基本操作

Hive 基本操作1-Hive HQL基本操作2-Hive的内部表和外部表3-分区表1-Hive HQL基本操作创建数据库CREATE DATABASE test;显示所有数据库SHOW DATABASES;创建表CREATE TABLE student(classNo string, stuNo string, score int) row format ...

2019-09-03 20:03:34 553

原创 Hive-基本概念

hive1-hive简介1.1什么是 HiveHive 由 Facebook 实现并开源,是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能,底层数据是存储在 HDFS 上。Hive 本质: 将 SQL 语句转换为 MapReduce 任务运行,使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计...

2019-09-03 19:38:05 904

原创 hadoop系统-分布式计算框架MapReduce

分布式计算框架MapReduce1-MapReduce概念 和 MapReduce编程模型2-MapReduce原理详解单机程序计算流程输入数据—>读取数据—>处理数据—>写入数据—>输出数据Hadoop计算流程input data:输入数据InputFormat:对数据进行切分,格式化处理map:将前面切分的数据做map处理(将数据进行分类,输出...

2019-09-02 23:02:53 428

原创 hadoop系统-资源管理系统YARN

资源管理系统YARN1YARN的概念和产生背景1.1什么是YARNYet Another Resource Negotiator, 另一种资源协调者通用资源管理系统为上层应用提供统一的资源管理和调度,为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处1.2通用资源管理系统Hadoop数据分布式存储(数据分块,冗余存储)当多个MapReduce任务要用到相同的h...

2019-09-02 22:52:51 441

原创 hadoop系统-分布式文件系统 HDFS

分布式文件系统 HDFS1HDFS设计思路2HDFS架构1个NameNode/NN(Master) 带 DataNode/DN(Slaves) (Master-Slave结构)1个文件会被拆分成多个BlockNameNode(NN)负责客户端请求的响应负责元数据(文件的名称、副本系数、Block存放的DN)的管理元数据 MetaData 描述数据的数据监控DataN...

2019-09-02 22:39:57 400

原创 大数据技术之Hadoop

大数据技术之Hadoop简介大数据的特点大数据应用场景大数据部门组织结构(重点)大数据部门组织结构,适用于大中型企业,如图所示。Hadoop框架1.1什么是hadoop1.2hadoop发展史1.3hadoop三大发行版Hadoop三大发行版本:Apache、Cloudera、Hortonworks。Apache版本最原始(最基础)的版...

2019-09-02 22:11:30 278

原创 推荐系统-基于内容的推荐算法(Content-Based)

基于内容的推荐算法(Content-Based)简介基于内容的推荐方法是非常直接的,它以物品的内容描述信息为依据来做出的推荐,本质上是基于对物品和用户自身的特征或属性的直接分析和计算。例如,假设已知电影A是一部喜剧,而恰巧我们得知某个用户喜欢看喜剧电影,那么我们基于这样的已知信息,就可以将电影A推荐给该用户。基于内容的推荐实现步骤画像构建。顾名思义,画像就是刻画物品或用户的特征。...

2019-08-31 20:36:55 3195

原创 推荐算法-基于矩阵分解的CF算法实现(二):BiasSvd

基于矩阵分解的CF算法实现(二):BiasSvdBiasSvd其实就是前面提到的Funk SVD矩阵分解基础上加上了偏置项。BiasSvd利用BiasSvd预测用户对物品的评分,k表示隐含特征数量:算法实现'''BiasSvd Model'''import mathimport randomimport pandas as pdimport numpy as np...

2019-08-31 20:30:10 3545

原创 推荐系统算法-基于矩阵分解的CF算法实现(一):LFM

基于矩阵分解的CF算法实现(一):LFMLFM也就是前面提到的Funk SVD矩阵分解LFM原理解析LFM(latent factor model)隐语义模型核心思想是通过隐含特征联系用户和物品,如下图:算法实现数据加载import pandas as pdimport numpy as npdtype = [("userId", np.int32), ("mov...

2019-08-31 20:26:29 1362

原创 推荐系统算法-基于矩阵分解的CF算法

基于矩阵分解的CF算法矩阵分解发展史raditional SVD:通常SVD矩阵分解指的是SVD(奇异值)分解技术,在这我们姑且将其命名为Traditional SVD(传统并经典着)其公式如下:Traditional SVD分解的形式为3个矩阵相乘,中间矩阵为奇异值矩阵。如果想运用SVD分解的话,有一个前提是要求矩阵是稠密的,即矩阵里的元素要非空,否则就不能运用SVD分解。很显然我...

2019-08-31 20:05:03 547

原创 推荐系统算法-基于回归模型的协同过滤推荐

基于回归模型的协同过滤推荐如果我们将评分看作是一个连续的值而不是离散的值,那么就可以借助线性回归思想来预测目标用户对某物品的评分。其中一种实现策略被称为Baseline(基准预测)。Baseline:基准预测Baseline设计思想基于以下的假设:有些用户的评分普遍高于其他用户,有些用户的评分普遍低于其他用户。比如有些用户天生愿意给别人好评,心慈手软,比较好说话,而有的人就比较苛刻,总...

2019-08-31 19:55:48 1632 1

原创 推荐系统算法-Model-Based 协同过滤算法

Model-Based 协同过滤算法随着机器学习技术的逐渐发展与完善,推荐系统也逐渐运用机器学习的思想来进行推荐。将机器学习应用到推荐系统中的方案真是不胜枚举。以下对Model-Based CF算法做一个大致的分类:基于分类算法、回归算法、聚类算法基于矩阵分解的推荐基于神经网络算法基于图模型算法接下来我们重点学习以下几种应用较多的方案:基于回归模型的协同过滤推荐...

2019-08-31 19:38:23 1113

原创 推荐系统

1-推荐系统简介1.1推荐系统概念及产生背景个性化推荐(推荐系统)经历了多年的发展,已经成为互联网产品的标配,也是AI成功落地的分支之一,在电商(淘宝/京东)、资讯(今日头条/微博)、音乐(网易云音乐/QQ音乐)、短视频(抖音/快手)等热门应用中,推荐系统都是核心组件之一。什么是推荐系统没有明确需求的用户访问了我们的服务, 且服务的物品对用户构成了信息过载, 系统通过一定的规则对物...

2019-08-31 19:32:46 2046

原创 mysql-补充

mysql 新手必知必会1–SQLSQL语句结构结构化查询语言包含6个部分:一:数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常...

2019-08-22 20:37:43 261

原创 pandas系列总结案例

pandas系列总结案例1 需求现在我们有一组从2006年到2016年1000部最流行的电影数据数据来源:https://www.kaggle.com/damianpanek/sunday-eda/data问题1:我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?问题2:对于这一组电影数据,如果我们想知道rating,runtime的分布情况,应该如何呈现数据...

2019-08-15 20:46:27 682

原创 pandas-高级处理-分组与聚合

pandas-高级处理-分组与聚合目标应用groupby和聚合函数实现数据的分组与聚合分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况想一想其实刚才的交叉表与透视表也有分组的功能,所以算是分组的一种形式,只不过他们主要是计算次数或者计算比例!!看其中的效果:1 什么分组与聚合2 分组APIDataFrame.groupby(key...

2019-08-15 20:24:59 474 1

原创 pandas-高级处理-交叉表与透视表

pandas-高级处理-交叉表与透视表目标应用crosstab和pivot_table实现交叉表与透视表1 交叉表与透视表什么作用探究股票的涨跌与星期几有关?以下图当中表示,week代表星期几,1,0代表这一天股票的涨跌幅是好还是坏,里面的数据代表比例可以理解为所有时间为星期一等等的数据当中涨跌幅好坏的比例交叉表:交叉表用于计算一列数据对于另外一列数据的分组个数(...

2019-08-15 20:10:30 236

原创 pandas-高级处理-合并

pandas-高级处理-合并目标应用pd.concat实现数据的合并应用pd.merge实现数据的合并如果你的数据由多张表组成,那么有时候需要将不同的内容合并在一起分析1 pd.concat实现数据合并pd.concat([data1, data2], axis=1)按照行或列进行合并,axis=0为列索引,axis=1为行索引比如我们将刚才处理好的one-hot...

2019-08-15 19:52:04 252

原创 pandas-高级处理-数据离散化

pandas-高级处理-数据离散化1 为什么要离散化连续属性离散化的目的是为了简化数据结构,数据离散化技术可以用来减少给定连续属性值的个数。离散化方法经常作为数据挖掘的工具。2 什么是数据的离散化连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值。离散化有很多种方法,这里使用一种最简单的方式去操作原始人的身高...

2019-08-15 19:30:53 1556

原创 pandas 高级处理-缺失值处理

pandas 高级处理-缺失值处理1 如何处理nan1获取缺失值的标记方式(NaN或者其他标记方式)2如果缺失值的标记方式是NaN判断数据中是否包含NaN:pd.isnull(df),pd.notnull(df)存在缺失值nan,并且是np.nan:1、删除存在缺失值的:dropna(axis=‘rows’)注:不会修改原数据,需要接受返回值...

2019-08-15 19:16:36 412

原创 pandas-文件读取与存储

pandas-文件读取与存储我们的数据大部分存在于文件当中,所以pandas会支持复杂的IO操作,pandas的API支持众多的文件格式,如CSV、SQL、XLS、JSON、HDF5。我们的数据大部分存在于文件当中,所以pandas会支持复杂的IO操作,pandas的API支持众多的文件格式,如CSV、SQL、XLS、JSON、HDF5。1 CSV1.1 read_csvpan...

2019-08-15 18:56:39 807

原创 pandas绘图

pandas绘图1 pandas.DataFrame.plotDataFrame.plot(kind=‘line’)kind : str,需要绘制图形的种类‘line’ : line plot (default)‘bar’ : vertical bar plot‘barh’ : horizontal bar plot关于“barh”的解释:barth‘hist’ : hist...

2019-08-15 18:03:53 206

原创 pandas-DataFrame运算

DataFrame运算1 算术运算add(other)比如进行数学运算加上具体的一个数字data['open'].add(1)2018-02-27 24.532018-02-26 23.802018-02-23 23.882018-02-22 23.252018-02-14 22.49sub(other)2 逻辑运算2.1 逻辑...

2019-08-15 17:24:35 3417

原创 pandas 基本数据操作

pandas 基本数据操作为了更好的理解这些基本操作,我们将读取一个真实的股票数据。关于文件操作,后面在介绍,这里只先用一下API# 读取文件data = pd.read_csv("./data/stock_day.csv")# 删除一些列,让数据更简单些,再去做后面的操作data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","...

2019-08-15 17:02:30 274

原创 Pandas数据结构

Pandas数据结构Pandas中一共有三种数据结构,分别为:Series、DataFrame和MultiIndex(老版本中叫Panel )。其中Series是一维数据结构,DataFrame是二维的表格型数据结构,MultiIndex是三维的数据结构。1.SeriesSeries是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与...

2019-08-14 21:55:43 508

原创 Pandas介绍

1Pandas介绍2008年WesMcKinney开发出的库专门用于数据挖掘的开源python库以Numpy为基础,借力Numpy模块在计算方面性能高的优势基于matplotlib,能够简便的画图独特的数据结构2为什么使用PandasNumpy已经能够帮助我们处理数据,能够结合matplotlib解决部分数据展示等问题,那么pandas学习的目的在什么地方呢?增强图表可读...

2019-08-14 21:12:53 225

原创 二叉树反推

二叉树反推二叉树有三种深度优先遍历方法:先序中序和后序,如果已知中序和先序,或已知中序和后序,可以确定二叉树的结构。例:先序:0 1 3 7 8 4 9 2 5 6中序:7 3 8 1 9 4 0 5 2 61、先序找根,中序定两边先序的特点是第一个元素是根确定0是根节点,中序的特点是根两侧分别是左右子树确定7 3 8 1 9 4 在0左边,5 2 6在0右边所以我们反推分界初始...

2019-08-11 20:30:27 1393

原创 二叉树的遍历-深度优先遍历-广度优先遍历(层次遍历)

二叉树的遍历树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。广度优先遍历(层次遍历)从树的root开始,从上到下从从左...

2019-08-11 20:14:43 562

原创 二叉树

二叉树二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1:在二叉树的第i层上至多有2^(i-1)个结点性质2:深度为k的二叉树至多有2^k - 1个结点性质3:对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;性质4:...

2019-08-11 20:00:40 177

原创 二分法查找

二分查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一...

2019-08-11 19:45:57 350

原创 归并排序

归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。def merge_sort(alist): if len(alist) <= 1...

2019-08-11 19:40:21 146

原创 快速排序-Quicksort

快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有...

2019-08-11 19:36:32 202

原创 希尔排序-Shell Sort

希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序的分析def she...

2019-08-11 19:29:19 323

原创 插入排序-Insertion Sort

插入排序插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序分析def insert_sort(alist): # 从第二个位置,即下标为1的元素开始向前...

2019-08-11 19:14:55 333

原创 选择排序-Selection sort

选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个...

2019-08-11 17:33:18 212

原创 冒泡排序-Bubble Sort

冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相...

2019-08-11 17:21:52 222

原创 python数学科学库之Matplotlib

Matplotlib可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。能将数据进行可视化,更直观的呈现使数据更加客观、更具说服力实现一个简单的Matplotlib画图# 1.创建画布plt.figure(figsize=(20,8), dpi=100)# 2.绘制图像x = [1,2,3]y = [4,5,6]plt.plot(x, y)...

2019-07-29 22:39:51 358

原创 python系列之Gunicorn

GunicornGunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。安装gunicornpip install gunicorn查看命令行选项: 安装gunic...

2019-07-20 19:26:17 1428

原创 python系列之搜索引擎原理与开发流程(Elasticsearch)

Elasticsearch简介与原理You know, for search!文档 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.htmlElasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多用户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。所有其他语...

2019-07-20 19:01:48 536

空空如也

空空如也

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

TA关注的人

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