自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘明的博客

记录我的点点滴滴

  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 分类过程中类别不平衡问题解决方法

第一种情况以二分类为例,若两种类别数量都很大。对大样本采用欠采样。第二种情况以二分类为例,若两种类别数量不大。 1. 扩大数据集 在增加小样本数据时,又增加大样本数据。 2. 小样本通过SMOTE算法过采样,大样本通过EasyEnsemble过采样 SMOTE算法: a. 对于每个小样本a,从他的最近邻中随机选择一个样本b b. 在a和b的连线上随机选择一点作为新的少数...

2018-04-27 15:33:20 1871

原创 [特征工程]--缺失值处理

目前常用的三类处理方法: 1. 用平均值、中值、分位数、众数、随机值等替代。效果一般,因为等于人为增加了噪声。 2. 先根据欧式距离或Pearson相似度,来确定和缺失数据样本最近的K个样本,将这K个样本的相关feature加权平均来估计该样本的缺失数据。 3. 将变量映射到高维空间 a.对于离散型变量:男、女或缺失的情况,采用One-hot编码,映射成三个变量,是否男、是否女、是否缺失;...

2018-04-27 14:18:24 2722

转载 皮尔森相关性的相似度

基于皮尔森相关性的相似度 —— Pearson correlation-based similarity皮尔森相关系数反应了两个变量之间的线性相关程度,它的取值在[-1, 1]之间。当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数...

2018-04-26 09:35:50 8562

原创 [推荐系统]--协同过滤算法和隐语义模型

协同过滤协同过滤主要包含基于用户的协同过滤和基于商品的协同过滤1. 基于用户的协同过滤a. 找到和用户最近的其它用户,找到他们看/买过但当前用户没看/买过的item,根据距离加权打分。 b.找得分最高的items进行推荐 基于用户的协同过滤和基于物品的协同过滤相似 步骤: a. 对每个用户的所有评分减去其均值,将某用户未打分的item设为0 b. 计算当前用户评分...

2018-04-26 09:27:04 2456

原创 [推荐系统]--什么是推荐系统

推荐系统1.推荐系统是什么?根据用户的历史行为、社交关系、兴趣点、所处上下文环境等去判断用户的当前需求/感兴趣的item。 历史行为:阅读过的新闻(话题/类别)。只有丰富到一定程度上,才没有那么大的随机性 社交关系:对于刚注册的或很久没有登录的用户。比如,用QQ、WX登录获取其关系网,可了解身边人的职业、收入;“人以群分”,他朋友喜欢的,很有可能就是该人喜欢的。 兴趣点:根据其历...

2018-04-26 00:08:00 517

原创 NLP - word2vec理论基础

概括word2vec将word映射成连续(高维)向量,求解文本特征提取的问题1.NNLM(Neural Network Language model)从语言模型出发,将模型的最优化过程转化为求词向量的过程。 目标函数: L(θ)=∑tlogP(wt|wt−n+1,...,wt−1)L(θ)=∑tlogP(wt|wt−n+1,...,wt−1)L(\theta)=\sum_{t}lo...

2018-04-25 17:01:02 476

原创 NLP-自然语言处理基础

NLP基础知识1 NLP常见任务自动摘要 指代消解   et:小明放学了,妈妈去接他 机器翻译   et:小心地滑 Slide carefully 词性标注   et: heat (v.) water (n.) in(p.) a(det.) pot(n.) 分词  &...

2018-04-25 11:02:42 346

原创 大数据- MapReduce计算模型

1.分布式文件系统1.1 数据激增以前,在数据量比较少的时候是单节点结构,CPU-Memory-Disk;后来,随着互联网的不断发展,数据量激增;以Google为例:Google每天产生的网页数量达到200TB,假设磁盘读取带宽为50MB/sec,则读取这些文件需要46天,后续的数据处理与操作话费的时间可能会更多。1.2 分布式文件系统分布式文件系统结构如下: 1. 数据...

2018-04-24 15:49:31 5105

原创 TensorFlow-- 启动TensorBoard并进行可视化

tensorboard可以可视化所建造出来的神经网络,有助于理解神经网络的内部结构和复杂运算,展示训练过程中绘制的图像、网络结构等。数据准备import tensorflow as tfwith tf.name_scope('input1'): input1=tf.constant([1.0,2.0,3.0],name="input1")with tf.name_scope...

2018-04-22 16:56:18 571

原创 TensorFlow-建造第一个神经网络

通过TensorFlow,实现一个两层的神经网络拟合二次函数定义数据import tensorflow as tfimport matplotlib.pyplot as pltimport numpy as np# fake datax = np.linspace(-1, 1, 100)[:, np.newaxis] # shape (100, 1)noi...

2018-04-22 16:39:15 255

原创 tensorflow学习笔记-tensorflow基础框架

TensorFlow计算图张量(Tensor)张量分为:零阶张量、一阶张量、二阶张量 零阶张量:纯量或标量,也就是一个数值。比如 [1]。 一阶张量:向量,比如[1, 2, 3] 二阶张量: 矩阵,比如[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 以此类推,还有三阶,三维的。。。TensorFlow计算图TensorFlow采用节点和线组...

2018-04-22 10:50:38 518

转载 tensorflow学习笔记--embedding_lookup()用法

embedding_lookup( )的用法 关于tensorflow中embedding_lookup( )的用法,在Udacity的word2vec会涉及到,本文将通俗的进行解释。首先看一段网上的简单代码:import tensorflow as tfimport numpy as npinput_ids = tf.placeholder(dtype=tf.int32, s...

2018-04-21 21:36:24 1714

原创 人工神经网络

1.神经网络的优势      神经网络相比传统机器学习算法有较大的优势,机器学习最要的过程是特征工程,传统机器学习是一整套的迭代和训练算法,通过定义loss function,然后最小化损失函数,从而得到一个

2018-04-14 14:11:49 644

原创 特征处理和特征选择

特征处理之统计特征历届的Kaggle/天池比赛,天猫/京东排序和推荐业务线里模型用到的特征 1.加减平均:这个用户所买商品高于所有用户购买商品平均价格的多少(权衡一个人的消费能力),用户连续登录天数超过平均多少(表明这个用户对该产品的黏性) 2.分位线:商品属于售出商品价格的多少分位线处。(比如20%,说明20%的人买东西都不会低于这个价格)。 3.次序型:排在第几位。 4.比...

2018-04-13 10:59:47 10494

原创 LeetCode78-子集

题目 给定一组不同的整数 nums,返回所有可能的子集(幂集)。注意事项:该解决方案集不能包含重复的子集。 思路 1.设置一个大机器人robot解决主问题,对于全排列的每一个元素index,都有取index和不取index区别 2.设置一个辅助数组v[],来记录当前index是取还是不取。 3.当前元素取,执行小机器人robot对下一个元素进行判断 4.当前元素不取,执行小机器人r...

2018-04-12 11:35:56 409

原创 LeetCode378-有序矩阵中第k小的元素

题目 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。 思路 直接求解矩阵中的第8小元素很难,我们可以用二分法设定一个值mid,查看mid值是否是矩阵第8小元素。 具体思路为: 1.首先设置mid的初值为矩阵matrix,最后一个数和第一个数的平均值。 2.统计矩阵中每一行小于mid值的个数之...

2018-04-12 09:54:51 5828 1

原创 LeetCode.69 二分法求平方根

二分的精髓:函数单调性 + 计算内容重复 函数的单调性:当x1&lt;x2x1&lt;x2x_1f(x1)&lt;f(x2)f(x1)&lt;f(x2)f(x_1) < f(x_2);反之,当f(x1)&lt;f(x2)f(x1)&lt;f(x2)f(x_1) < f(x_2)时,有x1&lt;x2x1&lt;x2x_1xxx的平方根,xxx保证是一个非负整数。 思路:该题为应用二分法的...

2018-04-11 20:13:26 2940

原创 剑指offer - 二叉搜索树与双向链表

题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路 二叉搜索树的左子树的根节点小于中间节点,右子树的根节点大于中间节点;因此,可以参考中序遍历,遍历二叉树。 1.设置两个变量head和realHead,head存储当前子树的根节点,readHead存储二叉树拥有最小节点值的节点,(二叉搜索树中序遍历的第一个节点)。...

2018-04-11 11:37:16 137

原创 剑指offer - 二叉树中和为某一值的路径

题目 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路 借助ArrayList&lt; ArrayList &lt; Integer &gt;&gt;结构,存储多条路径。假设内部子链表为innerList,外部链表arrayList。 1.若当前遍历的节点为空,直接返回arrayList;若当...

2018-04-10 20:40:20 143

原创 剑指offer-二叉搜索树的后序遍历序列

题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路 后序遍历序列的最后一个元素为当前子树的根节点,根节点大于左子树的所有元素,小于右子树的所有元素。若当前序列不满足上一条件则返回false,若满足上述条件,继续遍历左子树和右子树序列是否为后序遍历序列。public class S...

2018-04-10 16:43:03 132

原创 剑指offer-按行打印二叉树

题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路 借助队列,首先将链表头节点放入队列中,判断队列的头节点是否有左右子节点,如果有放入队列中,...

2018-04-10 15:35:38 448

原创 剑指offer-栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 思路:设置临时变量index指向弹出序列popA的第一个元素,遍历压入序列pushA的元素进...

2018-04-09 21:58:38 207

原创 剑指offer-顺时针打印矩阵

题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路:呈环形打印矩阵,注意行矩阵和列矩阵的情况public ArrayList&lt;Integer&gt; prin...

2018-04-09 20:40:16 136

原创 剑指offer-二叉树镜像

题目:操作给定的二叉树,将其变换为源二叉树的镜像。 思路:最简单的一类递归问题,从根节点开始交换左右子节点。public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.va...

2018-04-09 19:37:53 148

原创 剑指offer-树的子结构

题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路:将原始问题分为两个子问题 a. 在树A中寻找和树B根节点的值一样的结点R b. 判断在树A中以R为根节点的子树,是否和树B拥有一样的结构 树结构:public class TreeNode { int val = 0; TreeNode left = null; ...

2018-04-08 22:00:58 148

原创 剑指offer-合并两个有序链表

题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路:假设两链表分别为list1和list2,若一个为空,则返回另外一个链表的头结点。若两个都不为空,设置head和curNode两个变量,head记录头节点,curNode记录当前节点。按照两链表的值的大小更新当前curNode。 链表结构:public class ListNode ...

2018-04-08 19:46:38 331

原创 剑指offer - 链表中倒数第k个节点

题目:输入一个链表,输出该链表中倒数第k个结点。 思路:设置该链表的两个指针指向头节点,第一个指针先走到第k个节点; 然后两个指针往后走,先走的指针走到最后一个,第二个指针指向第k个节点。 边界检查:a. 链表为空 b. k为0或k的长度大于链表的长度。/*public class ListNode { int val; L...

2018-04-08 15:18:13 226

原创 LeetCode50:二分快速幂

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路:应概率到幂次有正有负public double Power(double base, int exponent) { if(exponent == 0){ return 1; } int exp...

2018-04-07 18:41:14 265

原创 剑指offer-旋转数组最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路:若数组的长度大于等于2,最小的数字一定比前一个小;并处理掉数组为空和数组长度为1的时候。publi...

2018-04-07 17:31:09 280

原创 剑指offer-两个栈实现队列

题意:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 栈的特点:后进先出 队列的特点:先进先出; 入队:直接进入stack1中; 出队:若stack2不为空,将stack2的元素直接出栈; 若stack2为空,将stack1中的所有元素压入stack2**(只有这样才能保证先进先出结构)**,然后从stack2中出栈一个元...

2018-04-07 17:13:30 127

原创 0 - 1背包问题 动态规划

0-1背包问题是一个很经典的问题,使用动态规划算法来求解也是很经典的。下面我用一个例子来讲解用动态规划算法求解0-1背包问题。 假设商店中有5件东西,重量用w表示,价格用v表示 w={1,2,3,4,5},v={1,4,2,8,9}w={1,2,3,4,5},v={1,4,2,8,9}w = \lbrace1, 2, 3, 4, 5\rbrace, v=\lbrace1, 4, 2, 8, ...

2018-04-07 16:20:06 329

原创 Leetcode:322-零钱兑换

题目:给定不同面额的硬币(coins)和一个总金额(amount)。写一个函数来计算可以 凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合方式能组成总金额,返回-1。 示例 1: coins = [1, 2, 5], amount = 11 return 3 (11 = 5 + 5 + 1)示例 2: coins = [2], amount = 3 return -1....

2018-04-07 10:49:52 3472

原创 leetcode70: 跳台阶动态规划版

跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:第一步可以跳1级或2级 a. 第一步跳1级, 剩下n-1级;跳法为 f(n - 1) b. 第一步跳2级,剩下 n-2级;跳法为f(n - 2) 由a、b假设可以得出总跳法为: f(n) = f(n - 1) + f(n -2)public int JumpFloor(int...

2018-04-05 20:24:41 1486

原创 棋盘-动态规划

题目请编写一个函数(允许增加子函数),计算n x m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从右下角走到左上角,总共有多少种走法,要求不能走回头路,即:只能往左和往上走,不能往右和往下走。思路将原文题化解为子问题,若每次只能走一步,即从第(M * N)个格走一步,只有两种走法,(N - 1, M)和(N, M - 1)。由此,可将原始问题拆解成子问题。边界条件...

2018-04-05 16:56:03 1562

原创 n阶乘 动态规划版

暴力方法 public static int solve(int n) { if (n &amp;lt;= 1) { return 1; } return n * solve(n - 1); }暴力方法中含有大量的重复计算 自底向上 public static int solve(int n) ...

2018-04-04 16:51:18 1402 1

原创 斐波那契数列--动态规划版

斐波那契数列,n=0开始:0, 1, 1, 2, 3, 5…… 暴力方法 public int Fibonacci(int n) { if(n &lt;= 0) return 0; if(n == 1) return 1; return Fibonacci(n-1) + Fibonacc...

2018-04-04 15:33:37 400

原创 LeetCode-198. 打家劫舍

题目描述:你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。暴力搜索方法 思路:文中给出不能连续抢两家,因此假设从最后一个房屋开始抢,最后一个房屋为index。将原问题分...

2018-04-04 10:40:43 1863

原创 剑指offer-二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思想:假设该数的大小为n,若n为0,则n的二进制中1的个数为0; 若n不为0,则n的二进制中必含有1; n-1的二进制表示,实际上是将n中最右边1的位置iii二进制置为0,iii右边所有元素置为111,即将最右边1的位置及其后续元素取反 n&amp;(n-1):表示将n最右边的1置为0,实际上就是删除了一个1,那...

2018-04-03 16:26:34 226

原创 剑指offer-重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路:已知前序遍历和中序遍历求解二叉树 当前子树的前序遍历头结点为二叉树的根节点,在中序遍历序列中,根节点元素的左边序列为左子树节点,右序列为右子树...

2018-04-03 16:13:55 133

原创 剑指offer-替换空格

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路:将字符串转换成字符数组,逐个遍历字符数组,若遇到空格,则替换 public String replaceSpace(StringBuffer str) { char[] charArray = ...

2018-04-03 11:31:20 110

3天完整速记-2017世界互联网大会

第四届世界互联网大会全体会议 时间:2017 年 12 月 3 日 13:30 地点:乌镇厅

2017-12-28

空空如也

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

TA关注的人

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