自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 安装python的虚拟环境

使用virtualenv安装python的虚拟环境下载需要版本的python执行器安装virtualenv, 使用pip3 install virtualenv -i https:/pypi.douban.com/simple/直接在命令行输入D:跳转到D盘根目录下;然后使用cd 文件夹名称,跳转到对应的文件夹。使用virtualenv 虚拟环境名 --python= python path 创建指定的版本的python虚拟环境激活虚拟环境,跳转到对应的虚拟环境文件夹下,cd Scripts,然

2021-03-04 23:06:21 129 1

原创 线性回归模型的公式推导

线性回归模型的公式推导y = θ0+θ1x1+θ2x2+θ3x3+...+θmxm\theta_0 +\theta_1 x_1+\theta_2 x_2+\theta_3 x_3+...+\theta_m x_mθ0​+θ1​x1​+θ2​x2​+θ3​x3​+...+θm​xm​因为现在需要有n个样本,每个样本有m个特征,为了将常数项加如矩阵,加入一列特征,所以有n行m+1列,矩阵大小为n*(m+1)为了将常数项θ0\theta_0θ0​包括进参数θ\thetaθ的矩阵中,我们需要将θ\thetaθ

2020-11-23 13:30:36 503

原创 数据分箱

数据分箱##为什么需要将连续数据做分箱?(为什么要对连续特征做离散化处理)离散特征的增加与减少都很容易,易于模型的快速迭代,(就是说增加一个或几个离散特征,模型在原先的基础上训练,相对于连续特征,时间花费比较少)稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展逻辑回归属于广义线性模型,表达能力受限;单变量散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。离散化的特征对异常数据有很强的鲁棒性,比如:一个特征是年龄>30是1,否则是0,。如果特

2020-11-21 20:25:11 315

原创 k-means

k-means   聚类算法是在不知道数据标签的情况下将相似的数据分为一类。K-means是一个经典的聚类算法,在实践中往往得到不错的效果。K-means的算法流程:选择K个中心点,计算样本中每个点与这K个点的距离。比较样本点离那个中心点最近的,并将该样本点划分到离样本点最近的类别中。根据第2步将每个样本分为K个簇,求每个簇的中心点,将其作为新的中心点。重复的执行1到3步,直到簇的中心变化小于规定值,或者达到预定的迭代次数,或者MSE小于预定值。​    算法的可视化如图:算法的

2020-11-20 17:28:23 273

原创 FM模型

  FM(Factorization Machines,因子分解机),它是一种通用的预测方法,在即使数据非常稀疏的情况下,依然能估计出可靠的参数进行预测。与传统的简单线性模型不同的是,因子分解机考虑了特征间的交叉,对所有嵌套变量交互进行建模(类似于SVM中的核函数),因此在推荐系统和计算广告领域关注的点击率CTR(click-through rate)和转化率CVR(conversion rate)两项指标上有着良好的表现。此外,FM的模型还具有可以用线性时间来计算,以及能够与许多先进的协同过滤方法(如Bi

2020-11-19 16:03:16 351

原创 逻辑回归的损失函数与损失函数的梯度公式推导

逻辑回归的损失函数逻辑回归的函数为f(x)=11+e−θTxf(x) = \cfrac{1} {1+e^{-\theta^T x }}f(x)=1+e−θTx1​公式满足分布函数的性质(1)非负有界性 0<=F(x)<=10<= F(x) <=10<=F(x)<=1 (2)单调连续性 (3)右连续性 F(x0+)=F(x)F(x_0^+) = F(x)F(x0+​)=F(x)所以可以认为是随机变量x的分布函数,即为F(x)=P(x)F(x) = P(x)F(x

2020-11-17 22:52:05 367 1

原创 Adaboost模型公式的参数推导

假设最后根据各个基模型Gi(x)i∈[1,m]G_i(x) {i\in[1,m]}Gi​(x)i∈[1,m],各个基模型重要程度为αi\alpha_iαi​加权得到的模型为fm(x)f_m(x)fm​(x),其中y∈{−1,1}y\in{\{-1,1\}}y∈{−1,1}fm(x)=∑i=1mαiGi(x) f_m(x) = \sum_{i = 1}^{m}\alpha_{i} G_i(x) fm​(x)=i=1∑m​αi​Gi​(x)fm(x)=∑i=1m−1αiGi(x)+αmGm(x) f_m(x

2020-11-17 22:29:41 161 1

原创 sigmoid函数和tanh函数和relu函数和leaky_relu函数

sigmoid函数,tanh函数,relu函数,leaky_relu函数原理与实现import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdef sigmoid(x): return np.exp(x)/sum(np.exp(x))def tanh(x): return (np.exp(x) - np.exp(-x))/(np.exp(x) + np.exp(-x))def relu(x):

2020-11-17 22:19:54 343

原创 逻辑回归的损失函数与损失函数的梯度公式推导

逻辑回归的损失函数  逻辑回归的函数为f(x)=11+e−θTxf(x) = \cfrac{1} {1+e^{-\theta^T x }}f(x)=1+e−θTx1​  公式满足分布函数的性质(1)非负有界性 0<=F(x)<=10<= F(x) <=10<=F(x)<=1 (2)单调连续性 (3)右连续性 F(x0+)=F(x)F(x_0^+) = F(x)F(x0+​)=F(x)所以可以认为是随机变量x的分布函数,即为F(x)=P(x)F(x) = P(x

2020-11-16 16:18:13 645

原创 决策树2

决策树2  决策树如果一直分类下去,可以直到熵为0或者基尼指数为0。但数据存在噪声,如果把每一个点都分类正确,模型的泛华能力就不够,此时的模型分类效果好就仅仅是一种巧合。对于这种情况,决策树模型一般的处理方法就是将决策树模型进行剪枝操作。  剪纸操作分为两种,一种是前剪枝,一种是后剪枝。  前剪枝:在生成决策树的过程中剪枝。在决策树完全分类完成前就进行剪枝操作。这种剪枝一般通过调整决策树的深度,节点中最少多少了样本点就不在分裂,计算每次分裂的准确率,当准确率的提升小于某个阀值时就停止分裂。

2020-10-15 08:33:41 301 1

原创 决策树

决策树1​ 在介绍决策树之前,我们需要先学习生成决策树中必不可上的一环—信息熵。​ 熵表示的是混乱的程度,对应在分类问题上可以看做集合中标签不确定的程度。对一个标签的集合,其中个标签的比例相当,没有哪一个标签的比例太高或太低,这样确定某一个标签的种类就越难。或者说这个集合中标签的纯度。​ 为了表示这种不确定的程度,我们引入信息熵的概念。​ 设X是一个取有限个值的离散随机变量,其概率分布为:​ P(X=xi)=pi,i=1

2020-10-14 09:26:39 114

原创 机器学习模型的评估方法

机器学习分类模型的评估方法机器学习模型简单分为回归模型与分类模型,回归模型与分类模型的预测类型一个是连续的变量,一个是离散的变量。这使得评估的方法各有不同。对于分类模型判断一个西瓜是不是成熟的,按照机器学习的方法我们需要采集关于西瓜的一系列数据,这些数据比如西瓜的颜色,大小等特征还有每个西瓜是否成熟的标签,然后选择模型,将数据划分为测试集与训练集,利用测试集训练模型。这个时候我们已经得到了一个根据西瓜的颜色、大小等特征预测西瓜是否成熟的模型了。为了测试模型的质量,我们将测试集的特征数据输入模型得到一系

2020-10-12 23:18:55 444

原创 操作系统进程

程序:就是一个指令序列早期的计算机(只支持单道程序)程序的代码存在程序段(低地址段),产生的数据存放在数据段。多道程序技术:操作 系统在每个运行的程序配置一个数据结构,称为PCB。PCB、程序段、数据段三段构成进程实体(进程印像)一般我们可以把进程实体就简称为进程例如:所谓创建进程,实质上是创建进程实体中的PCB,而撤销 进程,实质就是撤销进程实体中的PCB。注意:PCB是进程存在的唯一标志!从不同的角度,进程可以有不同的定义,比较传统和典型的定义有: 1.进程是程序的一次执行过程

2020-09-24 08:31:40 85

原创 图解算法读书笔记第五章

图解算法读书笔记第五章对于一个随机列表,我们的查找操作需要一个一个的排查,算法的复杂度是OOO(nnn),随着列表程度的增加,所用的时间也是线性增加的。但对于一个有顺序的列表,我们可以使用二分查找去做,这样的算法复杂度为OOO(lognlognlogn),相比较而言,时间的减少了很多。对于这一点,我们需要有一个函数能将输入的值做某种映射,将一个输入的任意的值转化为一个唯一确定的标识,这样就可以使用有序数列的二分查找去做处理了。散列函数正好可以实现这样的功能,不论你输入什么,它都可以给你返回一个数字,

2020-09-22 20:30:44 83

原创 python基础语法

#python基础语法##1.变量的类型数字####整数浮点数##2.运算符数值运算加减乘除​ 加 +减 -乘 x除 /逻辑运算:​ 与 and或 or取反 ~异或 ^其中除了一般的已知点and的运算技巧:a and b 如果a成立,则表达式的值是b;如果a不成立,那么该表达式不会计算b,直接为0​ a or b 如果a成立,则不会计算b的值,表达式的值直接为1;如果a不成立,那么该表达式的值为b;​ 异或运算较为少见,但记住不同为1,相同为0。取余和取整操作:

2020-07-22 23:22:25 103

原创 图解算法读书笔记第四章

快速排序分而治之(divide and conquer,D&C)-一种著名的递归式问题解决方法快速排序的思路就是这样的一种思路。对5,4,7,9,10,1,2,8,6使用快速排序快速排序需要选择一个中间值。然后将大于中间值放一边,小于中间值放另外一边。知道在排序的最长的一侧子序列为2个为止。例如选择第一个元素5为中间值,则排列后的为4,1,2,|5|,7,9,10,8,6(快速排序具有保序性,原有排列顺序不变)继续选子序列的第一个元素为子序列中间值,则排列后为1,2,|4|,5,6,|

2020-06-15 17:26:56 118

原创 图解算法读书笔记第三章

算法图解##1.递归算法的理解递归在该书上面的例子是一个层层嵌套的盒子,但在其中的一层盒子里面有钥匙。为了找到钥匙,你需要一层一层的拆盒子。基本的做法是这样:如果打开上一层的盒子看到的还是盒子,那就打开这个盒子。如果开到的是钥匙,那就不用再拆盒子了。上面的这个过程可以总结成两个条件:1.基线条件:如果打开盒子看到钥匙,那么过程结束,问题解决2.递归条件:如果打开盒子没有看到钥匙,而是看到盒子,那么就打开盒子在递归条件下,我们不断的减小问题的规模,直到找到钥匙。计算机对应的算法结构在计算机中

2020-06-15 17:25:24 137

原创 看到这个加法求和,我自闭了

#关于加法求和:###现在有一个题的条件极为苛刻。要求用python编程做到1到100的求和,但不能使用if,for,while,else等关键字与条件判断语句,同时不能使用乘除法看到这道题。我首先想到了以前学的递归,所以是优先考虑的递归的写法根据递归的需要满足的两个条件:1.基线条件(什么条件下终止递归),当n<=0时,递归必须终止到02.递归条件(什么条件下需要递归),当n>0时,summery(n)=n+summery(n-1)所以可以得到下面的程序def summery(n

2020-06-15 17:23:39 438

原创 图解算法读书笔记1-2章

图解算法读书笔记1.一些常见的大O运行时间O(log n)也叫对数时间,这样的算法包括二分查找O(n)也叫线性时间,这样的算法包括简单查找O(n*log n)也叫对数时间,这样的算法包括快速排序,较快O(n²)也叫对数时间,这样的算法包括选择排序,较慢O(n!)非常慢算法的速度指的并非是时间,而是操作数的增速讨论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加##2.链表与数组数组在内存中的空间是连续的。就是像是一个一个横向紧邻有标号的格子。好处是:读取第n

2020-06-07 22:13:56 171 1

原创 再画三角形

上一节利用线性规划的知识画了三角形。这次依然需要画三角形picture 1根据上一节的结论可以发现,同样建立坐标系,可以得到的边界方程为f(x)={x+y−6=0x−y+4=0 f(x)=\left\{\begin{aligned}x +y-6 = 0 \\x-y+4 = 0 \\\end{aligned}\right.f(x)={x+y−6=0x−y+4=0​对应的区域为f(x)={x+y−6>=0x−y+4>=0 f(x)=\left\{\begin{aligne

2020-06-02 22:37:40 204

原创 画三角形2

画三角形2依然是画如图所示的三角形对于该问题可以分解为两个问题1.如何画出picture 1和picture 2,2.然后合并picture 1和picture 2picture 1picture 2对于构成三角形的点,如果放在坐标系中看,可以看作一个一个的坐标。尝试根据打印的规律建立坐标系。以三角形的行方向作为x轴,至上向下打印为正向;以三角形的列方向作为y轴,至左向右打印方向为正向。则对于picture 1可以得到picture 3所示的坐标系picture 3将图向左旋转

2020-06-01 23:59:33 771

原创 画三角形与菱形

如何利用*画如下图所示的三角形?对该问题最初的分析是:观察第一层的*出现在中间(10),第二层的*出现在(9,10,11),第三层*出现在(8,9,10,11,12)以后的每层都有类似的规律,那么第n层的*出现在(11-n,...,10,...,9+n)整理成伪代码如下:for i= 1:10: for j=1:20: if 11-n <= j <= 9+i: print('*') ...

2020-06-01 22:13:04 921

空空如也

空空如也

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

TA关注的人

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