算法

无监督机器学习 K-Means算法python测试

微笑、不失礼 提交于 2019-12-28 18:54:34
无监督机器学习 K-Means算法python测试 最近在自学吴恩达老师的机器学习视频,学到无监督机器学习K-means算法,自己用python写一些代码加深对此算法的理解 最近在自学吴恩达老师的机器学习视频,学到无监督机器学习K-means算法,自己用python写一些代码加深对此算法的理解 import numpy as np import matplotlib . pyplot as plt #生成随机的的点坐标 array = np . random . randn ( 2 , 100 ) x = array [ 0 ] y = array [ 1 ] #初始化3个聚类质点 3类 x0 = np . random . randn ( ) y0 = np . random . randn ( ) x1 = np . random . randn ( ) y1 = np . random . randn ( ) x2 = np . random . randn ( ) y2 = np . random . randn ( ) while True : #用于存放每次标记后的点坐标 class0x = [ ] class0y = [ ] class1x = [ ] class1y = [ ] class2x = [ ] class2y = [ ] #用于记录3个聚类质点的数据

百度面试两板斧:手写算法问基础

China☆狼群 提交于 2019-12-28 13:06:04
阅读本文大概需要 4 分钟。 作者:黄小斜 17年7月份,我参加了百度的实习生面试,随后在百度开始了半年的实习生活,18年7月份,我参加了百度的校招提前批面试,由于可以同时参加百度多个部门的提前批面试,结果我前前后后面试了10多次,也算是一段比较奇葩的经历了。 当然,实习生面试是这里面最简单的一次了,三轮面试,前两轮都是在问基础,问的也不深入,第三轮面试则直接谈人生谈理想。其实百度的日常实习生面试难度确实比校招要来的容易,因为百度一年四季都在招实习生,反观阿里和腾讯,只有在春招期间招收实习生。 既然上面的面试难度不太具有代表性,那么我还是来说说秋招的百度面试经历吧。 大家都知道,阿里内部用Java居多,腾讯内部用C++居多,而百度内部的语言则是五花八门,Java、C++、Python、PHP,都有一定数量的人在用,所以百度的面试题也会比较杂,什么都有可能考,但亦不会考的特别难。 手写算法是百度秋招必考的一个环节,我那时候都是电话面试,所以直接是用在线写代码的网站来做题的(面试官可以实时看到你的代码情况)手写算法一般是压轴环节,也就是面试官问完基础题,就会开始让你写算法题。 题目的难度也不尽相同,有的面试官让我写过二叉树相关的简单题,也有面试官让我写DFS、BFS的题目,当然,多数题目还是剑指offer上的题目,以及基础题:字符串问题、快排、二分查找、二分查找变式等。 值得一提的是

计算机网络各种协议总结

。_饼干妹妹 提交于 2019-12-28 12:14:15
目录 1. 物理层(比特流) 2. 数据链路层(帧) 3. 网络层(IP数据报或称分组、包) 4. 传输层(TCP报文段、UDP用户数据报) 5. 应用层 6. 无线网络 1. 物理层(比特流) 2. 数据链路层(帧) PPP(点对点协议):面向连接,不可靠,只支持全双工链路,成帧技术,PPP帧是面向字节的,所有的PPP帧的长度都是整数字节的。只检错不纠错,没有流量控制。 CSMA/CD(载波监听多点接入/碰撞检测协议):截断二进制指数退避算法指数退避算法 网桥的自学习算法 3. 网络层(IP数据报或称分组、包) IP协议:无连接、不可靠、尽力而为型 ARP(地址解析协议):IP地址→物理地址(MAC地址) RARP(逆地址解析协议):物理地址(MAC地址)→IP地址 分组转发算法:直接交付、间接交付 ICMP(网际控制报文协议):ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文封装在IP包中。(ICMP报文是IP层数据报的数据) 路由选择协议: 内部网关协议IGP: RIP,OSPF 外部网关协议EGP: BGP RIP(路由信息协议):基于距离向量的路由选择算法。 RIP用UDP用户数据报传送。 适合于规模较小的网络,最大跳数不超过15。 缺点:“好消息传播得快,而坏消息传播得慢”。 OSPF(开放最短路径优先):基于链路状态协议LS OSPF 直接用

YOLACT++ 实时实例分割算法

纵饮孤独 提交于 2019-12-28 05:41:52
YOLACT提出的实时实例分割算法最近被作者扩展为YOLACT++:更好的实时实例分割。它的resnet50模型运行在Titan Xp上。速度达到33.5fps,在COCO的test dev数据集上达到34.1map,而且代码是开源的。作者提出了一个简单的,全卷积的实时(> 30 fps)实例分割模型,该模型在单个Titan Xp上评估的MS COCO上取得了非常有竞争性结果,其速度明显快于任何现有技术方法。 论文地址: https://arxiv.org/pdf/1912.06218.pdf 开源地址: https://github.com/dbolya/yolact YOLACT网络架构: YOLACT体系结构蓝色/黄色表示原型中的低/高值,灰色节点表示未经训练的功能,在此示例中,k = 4。 我们使用ResNet-101 + FPN在RetinaNet [25]基础上建立了该架构。 来源: CSDN 作者: 处女座, 链接: https://blog.csdn.net/weixin_40639095/article/details/103730425

推荐系统与知识图谱(1)

旧巷老猫 提交于 2019-12-28 05:02:16
Reference: 推荐算法不够精准?让知识图谱来解决 个性化推荐系统作为一种信息过滤的重要手段,是当前解决信息超载问题的最有效的方法之一,是面向用户的互联网产品的核心技术。 推荐系统的任务和难点 按照预测对象的不同,推荐系统一般可以分成两类:一类是 评分预测 (rating prediction),例如在电影类应用中,系统需要预测用户对电影的评分,并以此为根据推送其可能喜欢的电影。这种场景下的用户反馈信息表达了用户的喜好程度,因此这种信息也叫 显式反馈 (explicit feedback);另一类是 点击率预测 (click-through rateprediction),例如在新闻类应用中,系统需要预测用户点击某新闻的概率来优化推荐方案。这种场景下的用户反馈信息只能表达用户的行为特征(点击/未点击),而不能反映用户的喜爱程度,因此这种信息也叫 隐式反馈 (implicit feedback)。 传统的推荐系统只使用用户和物品的历史交互信息(显式或隐式反馈)作为输入,这会带来两个问题:一,在实际场景中, 用户和物品的交互信息往往是非常稀疏(sparse) 的。例如,一个电影类APP可能包含了上万部电影,然而一个用户打过分的电影可能平均只有几十部。使用如此少量的已观测数据来预测大量的未知信息,会极大地增加算法的 过拟合 (overfitting)风险;二,

排序算法:快速排序

♀尐吖头ヾ 提交于 2019-12-28 04:11:35
快速排序(Quicksort)是对冒泡排序的一种改进。 在实际中最常用的一种排序算法,速度快,效率高。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序采用的思想是分治思想。 算法介绍: 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给x,即x=rands[0]; 3)从j开始向前搜索,即由后开始向前搜索(j–),找到第一个小于x的值rands[j],将rands[j]和rands[i]互换; 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于x的rands[i],将rands[i]和rands[j]互换; 5)重复第3、4步,直到i>=j; (3,4步中,没找到符合条件的值,即3中rands[j]不小于x,4中rands

负载均衡的算法

冷暖自知 提交于 2019-12-28 03:57:25
负载均衡的算法 前言 关于负载均衡,我们需要了解,而且在面试的过程中,你懂得。 对于要实现高性能集群,选择好负载均衡器很重要,同时针对不同的业务场景选择合适的负载均衡算法也是非常重要的。 一、源地址哈希算法 唯一不丢失策略的算法,但是负载均衡和源数据信息和哈希算法有很大关系。 源地址哈希法的思想是根据服务消费者请求客户端的 IP 地址,通过哈希函数计算得到一个哈希值,将此哈希值和服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号。采用源地址哈希法进行负载均衡,相同的 IP 客户端,如果服务器列表不变,将映射到同一个后台服务器进行访问。 伪代码: private static Map<String, Integer> serviceWeightMap = new HashMap<String, Integer>(); static { serviceWeightMap.put("192.168.1.100", 1); serviceWeightMap.put("192.168.1.101", 1); serviceWeightMap.put("192.168.1.102", 4); serviceWeightMap.put("192.168.1.103", 1); } public static String testConsumerHash(String

基础排序算法(1)

倖福魔咒の 提交于 2019-12-28 03:49:23
冒泡排序 1、俩俩比较,大的放在后面,第一次排序后最大值已在数组末尾。 2、因为需要俩俩比较,需要n-1趟排序,比如10个数,需要9趟排序 3、两个for循环,外层循环控制排序的趟数,内层循环控制比较的次数,每趟过后,比较的次数都应该要减1 4、如果一趟排序后没有发生位置交换,说明已经有序,不需要继续循环了 /** * 冒泡排序 * * @author kaifeng */ public class BubbleSort { public static void main(String[] args) { //待排序数组 int[] arrays = {1, 8, 9, 3, 5, 6}; //是否排好序,默认值-1,正在排序 int isChange = -1; //外层循环是排序的趟数 for (int i = 0; i < arrays.length - 1; i++) { //每比较一趟就重新初始化为0 isChange = 0; //内层循环是当前趟数需要比较的次数 for (int j = 0; j < arrays.length - i - 1; j++) { int temp = 0; //前一位与后一位、比较,如果前一位比后一位要大,那么交换 if (arrays[j] > arrays[j + 1]) { temp = arrays[j]; arrays[j]

半监督学习简介与综述 —— For 2020

我与影子孤独终老i 提交于 2019-12-28 01:29:30
半监督学习提出的背景 数据是机器学习的基础。巧妇难为无米之炊,再牛x的机器学习算法,脱离了数据就是空中楼阁。 根据使用的数据样本是否具有标签,可大致将传统的机器学习方法分为 监督学习方法和无监督学习方法 。 其中,无监督学习方法使用的训练样本没有标签;监督学习方法使用的训练样本带有明确的标签。 监督学习: 训练样本集不仅包含样本,还包含这些样本对应的标签,即样本和样本标签成对出现。监督学习的目标是从训练样本中学习一个从样本到标签的有效映射,使其能够预测未知样本的标签。监督学习是机器学习中最成熟的学习方法,代表性的算法包括神经网络、支持向量机(SVM)等。 无监督学习: 只能利用训练样本的数据分布或样本间的关系将样本划分到不同的聚类簇或给出样本对应的低维结构。因此,无监督学习常被用于对样本进行 聚类或降维 ,典型的算法包括尺均值聚类和主成分分析等。 在许多实际问题中,有标签样本和无标签样本往往同时存在,且无标签样本较多,而有标签样本则相对较少。 虽然充足的有标签样本能够有效提升学习性能,但是获取样本标签往往是非常困难的,因为标记样本可能需要专家知识、特殊的设备以及大量的时间。相比于有标签样本,大量的无标签样本广泛存在且非常容易收集。但是,监督学习算法无法利用无标签样本,在有标签样本较少时,难以取得较强的泛化性能。虽然无监督学习算法能够使用无标签样本,但准确性较差。

算法4--斐波那契数列

核能气质少年 提交于 2019-12-27 17:59:50
#include <stdio.h> #include <conio.h> #define NUM 13 int main() { int i; long fib[NUM] = {1,1}; for(i=2; i<NUM; i++){ fib[i] = fib[i-1] + fib[i-2]; } for(i=0;i<NUM;i++){ printf("%d月兔子总数:%d\n",i,fib[i]); } getch(); return 0; } 来源: CSDN 作者: 韩淼燃 链接: https://blog.csdn.net/weixin_36691991/article/details/103732831