Fork me on GitHub
摘要: 今天在leetcode上遇到了 "137. Single Number II" 这道题: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。(Given a non empty array of integers, every element a 阅读全文
posted @ 2018-07-17 15:57 Byron_NG 阅读(3499) 评论(2) 推荐(0) 编辑
摘要: 鄙人调参新手,最近用lightGBM有点猛,无奈在各大博客之间找不到具体的调参方法,于是将自己的调参notebook打印成markdown出来,希望可以跟大家互相学习。 其实,对于基于决策树的模型,调参的方法都是大同小异。一般都需要如下步骤: 1. 首先选择较高的学习率,大概0.1附近,这样是为了加 阅读全文
posted @ 2018-07-13 20:56 Byron_NG 阅读(60921) 评论(4) 推荐(6) 编辑
摘要: 二叉树的遍历是在面试使比较常见的项目了。对于二叉树的前中后层序遍历,每种遍历都可以递归和循环两种实现方法,且每种遍历的递归实现都比循环实现要简洁。下面做一个小结。 一、中序遍历 前中后序三种遍历方法对于左右结点的遍历顺序都是一样的(先左后右),唯一不同的就是根节点的出现位置。对于中序遍历来说,根结点 阅读全文
posted @ 2018-07-10 01:24 Byron_NG 阅读(24848) 评论(1) 推荐(4) 编辑
摘要: 在遇到维度灾难的时候,作为数据处理者们最先想到的降维方法一定是 SVD(奇异值分解)和PCA(主成分分析) 。 两者的原理在各种算法和机器学习的书籍中都有介绍,两者之间也有着某种千丝万缕的联系。本文在简单介绍PCA和SVD原理的基础上比较了两者的区别与联系,以及两者适用的场景和得到的效果。 一、SV 阅读全文
posted @ 2018-07-08 16:45 Byron_NG 阅读(16494) 评论(2) 推荐(2) 编辑
摘要: 20天的时间参加了Kaggle的 "Avito Demand Prediction Challenged" ,第一次参加,成绩离奖牌一步之遥,感谢各位队友,学到的东西远比成绩要丰硕得多。作为新手,希望每记录一次可以进步一次。下面将我这段时间的心路历程进行记录,作为经历,也作为自己的经验: 可点击 " 阅读全文
posted @ 2018-06-29 15:54 Byron_NG 阅读(3923) 评论(0) 推荐(0) 编辑
摘要: Anaconda确实带来了很多方便,但是之前也过多的依赖了conda自带的一键下载python包的功能。这不,这几天突然要用FastFM这个包,无奈conda里没有,于是只能从github下载下来,实现本地安装。 以下是手动下载和安装步骤: 一、从GitHub上下载: 选择 ,里面会看到一系列版本的 阅读全文
posted @ 2018-06-25 17:50 Byron_NG 阅读(30922) 评论(0) 推荐(1) 编辑
摘要: 碎碎念 : 最近终于开始刷middle的题了,对于我这个小渣渣确实有点难度,经常一两个小时写出一道题来。在开始写的几道题中,发现大神在discuss中用到回溯法(Backtracking)的概率明显增大。感觉如果要顺利的把题刷下去,必须先要把做的几道题题总结一下。 先放上参考的web: 1. htt 阅读全文
posted @ 2018-06-03 09:54 Byron_NG 阅读(1469) 评论(0) 推荐(0) 编辑
摘要: 特征选择是一个重要的数据预处理过程,在现实机器学习任务中,获得数据之后通常先进行特征选择,此后在训练学习器,如下图所示: 进行特征选择有两个很重要的原因: 避免维数灾难:能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的 阅读全文
posted @ 2018-05-29 00:07 Byron_NG 阅读(26621) 评论(2) 推荐(1) 编辑
摘要: high cardinality categorical attributes,从字面上理解,即对于某个category特征,不同值的数量非常多,这里暂且把它叫做高数量类别属性。反之,即低数量类别属性(low cardinality) 对于低数量类别属性,通常在data science中采用的方式是 阅读全文
posted @ 2018-05-25 10:26 Byron_NG 阅读(5477) 评论(0) 推荐(1) 编辑
摘要: 终于刷完了leetcode的前250道题的easy篇。好吧,其实也就60多道题,但是其中的套路还是值得被记录的。 至于全部code,请移步 "github" ,题目大部分采用python3,小部分使用C,如有问题和建议,欢迎指正。 String 1. 有一个string库,可以返回各种string的 阅读全文
posted @ 2018-05-24 21:24 Byron_NG 阅读(3647) 评论(2) 推荐(1) 编辑
摘要: 没有高质量的数据,就没有高质量的数据挖掘结果,数据值缺失是数据分析中经常遇到的问题之一。当缺失比例很小时,可直接对缺失记录进行舍弃或进行手工处理。但在实际数据中,往往缺失数据占有相当的比重。这时如果手工处理非常低效,如何舍弃缺失记录,则会丢失大量信息,使不完全观测数据与完全观测数据间产生系统差异,对 阅读全文
posted @ 2018-05-23 15:53 Byron_NG 阅读(5260) 评论(0) 推荐(0) 编辑
摘要: 类别不平衡 就是指分类任务中不同类别的训练样例数目差别很大的情况 常用的做法有三种,分别是1.欠采样, 2.过采样, 3.阈值移动 由于这几天做的project的target为正值的概率不到4%,且数据量足够大,所以我采用了欠采样: 欠采样 ,即去除一些反例使得正、反例数目接近,然后再进行学习,基本 阅读全文
posted @ 2018-05-22 20:35 Byron_NG 阅读(21577) 评论(0) 推荐(2) 编辑
摘要: Python3的字符串替换,这里总结了三个函数, 和`translate() re.sub()` replace() python 中的 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次 HeQQo,worQd. ByeBye! H 阅读全文
posted @ 2018-05-15 00:45 Byron_NG 阅读(44148) 评论(0) 推荐(1) 编辑
摘要: python什么都好,就是可以的选择实在太多了。所以,用这一篇博文记录一下: str和list互相转换 str转list list转str List的slicing用法 上述例子基本可以包含 slicing 的用法了: a: 表示slice的初始位置,且slice的结果包括它 b: 表示slice的 阅读全文
posted @ 2018-05-13 17:03 Byron_NG 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 现在max成为: max(players, key=func) 但是由于def语句是复合语句,它们不能用于需要表达式的地方,这就是为什么有时使用lambda的原因。 注意,lambda等同于你在一个def的return语句中。因此,不能在lambda中使用语句,只允许表达式。 max是什么? max 阅读全文
posted @ 2018-05-12 12:52 Byron_NG 阅读(10180) 评论(0) 推荐(0) 编辑