自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 keras实现手写数字识别

title: keras实现手写数字识别date: 2022-02-11 12:02:07tags:- Keras- TensorFlow- 神经网络- 机器学习categories: 机器学习TensorFlow和Kears的安装Keras是基于TensorFlow和Theano(由加拿大蒙特利尔大学开发的机器学习框架)的深度学习库,是由纯python编写而成的高层神经网络API,也仅支持python开发。它是为了支持快速实践而对tensorflow或者Theano的再次封装,让我们可.

2022-02-11 15:47:36 1534

原创 协同过滤算法

目录协同过滤算法相似度的计算方式杰卡德(Jaccard)相似系数杰卡德相似系数杰卡德距离余弦相似度皮尔逊相关系数其他UserCF基于用户的协同过滤算法思想举例说明计算Alice与其他用户的相似度(以余弦相似度为例)根据相似度用户计算出Alice对物品5的最终得分根据用户评分对用户进行推荐缺点数据稀疏性用户相似度矩阵维护度大实现ItemCF基于物品的协同过滤算法思想举例计算物品相似度矩阵根据物品相似度计算出最终得分优缺点优点缺点物品相似度矩阵维护难度大实现UserCF和ItemCF的对比协同过滤算法协同过

2022-02-03 12:03:45 13461 1

原创 聚类(三)--DBSCAN

DBSCan算法DBSCAN算法算法是基于密度得一类聚类算法,可以将具有足够高密度的区域划分成簇,并可以发现任何形状的聚类。下面先介绍几组概念:ϵ\epsilonϵ邻域:给定对象半径ϵ\epsilonϵ内的区域称为该对象的ϵ\epsilonϵ邻域。如下图所示,如果假设p点为中心点,以ϵ\epsilonϵ为半径的圆域就是p的ϵ\epsilonϵ邻域。核心对象:如果给定ϵ\epsilonϵ邻域内的样本点数大于等于Minpoints,则该对象为核心对象。如下图:假设Minpoints=3,以p为中心,

2022-01-26 00:15:00 744

原创 聚类(二)K-means算法优化

K-Means 算法问题1.对于K个初始质心的选择比较敏感,容易陷入局部最小值对于K个初始质心的选择比较敏感,容易陷入局部最小值。例如在运行K-Means的程序中,每次运行结果可能都不一样,如下面的两种情况,K-Means也是收敛了,但只是收敛到了局部最小值解决办法:使用多次的随机初始化,计算每一次建模得到的代价函数的值,选取代价函数最小的结果最为聚类结果。x表示样本,u表示x对应得簇得重心。程序:import numpy as npimport matplotlib.pyplot a

2022-01-25 00:15:00 1376

原创 聚类(一)——K-Means算法

聚类是一种无监督学习。与分类不同的是,分类的数据集都是有标签的已经指明了该样本是哪一类,而对于聚类其数据集样本是没有标签的,需要我们根据特征对这些数据进行聚类。K-Means算法是一种无监督学习的聚类方法。1.K-Means算法算法接受参数K,然后将事先输入的n个数据对象划分成K个聚类以便使得所获得得聚类满足:同一聚类中得对象相似的较高,而不同聚类中的对象相似度较小。算法思想:以空间中K个点为中心进行聚类,对著靠近他们得对象归类。通过迭代的方法,逐次更新聚类中心得值,直至得到最好的聚类结果。K—M

2022-01-24 02:45:00 1380 1

原创 贝叶斯定理

1.贝叶斯定理贝叶斯定理:P(H∣X)=P(X∣H)P(H)P(X)P(H|X)=\frac{P(X|H)P(H)}{P(X)}P(H∣X)=P(X)P(X∣H)P(H)​以上是一个特征的例子,如果特征多个的情况下会使得统计量巨大如下图所示的一组数据,如果需要计算办证对于垃圾邮件的影响,则需要计算办证+理财堆垃圾邮件的影响,办证+理财+投资对垃圾邮件的影响,计算办证+理财+投资+资讯对垃圾邮件的影响…… 总共需要计算2n−12^{n-1}2n−1次,n是特征数。这样如果我们有很多特征的话,显然是无

2022-01-23 00:15:00 1448

原创 集成学习算法及程序

文章目录1.集成学习2.bagging3.随机森林4.boosting5.Stacking1.集成学习集成学习是一种“博采众长”的思想,他通过构建并结合多个机器学习模型来完成学习任务。假如我们通过训练得到了两个学习器,一个学习器准确率为90%,另一个只有60%,但是对于某一些样本,60%的那个学习器的表现可能会比90%的那个好一些。所以集成学习就是组合多个分类器,最后得到一个更好的分类器。对于训练集,通过训练若干个个体学习器,通过一定的结合策略,最终形成一个强学习器,以达到博采众长的目的。集成学习算法

2022-01-22 00:30:00 439

原创 决策树--CART算法

文章目录1.Crat算法(分类树)1.1基尼系数1.2连续型特征处理1.3CART算法1.5 举例说明1.5 代码2.回归树1.Crat算法(分类树)1.1基尼系数CART是基于基尼(Gini)系数最小化准则来进行特征选择,生成二叉树。基尼系数代表了模型得不纯度,基尼系数越小,则不纯度越低,特征越好。这点和信息增益是相反的。在分类问题中,假设有K各类别,第k个类别概率为pkp_{k}pk​,则基尼系数的表达式为:Gini(D)=1−∑k=1Kpk2Gini(D)=1-\sum_{k=1}^{K}

2022-01-22 00:15:00 10370 2

原创 决策树(3)-sklearn实现及可视化画图

1.仍然使用之前得数据

2022-01-21 00:15:00 2531

原创 决策数—(ID3和C4.5)算法实现

1.ID3算法我们要对这样一组数据来构建一棵决策树来预测在{天气=晴,温度=适中,湿度=正常,风速=弱}的情况下,是否适合活动。信息熵为:Ent(′活动′)=−914log2914−514log2514=0.9402859586706309Ent('活动')=-{\frac{9}{14}log_{2}\frac{9}{14}}-\frac{5}{14}log_{2}\frac{5}{14}=0.9402859586706309Ent(′活动′)=−149​log2​149​−145​log2​145​

2022-01-20 00:15:00 708

原创 决策树(1)--ID3算法C4.5算法

1.决策树决策树指一类常见的机器学习算法,以二分类为例,我们希望从给定训练集学得一个模型用以对新实列进行分类,这个把样本分类的任务,可以看作对‘“当前样本属性正常吗”这个问题的“决策”过程。而决策树就是基于树结构来进行决策的,如下图所示如果一个女生的妈妈给她介绍对象,如果这个被介绍的人的年龄大于30岁就不见,如果小于30岁长相丑的话也不见,年龄低于30岁长的帅收入低也不见,如果收入中等不是公务员不见,是公务员才会见面。最终这个女生经过了一系列的决策,决定最终见面还是不见。这个决策的过程就构成了一颗决策树。

2022-01-19 00:30:00 687

原创 KNN算法(附鸢尾花分类实现)

​1.k近邻算法k近邻学习(K-Nearest Neighbor,简称KNN)学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其距离最近的k个样本,然后通过这k个邻居样本来进行预测,那种类别的邻居数量多,这个测试样本就被认为是那个类别的。与“投票”较为类似。下图是一个KNN的二分类问题的一个实列,可以看出k的取值不同,测试样本的分类也会不同,但都是基于他的邻居的投票的出的。下面给出KNN算法的步骤:① 计算未知样本与所有已知样本实列的距离。②对距离从

2022-01-18 00:15:00 2785

原创 逻辑回归实现鸢尾花分类

from sklearn.datasets import load_irisimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.metrics import classification_reportiris=load_iris()#print(iris)print(iris['target_names'])#分类名称data=iris.data#样本数据150个样本每个样本4个维度target=iris.targe

2022-01-17 00:15:00 5682

原创 逻辑回归推导

1.sigmoid函数在逻辑回归中,我们引入了一个函数,sigmoid函数。y=11+e−xy=\frac{1}{1+e^{-x}}y=1+e−x1​ 该函数有一个很好的特性就是在实轴域上y的取值在(0,1),且有很好的对称性,对极大值和极小值不敏感(因为在取向无论是正无穷还是负无穷的时候函数的y几乎很稳定)。由于sigmoid函数的值域在(0,1)之间,这正好可以表示一个概率值,令P(Y=1∣X)=11+e−θx+bP(Y=1 |X)=\frac{1}{1+e^{-\theta{x}+b}}P(Y=

2022-01-16 04:00:00 144

原创 神经网络(4)代码解决异或问题

1.构建神经网络为了解决异或问题,我们构建如图所示的神经网络该神经网络一共有3层,其中z(l)z^{(l)}z(l)表示第l层未经激活函数之前的中间变量,a(l)a^{(l)}a(l)表示第l层输出,θ1\theta_{1}θ1​表示输入层和隐藏层之间的权重矩阵,θ2\theta_{2}θ2​表示隐藏层和输出层之间的权值矩阵。2.代码import numpy as np#输入数据X=np.array([[0,0], [0,1], [1,0],

2022-01-15 00:01:25 1286

原创 神将网络(3)反向传播算法及推导

1.反向传播算法在前一篇文章中我们介绍了神经网络的前向传播并构建出了损失函数。我们从输入层开始一层一层向前进行计算,一直到最后一层的hθ(x)h_{\theta}(x)hθ​(x)。现在为了计算使用梯度下降法就要计算偏导数∂θi,j(l)J(θ)\frac{\partial}{\theta^{(l)}_{i,j}}J(\theta)θi,j(l)​∂​J(θ),我们需要采用一种反向传播的算法,也就是先计算最后一层的误差,然后再一层一层反向求出各层的误差,直到倒数第二层(应为倒数第一层为输入层即x本身,不会

2022-01-14 11:43:59 232

原创 神经网络(2)

1.从感知机到神经网络 在感知机一文中已经对感知机模型,学习算法都做了介绍,它有多个输入一个输出,多个输入经过线性变换通过一个激活函数得到输出。它可以很好地解决线性的二分类问题,但是却无法解决非线性的分类问题。比如简单的异或问题。从图中我们可以看到对于异或问题,显然无法找到可以将正负样本分开的一条直线,那么感知机也就不可能学习出这样的模型。既然一个感知机无法解决非线性分类问题,那么多个感知机呢?。于是有多个感知机构成神经网络便产生了。对于一个如图所示的神经网络,其中x1,x2,x3x_{1},x_

2022-01-13 23:13:04 353

原创 神经网络(1)—感知机

1.感知机模型如图为人体神经网络图,输入信号从树突传入,在细胞核处汇总,输出信号从轴突处传出传入其他神经元,从而构成了一个人体的神经网络。而感知机其类似于一个神经元。一个单层感知机与人体神经元类似,x1,x2,x3x_{1},x_{2},x_{3}x1​,x2​,x3​为输入结点,及神经元的输入信号,w1,w2,w3w_{1},w_{2},w_{3}w1​,w2​,w3​为各输入结点的权重,可以理解为神经元各个树突的电阻,到达细胞核后通过进行汇总,通过一个激活函数处理后进行输出。其中,w和b称为感知

2022-01-13 11:30:34 913

原创 矩阵分解(预测打分)

1.问题引入 有如下R(5,4)矩阵:("-"表示用户没有打分)其中打分矩阵R(n,m)是n行和m列,n表示user个数,m表示item个数。 想要根据目前的矩阵R对未打分的商品进行评分的预测。为了解决这个问题,就用到了矩阵分解的方法。2.问题分析2.1构造损失函数 为了求出未打分的值,可以将矩阵R(n,m)分解为P(n,k)*Q(K,m),所以可以得到一个预测值R^=P∗Q\hat{R}=P*QR^=P∗Q,来预测矩阵R,那么此时我们的问题就转换成了如何令R^\hat{R}R^与R最为接近,

2022-01-11 21:53:23 1576

原创 正则化(吴恩达机器学习笔记)

文章目录1.过拟合问题2.代价函数3.正则化线性回归1.梯度下降法2.正规方程4.正则化逻辑回归1.过拟合问题如图所示:第一个模型是线性的,属于欠拟合,不能很好的适应数据集,而第3个则是一个高次方的模型,过于拟合原始数据,从而不能很好的预测数据,属于欠拟合。也不难看出,当x的次数越高,训练出来的模型就会对数据集拟合的越好,但是其预测效果就会变差。解决方案:①减少特征的数量,丢弃掉一些非必要的特征。②正则化。保留所有特征,减小模型参数。2.代价函数在上面图中第三个模型为:hθ(x)=θ0+θ1

2022-01-07 12:53:40 2024

原创 逻辑回归(吴恩达机器学习笔记)

1.分类问题 在分类问题中,要预测的变量y是一个离散的值,尝试预测的结果是否属于某一个类,如:判断一封电子邮件是否是垃圾邮箱,区分一个肿瘤是恶性的还是良性的。 我们将因变量可能属于的两个类分别称为负向类和正向类,则因变量y∈0,1,其中0表示负向类,1表示正向类。2.假说表示 ,在逻辑回归中我们引入一个新的模型,该模型的输出变量范围始终在0和1之间。逻辑回归的假设是:hθ(x)=g(θTX)h_{\theta}(x)=g(\theta^{T}X)hθ​(x)=g(θTX),其中x代表特征向量,g代表

2022-01-05 22:14:25 1043

原创 多元线性回归boston房价(吴恩达机器学习笔记)

​对房价模型增加更多的特征,如房间数,楼层数等,构成了一个含有多变量的模型,模型中特征为(x1,x2...xn)(x_{1},x_{2}...x_{n})(x1​,x2​...xn​).其中n代表特征数量,m代表训练集中的实列数量。x(i)x^{(i)}x(i)代表第i个训练实列。xj(i)x^{(i)}_{j}xj(i)​代表特征矩阵中第i行的第j个特征。​ 多变量的回归的假设h为:hθ(x)=θ0+θ1x1+θ2x2+...+θnxnh_{\theta}(x)=\theta_{0}+\the

2022-01-04 15:01:14 939

原创 一元线性回归实现

文章目录1.手工梯度下降法```python2.sklearn实现1.手工梯度下降法```pythonimport numpy as npimport matplotlib.pyplot as plt%matplotlib inline```python#载入数据data=np.genfromtxt("/root/jupyter_projects/data/fangjia1.csv",delimiter=',')#x_data=data[0:,0]#分离data数据,取所有行第0列 x

2022-01-03 22:31:31 534

原创 矩阵的基本运算

文章目录1 矩阵和向量2加法和标量乘法3矩阵向量的乘法4矩阵乘法5单位矩阵6 逆、转置1 矩阵和向量[140219113218211421448]\left[\begin{matrix}1402&&191\\1321&&821\\142&&1448\end{matrix}\right]⎣⎡​14021321142​​1918211448​⎦⎤​这是一个4*2矩阵,即4行2列A=[140219113218211421448]A=\left[\begin{

2022-01-03 17:25:31 5015

原创 一元线性回归与梯度下降法

文章目录1.问题引入2.代价函数3.梯度下降法1.问题引入根据不同房屋尺寸,预测出房子可以卖多少钱。所做任务就是通过给的数据集构建一个模型。显然这是一个回归问题,根据之前的数据预测出一个准确的输出值。为了描述这个回归问题,标记如下:给出的数据集被称为训练集用m表示训练集中实列的数量用x表示输入变量/特征用y表示输出变量/目标变量(x,y)表示训练集中的实列(x(i),y(i))代表第i个观察实列h代表学习算法的解决方案或函数也称为假设(hypothesis)在本例中,h表示一个函数

2022-01-03 15:31:18 773

原创 云服务器搭建在线jupyter notebook

1.在浏览器中使用jupyter1.安装jupyter notebookpip install jupyter 2.生成Jupyter Notebook配置文件jupyter notebook --generate-config3.设置Jupyter Notebook密码[root@iZbp173czfyjpvvdm6k4amZ ~]# python3Python 3.9.0 (default, Nov 4 2021, 16:08:45) [GCC 8.4.1 20200928 (Re

2021-12-17 23:04:04 1027 2

原创 梯度下降法

梯度下降法这里写目录标题梯度下降法1.基本思想1.确定损失函数2.对损失函数求偏导3.应用梯度下降法修改不断当前值2.例子:3.梯度下降法分类1.基本思想函数变化最快的方向及函数的梯度方向。故想要找到函数的一个最低点,就可以沿函数的负梯度方向进行搜素,并不断改变当前x的值,再沿梯度方向进行搜素。直到达到自己设定的步数或者小于自己设定的损失差时停止搜索。梯度下降法步骤:1.确定损失函数假设函数: hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ​(x)=θ0

2021-11-23 14:09:50 516

原创 机器学习-------线性回归

线性回归1.给定数据集D=(x1,y1),(x2,y2),(x3,y3),(x4,y4)……(xn,yn)D={(x_1,y_1),(x_2,y_2),(x_3,y_3),(x_4,y_4)}……(x_n,y_n)D=(x1​,y1​),(x2​,y2​),(x3​,y3​),(x4​,y4​)……(xn​,yn​)希望可以得到f(xi)=wxi+bf(x_i)=wx_i+bf(xi​)=wxi​+b使得f(xi)f(x_i)f(xi​)与yiy_iyi​之间的差别尽可能小,这时我们引入损

2021-11-22 11:49:21 1035

原创 数据结构——队列

1.队列的基本概念定义:队列也是一种操作受限的线性表,只允许在表的一端进行插入,另一端进行删除。概念:向队列中插入元素称为入队,删除元素成为出队。操作特性为:先进先出2.队列的基本操作1.存储类型typedef struct queue{ int front; int rear; Datetype *base;}Queue;2.加溢出在图a中,此时为队列的初始状态,有Q.frontQ.rear0成立,该条件可以作为判断对空的条件。但却不能用Q.rear==MaxSize,在图d中,

2021-11-20 18:17:15 441

原创 数据结构——栈

栈是只允许在一端进行插入或删除操作的线性结构。栈的操作特性可概括为后进先出。入栈次序为

2021-11-20 17:14:32 301

原创 数据结构———单链表

1.存储结构 单链表的特点是:用一组任意的存储单元存储线性表的数据元素,这种存储单元可以连续也可以不连续。 链表的结点包括两个域:存储数据元素的数据域和存储后继结点的指针域。typedef struct LNode{ ElemType data;//数据域 struct LNode* next;//指针域}LNode, * LinkList;2.单链表的基本操作 1.初始化Status InitList(LinkList&a...

2021-11-20 16:13:02 385 1

空空如也

空空如也

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

TA关注的人

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