算法

吴恩达ML课程笔记(Chapter13)

拜拜、爱过 提交于 2020-01-19 01:50:54
文章目录 Lesson13 13-2 k-means算法 13-3 优化目标 13-4 随机初始化 13-5选取聚类的数量 Lesson13 K:聚类的数量 c (i) :样本点x (i) 被分到的聚类的索引值 μ k :第k个聚类中心的位置 13-2 k-means算法 1.聚类算法:把无标记(non-label)的数据分成一簇一簇的算法 2.k-means算法: 我的另一篇博客 3.k-means算法也可以分类那些数据比较集中的数据集,比如像这样: 4.这里需要注意一点,大写K用来表示聚类/簇的数量,小写k用来表示1~K区间里的某一个数 13-3 优化目标 1.优化目标: c i :第i个点被分类到的聚类的索引 J(c (1) ,c (2) ,…c (m) ,μ 1 ,…,μ k )= 1 m \frac{1}{m} m 1 ​ ∑ i = 1 m x i 到 x i 被 分 类 到 的 聚 类 中 心 点 的 平 方 \sum_{i=1}^m{xi到xi被分类到的聚类中心点的平方} ∑ i = 1 m ​ x i 到 x i 被 分 类 到 的 聚 类 中 心 点 的 平 方 我们就是要找到这一套c和μ,使得上述J最小。K-means算法的第一步就是在找这套c,第二步就是找这套μ 13-4 随机初始化 1.首先需要注意,应该使K<m 2.随机选取聚类中心的方法

【推荐算法】图解抖音推荐算法

霸气de小男生 提交于 2020-01-19 01:48:24
抖音推荐算法究竟如何是做抖音短视频运营的同学非常关心的问题,抖音官方并没有披露正式的算法,但凭借着民间的智慧和官方披露的部分信息中,网友已经总结出抖音推荐算法的秘密。这里整理资料如下: 首先看短视频发布后抖音一般会进行的一系列推荐流程 第0步: 双重审核 在抖音,每天有数量庞大的新作品上传,纯靠机器审核容易被钻空子,纯靠人工审核又不太现实。因此,双重审核成为抖音算法筛选视频内容的第一道门槛。 机器审核:一般是通过提前设置好的人工智能模型来识别你的视频画面和关键词,它主要有两个关键作用:其一,审核作品、文案中是否存在违规行为,如果疑似存在,就会被机器拦截,通过飘黄、标红等提示人工注意;其二,通过抽取视频中的画面、关键帧,与抖音大数据库中已存在的海量作品进行匹配消重,内容重复的作品进行低流量推荐,或者降权推荐(仅粉丝可见、仅自己可见)。 人工审核:主要集中在3块:视频标题、封面截图和视频关键帧。针对机器审核筛选出疑似违规作品,以及容易出现违规领域的作品,抖音审核人员进行逐个细致审核。如果确定违规,将根据违规账号进行删除视频、降权通告、封禁账号等处罚。 第一步: 冷启动 抖音的推荐算法机制是著名的信息流漏斗算法,也是今日头条的核心算法。通过审核后,第一步叫冷启动流量池曝光,比如你今天上传一个视频,通过双重审核的作品,系统将会分配给你一个初始流量池:200-300在线用户

从 LeetCode_28_strStr() 到 KMP 算法

怎甘沉沦 提交于 2020-01-19 01:01:07
这些天一直在回顾 LeetCode 上刷过的题,当看到第 28 题实现 strStr() 时,我发现虽然它是简单题,可以使用 Java 的 indesOf() 和暴力遍历轻松的解答,但是更好也更为符合实际的应该是用 KMP 算法 。关于什么是 KMP 算法,大家可以自己去 google,或者参考 严蔚敏 老师的《数据结构》。 这里我要分享的只是简单的实现以及其它大佬的解题思路(因为我现在对 KMP 算法理解的也不够深入)。 KMP 算法的大体思路可以参考 KMP 字符串匹配算法 个人认为视频讲解比画图讲解会好一点,毕竟视频是动态的。 KMP 算法中的重难点是 next 数组的生成以及具体实现中模式串匹配。具体可以参考一下文章。珠玉在前,我就不分享自己还不够清晰完整的思路了。等我有了更为深入的理解后会来补充这一部分。 从头到尾理解 KMP 深入了解 KMP 算法中的 next 数组 以下是我关于 LeetCode 上的第 28 道题来具体实现 KMP 算法代码 public int strStr(String haystack, String needle) { if(needle == null || needle.length() == 0) { return 0; } int[] next = new int[needle.length()]; // 得到 next 数组

苹果企业签名—ios签名的算法形式

家住魔仙堡 提交于 2020-01-19 00:22:59
数字签名的作用是,通过在某个数据上做上标记,表示承认(签字)了这个数据,并发送给了其他人。 其他人可能知道这个数据已经被我认证了,数据没有被篡改。 我们需要首先用一种算法,算出原始数据的摘要,满足:(1)假如原始数据没有任何变化,那么计算出来的摘要值就都会变化。(2)摘要要短,这里最常用的算法就是MD5. 会生成一份非对称加密的公钥和私钥,私钥自己拿着,公钥公布出去。给一份数据算出摘要,给这个摘要用私钥加密,得到一份加密的数据,被称为原始数据,将他和原始数据一块发送给用户。 用户收到数据和签名以后,使用公钥解密得到摘要,用户用同样的算法计算原始数据到的摘要,对比计算出来的摘要和公钥解密签名得到的摘要是否相等,如果相等则表示这份数据中途没有被篡改过,如果篡改过的话,摘要会变化最简单的苹果签名。 实现这一要求的最简单和最直接的方法是苹果官员生成一对公钥和私钥。iOS内置一个公钥,私钥由苹果公司保存在后台。当我们的APP上传到App Store时,苹果后台用私钥对APP数据进行签名,ios系统下载这个APP以后,用公钥验证这个签名,加入签名正确,这个APP肯定就是由苹果后台认证的,并且也没有被修改过,同时也达到了苹果的需求,保证安装的每一个APP都是经过苹果官方允许的。 来源: CSDN 作者: iosiPhoneios 链接: https://blog.csdn.net

bm算法

非 Y 不嫁゛ 提交于 2020-01-18 19:16:25
https://blog.csdn.net/qq_29423387/article/details/86531392 来源: CSDN 作者: #math.h 链接: https://blog.csdn.net/gem12581/article/details/104030825

并不优雅的背包算法

白昼怎懂夜的黑 提交于 2020-01-18 15:41:40
问题描述:有若干物品,物品的质量和体积已知。有一个容积固定的背包,怎样在背包中装入质量尽可能大的物品 代码如下,注释应该足够详细,只是代码风格不太优雅(捂脸) #include<iostream> #include<vector> using namespace std; //用来定义物品,需要提供质量和体积 class BagObj { public: bool isSelected = false;//物品是否被选中 int quality = 0;//质量 int volume = 0;//体积 //传入体积和质量 BagObj(int fromVol, int fromQua); }; BagObj::BagObj(int fromVol, int fromQua) { quality = fromQua; volume = fromVol; } class BagHandle { private: int objNum = 0;//物品的总数 int bagVol = 0;//背包的体积 vector<BagObj> objList;//物品的属性列表 int bagProblemDealCore(int restVol,//剩余的背包体积 vector<BagObj>::iterator fromIter//物品开始迭代的位置 ); public: /

网站降权了怎么办?如何快速恢复

别来无恙 提交于 2020-01-18 11:36:30
流量,排名是一个网站的命脉,网站降权了怎么办,如何快速恢复,盲目的操作可能导致雪上加霜。今天这篇文章,充分的带你了解网站降权恢复的必要知识,少做无用功,快速解决问题。 一、站点是否是真的降权了 这些年大家看权重越来越依赖于站长工具了,有时候工具显示排名异常了,不少人就认为自己的网站降权了,事实真的如此吗?在已经过去的2019年12月3日-12月9日之间,无论是5118还是爱站等工具均显示海量的网站出现断崖式的下跌,权重越高,跌幅越大,事实呢?绝大多数的网站流量都没有出现异常,这样还算是降权吗? 网站降权了怎么办?如何快速恢复 站长 网站优化 网站 经验心得 第1张 我们可以理解为,百度的某些机制,导致我们常用的站长工具,出现了排名识别困难等问题,所以只要流量没有出现异常,这几天呈现降权结果的网站,可以不需要理会,建议多看看其他站是否一样出现了类似的情况。 注:部分站在这2天确实出现了真实的降权,但是比例并不高! 二、降权可能只是一两天 这些年处理过很多网站的SEO问题,有时候一些站点刚刚降权了就来问我怎么办,我说你再等一两天,不要急着做任何操作,2天后无法恢复排名,再做对应的调整。 为什么这样讲,因为很多站点真的是降权一两天,排名就忽然的变回去了,如果在这之前就开始了想当然的调整,网站是否能回去,就是个未知数了。 如果网站正在降权,你调整后几天也不会恢复,需要重新识别和观察期,所以

算法第3章上机实践报告

江枫思渺然 提交于 2020-01-18 11:31:08
一、实践题目   编辑距离问题 二、问题描述   设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。   字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。   将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。 对于给定的字符串A和字符串B,计算其编辑距离 d(A,B)。    输入格式: 第一行是字符串A,文件的第二行是字符串B。    输出格式: 输出编辑距离d(A,B)。 三、算法描述   本题可以通过填表的方式解决。解题的思路是:建立一个二维数组,将字符串A作为行的表头,字符串B作为列的表头。表格初始化如下:   填表的方法为从左到右从上到下,表格中的数字代表从行到列所需要变换的最少次数。确定一个表格内容主要比较三种变换方法。    (1)删除:dist[i][j-1]+1       (2)增加:dist[i-1][j]+1    (3)替换:首先判断字符串A的第i-1个,与字符串B的j-1个是否相同,如果相同,则dist[i-1][j-1]不变,否则dist[i-1][j-1]=dist[i-1][j-1]+1 四、算法时间及空间复杂度分析   按照算法分析,本题实际上是对一个二维数组进行遍历,因此时间复杂度为O(m x n),空间复杂度为O(m x n)。 五、心得体会

数据结构与算法基础

南楼画角 提交于 2020-01-18 08:41:57
数据结构简介: 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。实现应用程序是“逻辑结构”,存储的是“物理结构”。逻辑结构主要是对该结构操作的设定,物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、希哈结构)等。 数据 :所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。 数据元素 :数据(集合)中的一个“个体”,数据及结构中讨论的基本单位 数据项 :数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。 数据类型 :在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等等
 数据结构示意图 数据的逻辑结构:数据之间的相互关系。 在数据结构中,从逻辑上可以将其分为线性结构和非线性结构 集合: 结构中的数据元素除了同属于一种类型外,别无其它关系。 线性结构: 数据元素之间一对一的关系 树形结构: 数据元素之间一对多的关系 图状结构或网状结构: 结构中的数据元素之间存在多对多的关系 数据的物理结构/存储结构:数据在计算机中的表示。 物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、哈希结构)等 顺序存储结构 :是把数据元素存放在地址连续的存储单元里