- 博客(68)
- 收藏
- 关注

原创 前向分布算法、Adaboost算法、提升树算法、梯度提升算法、GBDT(梯度提升决策树)和XGBoost(极限梯度提升)
一、梯度提升算法梯度提升的概念提升算法的思想F(x)为预测函数L(y,F(x))=1/2(y-F(x))2为平方误差L(y.F(x))=|y=F(x)|为绝对值误差F*(x)为使得所有样本平方误差的均值最小的F(x)提升算法的思路:首先我们假定F(x)是一族基函数fi(x)的加权和,现在我们要通过M次迭代得到一个最优的F(x),每一次迭代我们就加上一个使得所有样本平方误差之和...
2018-11-22 23:04:26
4136
1
原创 python中的单下划和双下划线属性
1、_对象名级别:受保护的属性使用:父类对象和子类对象都可以直接调用,父类中受保护的属性可以被子类覆盖。class A(object): def __init__(self): self.name = 'yx' self._age = 24 self.__gender = 'm' def _printAge(self): print(self._age) def __printGender(self):
2020-09-05 12:48:31
525
原创 python中的copy
浅拷贝1、对象.copy()2、copy.copy()import copya = [1, 2, 3, [4, 5]]b = a.copy()c = copy.copy(a)b == cTrueb is c # b和c是两个值相同的不同对象False# 浅拷贝意味着对a中的子对象进行修改会同步修改b和c中的子对象,a本身就是一个list对象,# 而a中还包含一个list对象[4, 5],所以这个叫做子对象。对a进行append, remove, pop#等操作不影响b和c的值,但
2020-09-05 11:32:42
522
原创 01背包、完全背包和多重背包(python版)
序言对于下面的每一个问题我都会附上一个博客链接,这是我觉得讲的比较的清楚的博客,而我自己的理解全都在代码的注释中,建议先看理论博客,再看代码中的注释,你会有意想不到的收获。01背包最优的解法:一维动态规划相关博客:01背包while True: try: N, V = list(map(int, input().split())) dp = [0]*(V+1) for _ in range(N): # 遍历所有的物品
2020-08-14 18:11:01
771
原创 牛客算法题的输入写法记录(python版)
情况1输入41 2 33 4 54 5 67 8 9输出1345解释输入: 第一行是一个整数n,意味着接下来有n行输入数据。输出: 每行输入数据对应的一行输出结果。while True: try: n = int(input()) # 拿到第一行的n for _ in range(n): # 接下来的n行输入对应n个输出 # 拿到当前行的输入 input_data = input() # 处理当前行的输入 outpu
2020-07-15 18:17:57
1533
2
转载 二分查找(返回查找值的左右边界索引)
1、返回查找值的任意索引搜索区间是 [left, right] 的左闭右闭写法int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) { l
2020-07-04 18:01:20
910
原创 python——解决pip的“failed to create process”问题,以及用国内镜像批量下载requirements.txt中包
一、pip的“failed to create process”问题原因1:pip.exe一般在python下面的Scripts文件夹里,这个文件夹里面还有一个pip-script.py文件(注意pip3.exe对应的是pip3-script.py,以此类推)。用编辑器打开pip-script.py文件,它的首行是你的python解析器的位置,检查一下位置有没有出错。原因2:在使用pip的时候最好用"where pip"检查一下是否显示的路径只有一个,或者用“pip -V”看一下当前用的pip的路径是什
2020-05-22 16:57:52
3233
1
原创 python3创建虚拟环境并配置环境变量(windows)
前提:python3环境,python2的可以看看环境变量配置。1、建立一个venv文件夹专门存放各个项目的虚拟环境。如:我在F盘下建立venv2、win + r 召唤出命令行,执行python,记住哦,python还要分python2还是python3。如果你是python3环境那一会儿建立的就是python3的虚拟环境,python2亦是如此。3、执行" python -m venv ...
2020-04-04 18:27:54
6748
1
原创 DataFrame数据处理笔记(长期更新)
本文使用的案列:>>> df a b c0 1 2.0 31 4 5.0 62 7 8.0 9>>> df.dtypesa objectb float64c int64dtype: objectDataFrame的数据类型改变1、单列数据类型改变方法一:pd.to_numeric(...
2019-12-02 16:23:04
402
原创 python计算阶乘的两个函数
reduce()#从functools中调用reduce()函数from functools import reduce#使用lambda,匿名函数,迭代num = reduce(lambda x,y:x*y,range(1,n)) # 计算n的阶乘print(num)factorial()import mathvalue = math.factorial(n) #...
2019-11-06 15:33:45
1528
1
原创 按照步长切割字符串形成列表
记录一下小知识哈!s = '123456'l = [s[i:i+2] for i in range(0, len(s), 2)] # 2是步长,可随意改变"得:l = ['12', '34', '56']"
2019-10-10 17:53:42
1192
2
原创 pandas——往excel的现有sheet里面添加数据
一、往excel的现有sheet里面添加数据例子:将final_group_calc_c2b.xlsx和final_group_calc_b2b.xlsx的数据导入到final_group_calc_b2c.xlsx里面,这3个excel里面的sheet名称和sheet数量都相同。# coding:utf-8import pandas as pdfrom openpyxl import ...
2019-09-17 16:39:56
11148
原创 win10环境下pycharm成功安装torch,解决报错:from torch._C import * ImportError: DLL load failed: 找不到指定的模块
一、问题原因1、numpy版本问题2、python版本问题二、解决办法1、python版本升级python3.6.0安装torch会报错,所以升级python3.6.0到python3.6.5。python官网 https://www.python.org/downloads/release/python-365/ 下载python3.6.5,点击exe安装的时候选择第一项undate安...
2019-07-29 10:33:40
4318
1
原创 逻辑回归(LR)中为什么要使用sigmoid函数,为什么一开始就指定p(y=1|x)的概率?
首先分享一位知乎大佬的文章:接着你可以看看下面这篇博客,更直观的看出高斯分布和sigmoid之间的联系:https://blog.youkuaiyun.com/liuyhoo/article/details/81558350
2019-07-08 20:58:21
2207
原创 非重复字符串的全排列——python实现
比如 s = ‘abc’,那字符串 s 的全排列结果为“abc”,“abc”,“bac”,“bca”,“cba”,“cab”。(1)代码def string_permutation(s): # 迭代终止条件 if len(s) <= 1: return [s] else: temp_list = [] for i i...
2019-07-02 20:34:43
964
原创 csv文件导入hive表的中文乱码问题解决,以及csv保存不了excel数字格式的问题解决
一、 csv文件导入hive表的中文乱码问题解决1、excel文件另存为csv(逗号分隔)文件,并在点击工具中的web选项。2、修改编码为Unicode或者Unicode(utf-8)都可以。3、hive中的表以下面的方式建立。create table if not exists test.visit(***)row format delimitedfields terminate...
2019-06-29 20:13:19
2716
原创 kaggle手机验证问题解决,亲测可用!!!
1、创建gmail账号https://jingyan.baidu.com/article/0aa223751fbf1288cc0d64d9.html2、选择用gmail账号来注册kaggle3、用gmail账号登入kaggle之后好像没有遇到邮箱验证,但是下载数据集的时候有手机验证。...
2019-06-27 21:33:47
7019
7
原创 马尔可夫随机场与条件随机场
本文仅仅讲解一下马尔可夫随机场和条件随机场的定义和形式,不会涉及到条件随机场的概率计算和模型学习问题,因为阅读的书籍和博客都讲的很混乱,所以深入的讲解很难进行,望见谅。一、马尔可夫随机场马尔可夫随机场就是概率无向图模型,它是一个可以用无向图表示联合概率分布。假设有一个联合概率分布P(Y),其中Y代表一组随机变量,该联合概率分布可以由无向图来表示,图中的每一个节点表示的是Y中的一个随机变量,图...
2019-06-12 20:05:39
3647
原创 隐马尔可夫模型(四)——维特比算法
一、问题回顾隐马尔可夫的预测问题,也称为解码问题。即给定模型λ=(A,B,Π)和观测序列O={o1,o2,…oT},求给定观测序列条件下,最可能出现的对应的状态序列。这个问题的求解需要用到基于动态规划的维特比算法,我会在隐马尔可夫模型系列的第四篇博客中讲解。二、近似算法在讲解维特比算法之前,我们先来看一种求解该问题的近似算法。**问题:**在给定观测序列 O = {o1, o2,…, oT...
2019-06-11 15:42:54
2017
原创 隐马尔可夫模型(三)——鲍姆-韦尔奇算法(Baum-Welch算法)
一、问题回顾模型参数的学习问题。即给定观测序列O={o1,o2,…oT},估计模型λ=(A,B,Π)的参数。这个问题的求解需要用到鲍姆-韦尔奇算法,我会在隐马尔可夫模型系列的第三篇博客中讲解,这个问题是HMM模型三个问题中最复杂的。鲍姆-韦尔奇算法本质上就是EM算法,只不过它比EM算法出来的早,所以这里继续称它为鲍姆-韦尔奇算法。二、监督学习算法求解模型参数监督学习算法适用于观测序列和状态...
2019-06-02 18:48:55
13228
7
原创 隐马尔可夫模型(二)——前向算法和后向算法
一、 问题回顾计算观测序列概率。即给定模型λ=(A,B,Π)和观测序列O={o1,o2,…oT},计算在模型λ下观测序列O出现的概率P(O;λ)。这个问题的求解需要用到前向算法和后向算法,我会在隐马尔可夫模型系列的第二篇博客中讲解,这个问题是HMM模型三个问题中最简单的。二、前向算法用前向算法来求观测序列O={o1,o2,…oT}的概率,首先定义前向概率。前向概率:给定隐马尔可夫模型λ...
2019-06-02 10:23:47
2324
4
原创 隐马尔可夫模型(一)——HMM模型的定义和问题
注:这些基本的概念知识,我直接参考了https://www.cnblogs.com/pinard/p/6945257.html这篇博客,我将重点放在了自己对于鲍姆-韦尔奇算法和维特比算法的理解上。一、什么样的问题需要HMM模型首先我们来看看什么样的问题解决可以用HMM模型。使用HMM模型时我们的问题一般有这两个特征:1)我们的问题是基于序列的,比如时间序列,或者状态序列。2)我们的问题中有两类...
2019-06-01 21:22:30
1965
原创 EM算法在高斯混合模型中的应用(非常简单,完全按照EM算法的节奏)
一、首先介绍一下高斯混合模型高斯混合模型是指具有如下概率分布的模型:其中,θ=(α1,μ1,σ12,α2,μ2,σ22,…,αK,μK,σK2),它是整个混合模型(有K个分模型)的参数。αk是系数,αk ≥ 0,代表第k个分模型被选中的概率,且满足下式:(μk,σk2)是第k个分模型的参数,Φ(y | (μk,σk2))是高斯概率密度,也称它为第k个分模型,即:解释:因为高斯混合模...
2019-05-29 09:48:44
1485
1
原创 EM算法及例题详解
一、简介EM(Expectation-Maximum)算法也称期望最大化算法,曾入选“数据挖掘十大算法”中,可见EM算法在机器学习、数据挖掘中的影响力。EM算法是最常见的隐变量估计方法,在机器学习中有极为广泛的用途,例如常被用来学习高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐式马尔科夫算法(HMM)、LDA主题模型的变分推断等等。本文就对EM算法的原理做一个...
2019-05-28 16:01:57
15218
23
原创 前向分布算法与Adaboost
首先了解一下提升方法的思路:”将多个弱学习模型组合成一个强学习模型,这个强学习模型可以达到比任何一个弱学习模型都要好的预测效果”,那么应该怎样求这个强学习模型,直接就能求出来吗?况且到目前为止连弱学习模型都还没有,那么就必须弄明白怎样来学习弱学习模型,之后又该怎样来组合它们呢?显然第一个问题非常困难,基本上是不可能求解的,而第二个问题前向分布算法给出了答案。前向分布算法前向分布算法考虑的问题及...
2019-05-20 16:32:35
2336
5
原创 SVM——支持向量回归(SVR)
1、支持向量回归的原始问题先来看看SVM线性支持向量机(软间隔)的原始问题:其中ξi是松弛变量,但它实际上是hinge(合页)损失函数,所以ξi也作为对应的点(xi, yi)的损失,如下图所示:当点(xi, yi)位于间隔面上或者间隔面之外(这两种都是正确分类的情况)则ξi=0,若点(xi, yi)位于分割面上或者正确分类且位于间隔面之内或者位于分错的那一侧,这三种情况都是有损失的,损失...
2019-05-17 17:08:14
4659
4
原创 SVM——详细讲解SMO算法优化两个变量以及变量的选择
SMO(序列最小最优化)求解对偶问题的最优解以非线性支持向量机的对偶问题为例,使用SMO算法求解最优参数α* 。非线性支持向量机的对偶问题如下:
2019-05-12 18:17:36
6789
3
原创 SVM——线性支持向量机和软间隔最大化
1、线性支持向量机线性可分支持向量机只适用于训练数据集线性可分的情况,而对于数据集接近线性可分的情况,利用线性可分支持向量机不可能找到一个最优分界面使得正类数据和负类数据完全分开,所以线性支持向量机这时就发挥了它的作用,它也是找到一个最优分界面,这个最优分界面允许少量的数据样本被分错,但绝大多数的样本都能够被正确分类。假设给定特征空间上的一个训练数据集T={(x1, y1), (x2, y2)...
2019-05-11 18:38:37
1949
原创 无序数组求中位数——小根堆法原理(附python代码)
小根堆法:**[注意这里数组索引从1开始]**定义中位数为一个有序数组(len(array)+1)//2处的元素,“//”代表下取整。我知道中位数的定义分按照数组长度的奇偶性分两种,但是面试官会告诉你这里求的中位数就是有序数组(len(array)+1)//2处的元素。如:1 2 3 4 5 6 7 8 9 的中位数是(9+1)//2 = 51 2 3 4 5 6 7 8 9 10 的中位...
2019-04-10 23:24:56
1213
原创 SVM——线性可分支持向量机
一、概念支持向量机是一种二类分类模型,它是定义在特征空间上的间隔最大的分类器,间隔最大使它有别于感知机并且是唯一的。支持向量机的学习策略就是间隔最大化,可以形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机学习方法包含线性可分支持向量机,线性支持向量机以及非线性支持向量机。当训练数据集线性可分的时候,通过硬间隔最大化,学习一个线性的分类器即线性可分支持向量机...
2019-04-08 22:55:01
2956
原创 凸集、凸函数、凸优化和凸二次规划
凸集定义1:凸函数图像的上方区域,一定是凸集。定义2:集合C内任意两点间的线段均包含在集合C形成的区域内,则称集合C为凸集。凸集:非凸集:例如:保持凸集凸性的运算:(1)两个凸集的和为凸集若S1、S2均为凸集,则S3 = S1+S2 = {x+y|x∈S1, y∈S2}也为凸集(2)两个凸集的笛卡尔积为凸集S1 x S2 = {(x1, x2) | x1∈S1, x2...
2019-04-06 17:52:55
7284
原创 最大熵模型
一、最大熵原理最大熵原理是概率模型学习的一个准则。通常通过约束条件确定符合条件的概率模型集合,最大熵原理认为在所有符合条件的概率模型中熵最大的模型是最好的。假设随机变量X的概率分布是P(X),则该随机变量X分布的熵为:熵满足下列不等式:其中,|X|是随机变量X的取值个数,当且仅当X服从均匀分布时,右边的等号成立,也就是说X服从均匀分布时熵最大。熵本来就是用来度量物体的混乱程度,X服从均...
2019-04-03 16:51:10
1437
原创 感知机
一、概念感知机是用于二分类的线性分类模型,其输入是实例的特征向量,输出是实例的类别,类别取+1和-1二个值,+1代表正类,-1代表负类。感知机对应于输入空间(特征空间)中将实例分为正负两类的分割超平面,属于判别模型。感知机学习算法简单易于实现,分为原始形式和对偶形式。生成模型和判别模型监督学习方法可以分为生成方法和判别方法,对应所学到的模型称为生成模型和判别模型。生成模型:生成方法通过数据...
2019-03-31 12:28:54
995
1
原创 python——爬虫中使用xpath过滤结果为空以及几种UnicodeEncodeError
情况1:在网页中使用xpath可以查找到内容,但在pycharm中查找结果为空情况2:出现UnicodeEncodeError: ‘latin-1’ codec can’t encode character ‘\u2026’ in position 30: ordinal not in range(256)情况3:出现UnicodeEncodeError: ‘ascii’ codec c...
2019-03-20 18:26:11
1451
原创 数据挖掘笔记(9)-FPGrowth算法
一、FP树的建立(1)建立项头表扫描事务数据集一遍,记录每个项出现的次数,根据给定的最小支持度计数或者最小支持度筛选得到频繁1项集及它们的支持度计数,按照它们的支持度计数从大到小排序得到项头表。如:事务数据集(每行为一个事务):在给定最小支持度计数为2得到项头表如下:(2)过滤并排序事务数据集因为原始的事务数据集中的事务可能包含频繁1项集中没有的项,所以对于每个事务要把非频繁1项...
2019-03-10 19:24:33
2042
原创 python——annotate函数
一、annotate函数该函数的详细参数可调用内置属性__doc__查看。 import matplotlib.pyplot as plt # plt.annotate(str, xy=data_point_position, xytext=annotate_position, # va="center", ha="center", xycoord...
2019-03-10 16:25:15
21066
原创 python——罗马数字和阿拉伯数字的互相转换以及单元测试
(1)roman.py# -*-coding:utf-8-*-"""this mode implements two functions, one implements the change from integer to roman numeral,another implements the opposite.""""""functional requirements:(1)...
2019-03-06 21:47:08
2871
原创 python——tile()函数、Counter()函数、将float型的字符串转为int型
tile()函数(1)一维数组使用tile()import numpy as np# a = np.array([0, 1, 2])# print('a: \n', a)# 原数组a是一个一维数组,shape为(3,),是一个列向量# 将原数组a中的元素看作一个整体按行复制2次得到新的数组(新的列向量[a, a]),shape为(6,)# a1 = np.tile(a, 2)# ...
2019-03-02 16:58:51
473
原创 KNN算法(K-近邻)
1、特点(1)是监督学习算法(2)不需要训练模型,但是如果数据庞大,时间复杂度将是O(n2)(3)对于属性值较大的属性需要进行归一化,否则该属性将在计算距离的时候占据主导权。2、代码import numpy as npimport typesimport pandas as pdfrom collections import Counterfrom sklearn.metrics...
2019-03-02 16:58:09
230
原创 数据挖掘笔记(8)-使用颜色矩提取图像的特征
颜色矩一阶颜色矩一阶颜色矩采用一阶原点矩,反映图像的整体明暗程度。对于RGB颜色空间的图像,i=1,2,3,Ei 表示第i个通道上的一阶颜色矩,Pij表示第j个像素的第i个通道上的颜色值。二阶颜色矩二阶颜色矩采用二阶中心距的平方根,反映图像颜色的分布范围。σi表示第i个颜色通道上的二阶颜色矩。三阶颜色矩三阶颜色矩采用三阶中心距的立方根,反映图像颜色分布的对称性。Si表示第...
2019-02-27 16:47:01
3799
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人