自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ricky

源于对技术本身的追求,源于对知识的渴求!

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

原创 NLP--解决Mac OS 10.14.4Python下pip install pyhanlp 失败

1.安装环境:Mac OS 10.14.4Python 3.6.8 :: Anaconda, Inc.gcc-8 (Homebrew GCC 8.3.0) 8.3.0Copyright © 2018 Free Software Foundation, Inc.This is free software; see the source for copying conditions. The...

2019-12-02 18:58:29 898 4

原创 推荐系统之---正负样本构造trick

1.说明在推荐系统的排序阶段,有一个很重要的步骤就是,构造用户-物品的特征向量,这个过程可以说直接决定了模型的优劣情况。正所谓 “数据是模型的上限” 。在后续的时间会持续更新一些小trick。2.Some Tricks2.1 Feed流场景下构造样本在Feed流场景下,使用曝光(展示)日志时,应该选择APP的SDK埋点的日志,而不是服务器Web接口返回的日志,因为Web接口...

2019-05-25 22:57:06 13657 4

原创 树类算法之---决策树Cart树Gini系数就算原理。

1.介绍ID3树与CART树的区别:ID3算法中,选择的是信息增益来进行特征选择,信息增益大的特征优先选择。而在C4.5中,选择的是信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的缺点。但是无论是ID3还是C4.5,都是基于熵的模型,里面会涉及到大量的对数运算,能不能简化一下?GINI系数的计算公式:假设有数据集D,定义GINI指数:GINI(D)=&T...

2019-05-23 18:16:55 13487 3

原创 NLP之---word2vec算法skip-gram原理详解

1.词嵌入(word2vec)自然语言是一套用来表达含义的复杂系统。在这套系统中,词是表义的基本单元。顾名思义,词向量是用来表示词的向量,也可被认为是词的特征向量或表征。把词映射为实数域向量的技术也叫词嵌入(word embedding)。近年来,词嵌入已逐渐成为自然语言处理的基础知识。2.为何不采用one-hot向量【如何使用one-hot】假设词典中不同词的数量(词典大小)为NNN...

2019-05-19 16:21:45 49325 41

原创 推荐系统之---LFM的各种版本

1.说明在推荐系统中有两种协同过滤的方式。一种是基于邻域的方式,这种方式又包含了基于用户的和基于物品的,这种方式实现简单,而且效果也是非常的不错,唯一的缺点是对待稀疏矩阵的时候表现乏力。因此诞生了下面的方式。方式二是基于模型的方式,也就是矩阵分解的方式,这种方式将推荐问题转化为了机器学习问题。下面通过一个图来说明,不再详细介绍原理,而是主要分析各种LFM实现的变种上图的大矩阵可以...

2019-05-14 22:31:12 15162

原创 推荐系统之---UGC标签推荐方式

1.说明UGC标签系统是很多网站、平台的必要组成成分,下面简单介绍如何使用UGC的方式进行推荐。2.标签的种类表明物品是什么:比如一本书,就会有“书”的标签。表明物品的种类:比如《数学之美》,就会有“数学”的标签。表明谁拥有的物品:比如本篇博客的所属。表达用户的观点:比如给某个商品、电影打上“搞笑”的标签。用户相关的标签:比如网易云里一首歌《Lemon》,标注为“我喜欢”。用户的...

2019-05-14 13:43:46 1834 1

原创 推荐系统之---如何理解低秩矩阵?

1.说明在推荐系统中有有一种推荐方式:LFM,也叫隐因子分解。这中推荐方式在Netflix公司的百万美金大赛中可以说是大放异彩。但是在这里面涉及到一个假设。假设评分矩阵是低秩的(Low rank)。那什么样的矩阵是低秩的?怎么理解低秩呢?2.图像中的“秩”除了在推荐系统中应用低秩概念,其实在图像处理中也会应用到低秩。秩的英文表达是rank,在图像中rank可以理解为图像中所包含信息的丰富程...

2019-05-11 16:39:53 14888 9

原创 深度学习之---卷积神经网络中各中操作的作用

【前馈神经网络】前馈神经网络也叫做全连接网络。不过多介绍缺点:在图像识别中会将多维向量平铺成一维向量,会丢失像素点之间的距离关系。无法将局部的权重应用到其他位置,带来的后果就是,如果在一个图像的右上角有一只猫,可以正确分类;当这只猫出现在左下角时,无法正确识别。【局部连接】所谓局部连接就是卷积神经网络。卷积神经网络就是让权重在不同位置共享的神经网络。如上图就是卷积...

2019-05-09 21:50:40 4131

原创 深度学习之---卷积神经网络

1.简介本篇介绍卷积神经网络。今年来深度学习在计算机视觉领域取得突破性成果的基石。目前的工业场景应用也是越来越多,比如自然语言处理、推荐系统和语音识别等领域广泛使用。下面会主要描述卷积神经网络中卷积层和池化层的工作原理,并解释填充、步幅、输入通道和输出通道的含义。后面也会介绍一点比较有代表性的神经网络网络结构,比如:AlexNet、VGG、NiN、GoogLeNet、ResNet、DenseN...

2019-05-09 11:34:01 3042 1

原创 深度学习之---基础

1.介绍作为机器学习的一类,深度学习通常基于神经网络模型逐级表示越来越抽象的概念或模式。既然如此,那就少不了对神经网络的基础知识的回顾。下面就是回顾流程:线性回归softmax回归多层感知机以及过拟合的处理方式正向传播算法、反向传播算法2.线性回归线性回归是一个非常基础的概念,在日常生活中也是非常的常见比如房价预测、气温预测、销售额预测等,基本的一个特征就是输出值是连续的。...

2019-04-29 19:17:27 1075 2

原创 深度学习之---起源

1.简介在大多数开始关注深度学习的人都有过一些编程的经历,与此同时也会关注过一些机器学习和深度学习的报道或者文章甚至是书籍。但是更多的时候,深度学习会被冠以更加广义的一种含义:人工智能。其实,在日程应用的大多数的程序都不需要深度学习、人工智能这样的需求。比如:做一个电饭煲的用户界面,可能几个小时就可以写出很多个按钮,以及定义好的规则。像这种问题就可以以目标、应用为方向去做。假如现在有这样的一...

2019-04-28 13:34:36 2743

原创 树类算法之---lightGBM使用与调参

1. 说明官方文献说明,想深入研究的可以戳进去进一步学习lightGBM是一个基于树模型的分布式Boosting算法,该算法是有微软开源贡献,说到tree-based模型一般都会想到XGBOOST算法,毕竟也是曾经的大杀器,那下面就把这两个算法进行一些对比。2.Xgboost的优缺点优点:(不详细说了,默认有树模型基础)1.Xgboost利用的二阶梯度,相对于lightGBM在进行节点...

2019-04-23 16:34:15 9324 3

原创 Spark之---UpdateStateByKey算子操作

1.说明SparkStreaming的一般是7天24小时不停息的运行,而在运行的时候,中间会有很多的状态,而有些状态我们需要一些操作,比如累计,更新或者其他的操作。那么如何将这些独立的状态联系起来就成了一种迫切的需求。2.介绍UpdateStateByKey的主要功能:1、为Spark Streaming中每一个Key维护一份state状态,state类型可以是任意类型的, 可以是一个自...

2019-04-22 17:25:01 7135

原创 LeetCode刷题之---整数反转

1.问题说明来源,给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例2:输入: -123输出: -321示例3:输入: 120输出: 212.代码说明class Solution: def reverse(self, x): """ :type x: int ...

2019-04-22 13:51:19 191

原创 LeetCode刷题之---两数之和

1.问题说明来源,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...

2019-04-22 13:32:05 130

原创 LeetCode刷题之---上一个排序

1.问题说明上一个排序,随机给定一个数组,目标任务是找到“上一个排序”,那么什么是上一个排序呢?这个问题可能很多人看到就直接懵逼了,所谓上一个排序,之的就是按照升序排序,然后依次选取次大的元素进行排序组合,如果本身就是完全升序的,那么上一个排序就是完全逆序。可能说完了还是有些迷糊,下面就用一个例子说明:# 举个栗子:[1,2,3]--这是一个完全升序,那么它的排序依次是:[1,2,3] ...

2019-04-21 13:29:24 345

原创 LeetCode刷题之---Python冒泡排序

1.原理说明这个原理还是比较简单的,想是水中的气泡一样,拿出列表中的一个值和其他值进行比较,大的就往上走,这样的遍历完所有的元素,所有的大的就全部到到了距离水面近的位置。时间复杂度稍微大一些O(n^2)2.代码说明def maopao(list1): # 判断元素个数,如果小于2就不必排序 if len(list1) < 2: return list1 # 遍历 for i...

2019-04-21 12:17:15 425

原创 推荐系统之---偏好数据构建

1.用户行为分类根据用户操作的复杂度,将用户的操作分为四类;一类:查看、停留、投票、评论、收藏、关注;二类:转发;三类:加入购物车:四类:购买;2.类别权重一类:10%二类:20%三类:30%四类:40%3.创建原始数据表/*Table structure for table `user_product_base` */DROP TABLE IF EXISTS ...

2019-04-19 15:43:52 501

转载 推荐系统之---经验10坑整理

1.隐式反馈比显式反馈要爽所谓隐式反馈,就是用户发出这些行为时并不是为了表达兴趣/态度,只是在正常使用产品而已,反之,显式反馈就是用户在做这个操作时就是要表达自己的态度,如评分,投赞成/反对票。Xavier Amatriain列举了隐式反馈的以下好处:1.数据比显示反馈更加稠密。诚然,评分数据总体来说是很稀疏的。之前的Netflix的百万美元挑战赛,给出的数据稀疏度大概是1.2%,毕竟评分...

2019-04-18 15:40:50 1408

原创 NLP之---gensim库word2vec的使用经验

1.说明在本篇中不介绍关于word2vec的算法原理,仅仅分析关于gensim库中word2vec的使用经验。2.安装pip install gensim3.训练模型from gensim.models import Word2Vecmodel = Word2Vec(sentence,sg=1,size = 100,window = 5,min_count = 5,negative ...

2019-04-15 10:07:21 1423

原创 推荐系统之---企业级平台推荐设计

前言不管是做直播推荐、电商平台推荐、视频推荐、亦或是其他平台的推荐,从技术上讲【很多东西都是想通的,也许你可以从这里借鉴到你想要的东西。】下面我会按照以下顺序开始介绍,并且这个顺序也大概是推荐架构实现的一个顺序:用户画像系统推荐召回系统推荐排序系统推荐系统评估系统如果某些同学,对某些部分已经非常熟悉了,可以直接跳过,毕竟这里只是介绍了这些系统是怎么去做的,以及在整个架构中起到了什么...

2019-03-30 11:48:17 839

原创 树类算法之--XGBoost算法原理&代码实战

1.算法原理介绍1.1Xgboost简介xgboost是Boosting算法的其中一种,Boosting算法的思想是许多弱分类器集成在一起,形成一个强分类器。以为xgboost是一种提升树模型,所以他是将许多树模型集成在一起,形成一个很强的分类器。而所用到的树模型则是cart回归树模型。xgboost是在GBDT的基础上进行改进,使得更加强大,使用范围更大xgboost一般和sklear...

2019-03-26 20:11:29 8768 1

原创 Python之--时间序列(一)&时间数据分析

1.时间序列不管在哪个领域中(金融学、经济学、生态学、神经科学、物理学等),时间序列数据都是一种重要的结构化数据形式,在多个时间点观察或者测量到的任何事物都可以形成一段时间序列。很多时间序列是固定频率的,也就是说,数据点是根据某种规律定期出现的(比如每15分钟、每5分钟、每一个月等)。时间序列也可以是不定期的。时间序列数据的意义取决于具体的应用场景,主要有以下几种:时间戳(timestamp...

2019-03-25 15:34:40 5613

原创 Python之---【Pandas】聚合技术(GroupBy技术)

1.分组运算所谓的“分组运算”是多个步骤的一个组合,我们可以拆分为“split-apply-combine”(拆分-应用-合并),我觉得这个词很好的描述了整个过程。分组运算的第一个阶段,pandas对象(无论是Series,DataFrame还是其他的)中的数据会根据你所提供的一个或多个“key”,被拆分(split)为多个组。拆分操作是在对象的特定轴上执行的,例如,DataFrame可以在其行...

2019-03-23 16:03:59 1467

转载 Python之---数据离散化【等宽】【等频】【聚类】

1.数据离散化的迫切需求一些数据挖掘算法中,特别是某些分类算法(eg:LR、决策树算法等),要求数据是分类属性形式。因此常常需要将连续属性变换成分类属性,即离散化。离散化就是在数据的取值范围内设定若干个离散的划分点,将取值范围划分为一些离散化的区间,最后用不同的符号或者整数值代表落在每个区间中的数据值。所以离散化涉及两个过程:确定分类数&将连续属性值映射到n个分类值。注意:常用的离散...

2019-03-19 11:18:11 9989 1

原创 Python之---【pandas】pd.concat(df)、df.append(df)

1.官网学习学习的来源是官方网站,但是对于一些英文阅读能力较弱的童鞋,可能存在一些困难,在这里给出了官网的传送门,想深入了解的可以戳进去了解!pandas.concat()pandas.merging()2.构造数据为了后面演示方便,我现在会提前构造出一些数据,这些数据随手构造的,基本和平时用到的数据格式是一样的,如果觉得我造的数据比较丑,大家可以按照自己的喜好重新构造。下面介绍一下数据...

2019-03-17 17:31:22 42477 1

原创 Spark之---【ML】算法库ALS简介

1. 协同过滤内容协同过滤显性反馈与隐性反馈缩放正则化参数冷启动问题2. 协同过滤协同过滤 通常用于推荐系统。 这些技术旨在填写用户项关联矩阵的缺失条目。 spark.ml 目前支持基于模型的协同过滤, 其中用户和产品由一小组可用于预测缺失条目的潜在因素描述。spark.ml 使用交替最小二乘( ALS) 算法来学习这些潜在因素。 实现中 spark.ml 包含以下参数:num...

2019-03-16 22:42:59 2846

原创 sklearn之--特征工程

1.什么是特征工程?在数据科学界流传着一种说法,“数据决定了模型的上限,算法决定了模型的下限”,因此在这个“说法”中,明确的表明了,只有好的数据才能够有好的模型,数据才是决定了模型的关键因素。而特征工程做的事情,简单来说,就是找到好的数据,拿给模型“吃”。下面采用一个思维导图来简单展现结构:在sklearn中包含了上面所列的大多数的方式,包括数据预处理,特征选择,降维等。首次接触到sklea...

2019-03-15 23:34:52 362

原创 LeetCode刷题之---Python快排

快速排序原理:如果列表长度小于1就不用排了随意在列表中取一个值num ,我这里取第一个值了将原列表根据这个num,把列表分成两部分,这里是通过列表推导式实现递归的调用函数,可以根据需求升序、降序def quick_sort(list1): if len(list1) &lt; 1: return list1 num = list1[0] start = [x ...

2019-03-15 23:34:36 514 1

原创 Linux下部署Python环境(Anaconda部署)

1.安装说明这里介绍一下如何在Linux环境下部署Python环境,并且为了方便开发,这里直接介绍使用Anaconda部署,而没有使用原生的Python。下面的安装将以3.X版本进行演示,如果需要其他版本可以自行下载2.安装文件下载为了方便操作,可以先在Windows环境的中把安装包下载好,然后使用rz或者ftp方式将下载好的文件上传到Linux服务器。戳进去下载安装包安装包下...

2018-12-18 14:32:27 4477

原创 Mac下安装lightgbm-image not found

Mac下安装lightgbm1.安装环境2.错误安装3.正确安装1.确保homebrew安装,并已经更新2.安装cmake依赖3.编译4.构建5.错误处理6.安装lightgbm7.手动配置1.安装环境系统MacOS Mojave版本10.14.2Xcode10.1$ clang -vApple LLVM version 10.0.0 (clang-1000.11....

2018-12-17 12:02:34 3737 8

原创 决策树

1、决策树简单认识决策树也是一种树模型,符合树的基本特征,由树根、树干、树枝、树叶四部分组成。决策树是一种监督学习算法,英文Decision Tree决策树的思想很朴素,类似于if-else的判断,可以很好的解释算法的训练流程2、构建算法的三个步骤2.1 构建决策树的三个步骤特征选择:选取具有较强分类能力的特征决策树生成:典型算法ID3:采用信息增益作为特征选择度量C4.5:采用信息增益率作为特征...

2018-07-13 22:04:06 519

原创 Spark中的广播变量broadcast

1,为什么要使用广播变量?简单说,就是在分布式计算的时候,每个节点或者多个节点需要相同的少部分数据,而这些数据仅仅存在于某个节点,此时可以使用广播变量,将数据以广播的形式下发到Executor中,然后通过blockManager从Executor中获取数据,并保存到本地,可以极大的减少节点间的网络IO。1.问题描述:将来数据量可能很大,所以ip规则肯定是存储在HDFS中的,这样在读取的时候根据切片...

2018-07-05 17:45:18 999

原创 年轻代、老年代、GC原理详细拆解

1、为什么要对堆内存分代     我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这...

2018-06-29 14:25:42 10538 1

原创 Apache hive详解

Apache hive详解1. Apache hive 简介1.1 什么是HiveHive是基于hadoop的一个数据仓库工具,可以将结构化数据文件映射为一张数据库表,并提供类SQL查询功能.Hive的本质是将SQL装换为MapReduce程序;主要用途:用来做离线数据分析,比直接使用MapReduce开发效率更高.1.2 为什么使用Hive直接使用hadoop MapReduce处理数据所面临的...

2018-05-28 18:20:03 5580

原创 Hadoop集群搭建详解

关于hadoop的安装,目前来说已经非常的简单,但是还是避免不了一些难以想象的坑,为了解决这些问题,特在此记录下,hadoop集群的详细搭建步骤,希望能够帮助一些初学者!    PS:这个文章是在有道云笔记整理成章,打开下面链接即可!点击打开链接...

2018-05-28 11:54:31 140

空空如也

空空如也

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

TA关注的人

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