- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 排序算法之——简单选择排序
选择排序简单选择排序简介简单选择排序算法的性能:简单选择排序代码(c++)简单选择排序的一种选择排序的方法。给定一个数组array[]={2,4,6,1,3},对它进行升序排序。简单选择排序简介简单选择排序的方法就是每次在待排序的数组中选到最小的那个数,把它放到数组中的前面。原数组{2,4,6,1,3}将数组中的第一个数2与数组中的其他元素进行比较,发现最小的数是1,因此将1与2的位置进行变换,得到数组[1,4,6,2,3]。将数组中的第2个元素4与数组中的其他元素进行比较,得到最小的数是2
2021-01-19 15:45:01
393
原创 排序算法之——归并排序
归并排序归并排序简介归并排序算法的性能:归并排序代码(c++)归并排序说白了是利用归并的思想实现排序的方法。给定一个数组array[]={23,46,0,8,11,18},对它进行升序排序。归并排序简介快速排序的基本思想就是将问题分成许多个小的问题,进行递归求解,然后在通过合并将他们合在一起。用一张图来形象的表示:可以看出分为两个阶段:分 与 治分阶段: 可以理解为通过递归来把这一数组拆分成子序列的过程。治阶段: 就是将两个有序的子序列合并成一个有序列。如将[4,5,7,8]和[
2021-01-19 14:33:21
429
原创 排序算法之——快速排序
快速排序快速排序简介快速排序算法的性能:快速排序代码(c++)快速排序也是属于交换排序的一种方法。给定一个数组array[]={23,46,0,8,11,18},对它进行升序排序。快速排序简介快速排序的基本思想就是通过一趟排序,将要排序的数据分割成独立的两部分,在分割点的左边都是比他小的数,分割点的右边都是比他大的数。left<right base(基准数据)=a[left]从队尾开始向前扫描,当a[right]>base时,right–;若a[right]<
2021-01-15 18:59:25
456
原创 排序算法之——直接插入排序
直接插入排序直接插入排序简介直接插入排序算法的性能:直接插入排序代码(c++)直接插入排序是属于插入排序的一种简单的方法。给定一个数组array[]={2,4,6,1,3},对它进行升序排序。直接插入排序简介直接插入排序的方法就是每次将一个新数据插入到有序队列中的合适位置里。,定义可能看的不是很懂,下面从例子直接来说明。原数组{2,4,6,1,3}(1)将数组中序列下标为0的元素视为个数为1的有序序列。将4插入到[2]这个有序的序列之中去,因为2<4,所以插序之后的序列为[2,4,6,
2021-01-14 21:21:59
340
原创 排序算法之——冒泡排序
冒泡排序冒泡排序简介冒泡排序算法的性能:冒泡排序代码(c++)冒泡排序是属于交换排序的一种方法。给定一个数组array[]={2,4,6,1,3},对它进行升序排序。冒泡排序简介冒泡排序的方法就是要在每趟排序过程中比较相邻的两个元素,即将小的放在前面,大的放在后面。原数组{2,4,6,1,3}第一次循环(将数组中最大的放到最后面)将2和4进行比较,2<4,所以排序之后为[2,4,6,1,3]将4和6进行比较,4<6,所以排序之后为[2,4,6,1,3]将6和1进行比较,6&g
2021-01-14 19:45:13
247
1
原创 leetcode--双指针
这道题的思路是使用双指针:i代表从数组最左边的元素进行遍历,如果该字母不是元音字母的话,继续遍历(i++),直到遇到元音字母为止,然后进行交换。j代表从数组最右边的元素进行遍历,同样的若数组中的尾字母不是元音字母的话(j–),继续遍历,直到遇到元音字母为止,进行交换。代码:class Solution {public: string reverseVowels(string s) { int i=0,j=s.length()-1; while(i<j) {.
2020-09-05 16:51:18
167
原创 力扣刷题——移动元素
力扣中关于移动元素的算法题。1. leetcode——27题,移动元素。这道题看到之后有两种思路。1、第一种思路其实很简单,就是遍历数组中的元素,将其与目标值进行比较看是否相等,若相等的话,我们可以通过c++中的erase()函数对其进行删除。class Solution {public: int removeElement(vector<int>& nums, int val) { for(int i=0;i<nums.
2020-08-31 20:43:09
214
原创 Re-Weighted Discriminatively Embedded K-Means for Multi-View Clustering
RDEKM这篇论文的创新点:提出一个多视图最小绝对残差模型。原来的多视K均值聚类的方法是采用非负矩阵分解,如公式所示:其聚类性能数据异常值的很大影响。基于此本论文提出一个多视最小绝对残差的模型,其中WkW_kWk表示的是一个投影矩阵,对高维数据进行降维,避免维度诅咒。在模型中残差∥.∥F\left \| . \right \|_F∥.∥F没有进行平方,所以可以减少离群值的影响,并具有很好的鲁棒性。目标函数为:其中...
2020-08-01 17:01:08
542
原创 Binary Multi-View Clustering(基于二进制的多视图聚类)
本篇论文是一篇关于二进制的多视聚类文章,用于处理大规模的多视数据集。1、首先对多视数据进行哈希编码本论文在第v个视图的数据中随机选取m个样本或者通过k-mean算法直接生成m个子簇中心amva_m^{v}amv来表达这个视图的数据分布,然后计算xsvx_s^vxsv于amva_m^{v}amv的核函数。之后乘上对其进行降维,并通过sgn()符号函数得到第v个视图的哈希矢量。2、学习一个统一的哈希矢量因为是多视图学习,所以一共有M个视角的哈希矢量hsvh_s^vhsv,从中学习一个统一的
2020-08-01 16:29:37
1203
1
原创 [KDD 2019] K-Multiple-Means(K多均值聚类)
原文作者链接本次描述地这篇论文是《K-Multiple-Means: A Multiple-Means Clustering Method with Specified K Clusters》,这是一篇关于多原型聚类地文章。众所周知,K-means是一种非常流行地聚类方法,使用一个质心对每一类的数据进行建模,在大多数的数据分布中能取得很好的效果。但是对于双月牙形这种非凸图案,得到的聚类结果很差。由此作者提出了一种新的多原型聚类的方法——KMM(K多均值聚类)。不同于以往的原型聚类方法(层次聚类),即先
2020-08-01 16:04:59
1878
2
原创 matplotli线条类型、颜色
本文由以下链接转载:http://www.cnblogs.com/darkknightzh/p/6117528.html参考网址:http://stacko...
2020-06-23 12:31:50
762
原创 自适应近邻的多视图聚类
多视图聚类 对最近看的论文的一个总结。Multi-View Clustering and Semi-Supervised Classification with Adaptive Neighbours(MLAN) 聂飞平将单一视图的CAN推广到多视聚类,即MLAN。 单视CAN聚类的目标函数为:推广到多视聚类MLAN:其中wvw_vwv是每个视图的权重,这里的权重是自动分配,不需要添加参数。 我在这里理解wvw_vwv参数的含义是将距离的平方开根号,减少离群点的重要性,不知道我理解
2020-06-11 13:10:22
4158
14
原创 自适应近聚类(Clustering and Projected Clustering with Adaptive Neighbors)
在谱聚类中,构造邻接矩阵时,对于每个边的权重需要用高斯核函数来构造,对此需要调节参数σ\sigmaσ,嗯嗯…我们知道调参是一件很无意义的事情,鲁棒性不是很好。那么如何解决这个问题? 聂飞平大佬14年提出了自适应近邻构造图的方法(CAN),Clustering and Projected Clustering with Adaptive Neighbors,接下来我们简单的介绍一下CAN方法。 该算法的含义很简单:“距离较小的数据点成为邻居的可能性较大”这一先验知识的前提下,引入了概率邻居,在
2020-06-11 10:52:29
6118
33
原创 谱聚类算法(Spectral Clustering)的简单介绍
谱聚类(spectral clustering)是广泛使用的聚类算法,数据分布的适应性很强,(对于非簇状分布的数据也能起到很好的效果)聚类效果也很优秀,同时聚类的计算量也小很多,被大家广泛使用。1、谱聚类概述 谱聚类的基本思想很简单,利用从数据中得到的特征矩阵实现聚类,依靠两个部分完成聚类工作,第一个部分为图的构造,第二个部分对构造好的图,诱导出拉普拉斯矩阵并做特征分解,求特征向量,将数据嵌入到特征向量空间,进而实现聚类。 在介绍谱聚类之前先简单的回顾下图论和拉普拉斯矩阵的有关知识。2、图论
2020-06-11 09:24:41
1557
原创 csdn转载别人博客
参考博客原址 http://blog.youkuaiyun.com/bolu1234/article/details/51867099转载优快云博客步骤:1、优快云博客页面右键,点击【检查】...
2020-05-03 22:24:46
199
原创 去重
package com.duking.hadoop; import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hado...
2020-04-19 22:19:38
221
原创 eclipse使用wordcount
package org.apache.hadoop.example;import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoo...
2020-04-19 21:34:18
299
原创 机器学习初探之logistic回归
正文 在前面我们知道,感知机对数据进行分类是生成一个超平面(在二维世界中是一条直线),这个超平面可以将图中的两类点区分开。如下图所示: 但是感知机存在一个很重要的问题,那就是它是一个硬分类,我们只用sign(w*x+b)输出的+1和-1来判断点的类别。如下图所示:这么简单的判别方式真的会很有效吗? 虽然我们已经程序测试过正确率很高,但总是让人有点担心是否在很多情况下都能很好地工...
2020-03-11 14:44:30
576
原创 机器学习初探之朴素贝叶斯优化
一、前言 在上篇文章中,讲解了朴素贝叶斯的基础知识。本篇文章将在此基础上进行扩展:二、拉普拉斯平滑 上篇文章提到过,算法存在一定的问题,需要进行改进。那么需要改进的地方在哪里呢?利用贝叶斯分类器对文档进行分类时,要计算多个概率的乘积以获得文档属于某个类别的概率,即计算p(w0|1)p(w1|1)p(w2|1)。如果其中有一个概率值为0,那么最后的成绩也为0。我们拿出上一篇文章的截图。...
2020-03-10 11:11:25
1706
原创 机器学习初探之朴素贝叶斯分类
一、 前言 朴素贝叶斯算法是有监督的学习算法,解决的是分类问题,如客户是否流失、是否值得投资、信用等级评定等多分类问题。该算法的优点在于简单易懂、学习效率高、在某些领域的分类问题中能够与决策树、神经网络相媲美。但由于该算法以自变量之间的独立(条件特征独立)性和连续变量的正态性假设为前提,就会导致算法精度在某种程度上受影响。在讲解朴素贝叶之前,我们首先推导一下贝叶斯公式。二、贝叶斯公式推...
2020-03-09 23:49:16
298
原创 python中元组(tuple)和列表(list)的区别
一、前言 想必大家都知道,在Python数据类型中有两个对象:元组 tuple 和列表 list 。 它们的写法和用法都十分相似,傻傻分不清楚。可能有的同学就会疯狂的去网上查找它们之间的区别了,可是查到的无外乎有以下几种说法: list 是可变的对象,元组 tuple 是不可变的对象! 由于 tuple 不可变,所以使用 tuple 可以使代码更安全!等等 … 下面我们来分析l...
2020-03-09 10:54:05
9864
原创 机器学习初探之感知机
监督学习 我么们知道机器学习就是让机器跟人类一样去学习东西。我们人类是怎样去学习呢?简单的说,就是有老师传授我们知识,带着我们学习(比如说带领我们认识世界上的各种动物,如、熊猫、老虎、猫咪和小狗)。然后呢,通过不断的学习和总结,我们形成了自己的知识架构(即对这些动物能够进行很好的判别),当我们去动物园参观动物时能够知道这些动物的名字。 如下图所示: 其实机器学习和人类的学习方式一样。只...
2020-03-08 12:14:49
540
原创 机器学习处探
总结研一上学期机器学习的知识。参考的书目为《统计学习方法》《机器学习》《机器学习实战》(老师讲的实在好烂)。 机器学习分为监督学习、半监督学习、非监督学习和强化学习这四种。如图所示:1、监督学习 监督学习是利用已标记的有限训练数据集通过某种学习策略/方法建立一个模型,实现对新数据/实例的标记(分类)/映射。监督学习要求训练样本的分类标签已知,分类标签的精确度越高,样本越具有代表性,...
2020-03-06 22:04:41
427
原创 二叉树的遍历(先序、中序、后序)
二叉树的遍历分为以下三种:1、先序遍历:遍历顺序为【根左右】2、中序遍历:遍历顺序为【左根右】2、中序遍历:遍历顺序为【左右根】所谓的先序遍历中的【根左右】是什么意思呢?即:(1)访问根节点; (2)先序遍历左子树; (3)先序遍历右子树。 举个例子,看下图这个树的前序遍历:ABDEGHCF中序遍历:DBGEHACF后序遍历:DGHEBFCA层次遍历:ABCDEFG...
2020-02-28 21:24:36
7081
原创 python中yield的理解与使用
Python3中yield对初学者一直是一个难点存在,网上很多教程,噼里啪啦写了很多,也举了很多例子,但是读完之后还是不知所以然,下面问题还是不知道如何回答,内容有点多,有些地方可能有点啰嗦,但都是满满的干货。yield究竟是干嘛的?yield是怎么执行的?yield的好处是什么?1. 迭代器与可迭代对象开始之前,先理解一下迭代器与可迭代对象,因为yield其实是一种特殊的迭代器,不...
2019-11-02 17:16:29
213
原创 关于c++ const的使用
const的定义Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的,即不能够改变。c++中const的作用(此图片转自https://blog.youkuaiyun.com/Eric_Jo/article/details/4138548)c++和c中const的区别在c++中,一个const不必创建内存空间,而在c中,一个con.........
2019-10-11 09:47:59
489
原创 数据结构之二叉树
数的定义:1、有且只有一个称为根的节点。2、有若干个互不相交的子树,这些子树本身也是一棵树。深度:从根节点到最底层节点的层数称之为深度。叶子节点:没有子节点的节点。非终端节点:非叶子节点。度:子节点的个数称为度。叶子节点:没有子节点的节点。图中A的度为3,C的度为1,F的度为0;此数的深度为3。一般树:任意一个节点的子节点的个数都不受限制。...
2019-10-03 16:20:02
149
原创 数据结构之队列
一 队列的定义队列(Queue):是一种先进先出(First In First Out ,简称FIFO)的线性表。只允许在表的一端front进行插入,而在另一端rear进行删除。队首(front) :允许进行删除的一端称为队首。队尾(rear) :允许进行插入的一端称为队尾。二 队列的分类队列可分为静态队列和链式队列两大类。其中静态队列是用数组形式实现的,为循环队列。三 循环队列的讲解...
2019-10-01 10:29:11
269
原创 数据结构之栈
一 栈的定义栈是一种“先进后出”的一种数据结构,有压栈出栈两种操作方式。如下图:二 栈的分类栈可分类为:静态栈和动态栈两大类。凡是动态分配的都在堆里面分配。凡是静态分配的都在栈里面分配。三 栈的算法栈的算法主要是压栈和出栈两种操作的算法,下面我就用代码来实现一个简单的栈。首先要明白以下思路:(1)栈操作的是一个一个节点(2)栈本身也是一种存储的数据结构(3)栈有初始化、压栈...
2019-09-30 22:34:33
560
原创 数据结构之单向链表
链表是一种存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。结构体指针在这里得到充分的利用。其中链表中的节点都由以下两部分组成:1、数据元素本身,其所在的区域称为数据域;2、指向直接后继元素的指针,所在的区域称为指针域;也就是说,链表实际存储的是一个一个的节点,真正的数据元素...
2019-09-28 20:25:17
312
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人