- 博客(31)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【机器学习基础】样本类别不平衡的解决办法
目录一 数据不平衡现象以及分析二 解决措施1.采样(1)随机下采样(Random undersampling of majority class)(2)随机过采样(3)Edited Nearest Neighbor算法(4)Repeated Edited Nearest Neighbor算法(5)EasyEnsemble算法 (6)BalanceCascade算法(7)NearMiss算法(8)Tomek Link算法2.数据合成(1)SM...
2020-05-14 00:12:45
6335
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【机器学习基础】EM算法
目录一 样例 二 公式描述三 参考文献 最大期望算法(Expectation-maximization algorithm,又译为期望最大化算法),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。 最大期望算法经过两个步骤交替进行计算: 第一步是计算期望(E),...
2019-06-04 14:24:39
119877
23
原创 【LeetCode】不相交的线——数组系列
目录题目思路代码题目我们在两条独立的水平线上按给定的顺序写下A和B中的整数。现在,我们可以绘制一些连接两个数字A[i]和B[j]的直线,只要A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。以这种方法绘制线条,并返回我们可以绘制的最大连线数。示例 1:输入:A = [1,4,2], B = [1,2,4]输出:2解释:我们可以画出两条不交叉的线,如上图所示。我们无法画出第三条不相交的直线,因为从 A[1]=4 到 B[2]...
2020-05-17 01:19:45
2827
原创 【LeetCode】最小时间差——字符串系列
目录题目思路代码题目给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1:输入: ["23:59","00:00"]输出: 1备注:列表中时间数在 2~20000 之间。每个时间取值在 00:00~23:59 之间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-time-difference思路采用桶排序的方法:..
2020-05-16 15:48:55
785
原创 【LeetCode】二叉树的层序遍历——树系列
题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]通过次数126,438提交次数201,834来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/bin...
2020-05-15 19:59:06
340
原创 【LeetCode】盛最多水的容器——数组系列
目录题目思路代码题目给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。示例:输入: [1,8,6,2,5,4,8,3,7]输出: 49思路 这是典型的可以用双指针法或者说滑窗来解决的问题。 从题目的意思...
2020-05-15 10:24:00
245
原创 【LeetCode】最大回文子串——字符串系列
目录题目思路代码题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路 这是一道经典的动态规划题目,那么就只需要根据问题拆解出动规数组的迭代公式基本上就能解决。 首先动规创建一个二维dp数组,其中下标dp[i][j]表示字符串的第j个位置到第i个位置的子串...
2020-05-15 00:35:49
442
原创 【LeetCode】不含重复字符的最长子串——字符串系利
目录1.题目2.思路分析3.源码题目:定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3: 输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,...
2020-05-14 16:07:50
136
原创 【LeetCode】三数之和
一 题目给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]二 思路...
2019-12-29 20:11:36
142
原创 【机器学习基础】XGBoost公式推导
XGBoost是Boosting算法的一种,Boosting算法的核心思想就是将许多基模型加在一起,形成一个强分类器。XGBoost就是将许多的CART树结合在一起,对于那些一颗树无法很好拟合的数据用多颗CART树不断地去逼近。本文从Boosting方法-->BDT(提升树)-->GBDT(梯度提升树)-->XGBoost的脉络来描述XGBoost.一 BoostingB...
2019-06-28 09:21:05
1037
原创 【sklearn】XGBoost应用
本文给个简单的例子,来看看sklearn是怎么用xgboost的。1.先加载数据,这里用pandas,假设数据文件的最后一列是样本的标签。from xgboost import XGBClassifierimport pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.metric...
2019-06-28 08:39:48
3409
原创 【机器学习基础】特征归一化之max-min和Z-score
在特征处理的时候,经常会遇到两个特征之间不再同一个量级的情况,这个时候如果采用线性运算的话,就很容易导致不平衡,所以就有在数据处理阶段对特征进行归一化的操作,常用的归一化操作有max-min和z-score。一 max-minmax-min是对数据做了一次线性变换,将X值映射到了[0,1]之间。一般是在特征数据较为零散或者是线性关系,并且没有很多离群值的时候,可以采用这种方法进行归一化,公...
2019-06-19 19:37:46
5369
1
原创 【机器学习基础】IV和WOE值
目录一 WOE1.1 概念1.2 样例二 IV2.1 概念2.2 样例三 参考材料IV和WOE通常是用在对模型的特征筛选,在模型刚建立时,选择的变量往往比较多,这个时候就需要有一种方法来帮助我们衡量什么变量应该进入模型什么变量应该舍弃,IV和WOE就可以帮助我们进行衡量。对于一个变量来说,我们考虑该变量是否可以加入预测一般可以考虑以下五个因素:(1)变量的预测能力(...
2019-06-19 19:15:07
8072
1
原创 【机器学习基础】性能度量与评估方法
目录一 性能度量1.1 留出法1.2 k折交叉验证二 评估方法2.1 精确率(查准率),召回率(查全率)和F1值2.2 ROC曲线2.3 PR曲线2.4 使用场景三 参考材料在学习器将模型构造出来之后,我们通常需要进行评估该模型的好坏,因此本文介绍几种评估的方法,在这之前先明确几个定义:1.训练误差:模型在训练集上的误差,假设模型为,N为训练样本数量,则...
2019-06-18 00:33:24
864
原创 【机器学习基础】HMM隐马尔可夫模型
目录一 马尔可夫链二 隐马尔可夫模型2.1两个很重要的假设 2.2三类问题三 参考文献 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析,例如模式识别。 HMM模型解决的问题...
2019-06-02 00:27:31
1706
原创 【Python】is和==的区别
Python中Is和==的功能都是用来比较两个元素是否相同,但是在具体对比的内容上面还是有一些区分,虽然这一个概念比较简单,但是还是作为笔记记录下来方便以后查阅。 Python的对象有三个基本要素:唯一标识码(id),对象值(value)和对象类型(type)。python也有各自的方法拿到这三个要素的内容,比如定义了一个对象a,id(a)就可以拿到a的标识码,type(a)可以...
2019-05-11 10:50:08
161
原创 【sklearn】Learning-curve判断模型状态
在训练模型时,经常我们是需要判断训练出来的模型是否是过拟合或者欠拟合的,这个时候就需要借助Learning curve来帮助我们进行判断,Learning curve描述的是在不同样本的情况下,训练集和验证集的准确率的变化曲线,我们通过判断两条曲线的间隔就可以看出模型的大致状态。 上面这个图在很多博客中都有,这三个图表示着三种情况:欠拟合、过拟合和理想情况。对应这三张图的解释...
2019-05-09 18:28:02
1544
原创 【sklearn】使用GridSearchCV查找最优参数
GridSearchCV是用来查找最优参数的常用方法,只需要把参数的候选集输入进去,就会自动的帮你进行排列组合,然后选出得分最高的那一组参数的排列。 该函数的原型:class GridSearchCV(BaseSearchCV): def __init__(self, estimator, param_grid, scoring=None, fit_params=...
2019-05-06 22:16:54
6081
原创 【机器学习基础】Apriori算法
目录1 关联规则简介2 相关定义3 Apriori简介4 Apriori代码功能详解(Python3)4.1构造数据集4.2生成第一层候选集4.3计算给定候选集的支持度4.4候选集生成函数4.5生成频繁项集的主函数4.6生成关联规则5 参考材料1 关联规则简介关联规则分析也称为购物篮分析,最早是为了发现超市销售数据库中的不同商品之间的关联...
2019-04-26 10:01:57
534
原创 【机器学习基础】信息熵,联合熵,条件熵,互信息,相对熵,交叉熵
目录1 信息2 信息熵 3 条件熵、互信息 3.1 条件熵 3.2 互信息 3.3 熵之间的关系推导与证明4 相对熵 5 交叉熵6 参考链接 在机器学习中,信息熵(Entropy)是一个非常重要的概念,因为围绕着熵有着许许多多的应用和算法。信息熵的概念是由香农在1948年提出的,熵这个概念最初源于热力学,热力学中...
2019-04-25 10:57:08
6661
1
原创 【机器学习基础】决策树
目录1 决策树简介2 ID3算法构造决策树 2.1 特征选择3 C4.5算法实现决策树4 树的剪枝5 树的存储1 决策树简介 决策树(Decision Tree)是一种基本的分类与回归方法,本文主要讨论分类的决策树,回归的决策树在回归树那一个帖子中讨论。树的结构想必都很熟悉,有根节点、内部节点、叶子节点组成,最常见的二叉树就是每个节点最多只有两个孩子...
2019-04-17 09:10:27
280
原创 【机器学习基础】朴素贝叶斯进行垃圾邮件分类
目录 一 朴素贝叶斯简介 二 贝叶斯决策理论 三 朴素贝叶斯进行垃圾邮件分类 3.1构造数据集 3.2 构造词典 3.3 构造词集模型 3.4 求解先验概率和条件概率 3.5 对样本集进行分类 3.6 交叉验证 四 整体代码实现 五 参考材料 一 朴素贝叶斯简介 贝叶斯...
2019-04-16 17:44:16
1793
原创 【机器学习基础】线性回归
线性回归 1.线性回归简介 线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。这句话对线性回归的解释是出自百度百科,简单一点...
2019-04-13 18:48:41
696
转载 【数据库优化】优化SQL查询:如何写出高性能SQL语句
1、 首先要搞明白什么叫执行计划?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。可见,执行计划并不是固定的,它是“个性化的”。产生
2017-08-06 23:43:57
281
原创 【Java基础】java类加载过程
类的加载过程可以分为以下几个阶段:加载,验证,准备,解析,初始化,使用和卸载。其中验证,准备和解析我们通常称之为连接,如下图所示: 1.加载 加载(Loading)是类加载过程中的第一个阶段,这个阶段会在内存中生成一个代表这个类的java,.lang.Class对象,作为方法区这个类的各种数据的入口。在加载阶段,虚拟机主要做了以下三件事情: 1) 通过一个类的权限定
2017-06-27 15:39:16
290
原创 【Python】高级特性之生成器
我们知道用列表生成式可以很方便快捷地生成list,但是,如果我们需要生成的list很长的话,就会比较占内存空间。于是,Python提供了一种动态生成list的机制,能够在你需要这个元素的时候才来计算这个元素的值,这种机制叫做生成器(generator)。我们来先看一个简单的例子: llist1 = [x for x in range(100) if x%3==0] #这是用列表生成式生成一个l
2017-06-10 19:20:03
221
原创 【Python】高级特性之列表生成式
Python中的列表生成式是Python产生list的一种强大的表达式。比如说我们需要产生一个list包含一个目录下所有的文件和目录。import osL1 = [file for file in os.listdir('E:\\1111')]print(L1)运行结果: ['1', '2', '3', '4', '5', 'learning.py', 'test1.py'] 其中1,
2017-06-10 10:54:11
275
原创 【Python】高级特性之切片(slice)
在了解什么是切片之前,先考虑一个问题:给定一个字符串或者数组,在Python中如何取其中的一部分数据。比如说我们要取前五个数或者前五个字符。在C++或者Java中底层都封装了很好的库函数给我们直接调用,比如Java中有subString,那么在Python中,我们首先能想到最笨的方法就是把这前五个元素列举出来:list=[1,2,3,4,5,6,7,8,9]print(list[0],
2017-06-08 19:55:23
714
转载 【Java基础】字节流和字符流的区别
原文链接:http://blog.csdn.net/zxman660/article/details/7875799字节流与字符流先来看一下流的概念:在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。
2017-05-04 19:14:57
227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人