本文主要回顾下几个常用算法的适应场景及其优缺点! 机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在深度学习很火热 ...
分类:
编程语言 时间:
2019-08-08 11:44:01
阅读次数:
129
浅析 : 一个IPV4字符由3个大于0小于255的数字 以及 3个点构成, 所有我们需要判断小数点数量是否满足条件, 以及小数点隔开的每部分是否满足条件即可. 思路: 1. 校验是否有3个小数点; 2. 以小数点将字符分割为4部分,校验每部分的字符; 3. 校验该部分转为int值之后(n), 满足0 ...
分类:
移动开发 时间:
2019-07-17 20:36:18
阅读次数:
177
1.冒泡排序(o(n2)) 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。 冒泡排序过程分析:把最大的放到最后 有哨兵和没有哨兵的运行结果分析,并不是每次有哨兵的都小于没有哨兵的,相反有哨兵 ...
分类:
编程语言 时间:
2019-07-01 14:07:40
阅读次数:
93
选择排序,复杂度O(n²) 冒泡排序 复杂度 O(nlogn) 二分法查询-非迭代 ...
分类:
编程语言 时间:
2019-06-06 19:01:26
阅读次数:
107
● 分层抽样的适用范围 参考回答: 分层抽样利用事先掌握的信息,充分考虑了保持样本结构和总体结构的一致性,当总体由差异明显的几部分组成的时候,适合用分层抽样。 ● LR的损失函数 参考回答: M为样本个数,为模型对样本i的预测结果,为样本i的真实标签。 ● LR和线性回归的区别 参考回答: 线性回归 ...
分类:
编程语言 时间:
2019-06-03 21:45:15
阅读次数:
198
交叉熵公式 参考回答: 交叉熵:设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵是: 在一定程度上,相对熵可以度量两个随机变量的“距离”,且有D(p||q) ≠D(q||p)。另外,值得一提的是,D(p||q)是必然大于等于0的。 互信息:两个随机变量X,Y的互信息定义为X,Y的联合分 ...
分类:
编程语言 时间:
2019-06-03 21:41:01
阅读次数:
422
● 什么是DBSCAN 参考回答: DBSCAN是一种基于密度的空间聚类算法,它不需要定义簇的个数,而是将具有足够高密度的区域划分为簇,并在有噪声的数据中发现任意形状的簇,在此算法中将簇定义为密度相连的点的最大集合。 ● k-means算法流程 参考回答: 从数据集中随机选择k个聚类样本作为初始的聚 ...
分类:
编程语言 时间:
2019-06-03 21:40:20
阅读次数:
173
● 请你说一说推荐算法,fm,lr,embedding 参考回答: 推荐算法: 基于人口学的推荐、基于内容的推荐、基于用户的协同过滤推荐、基于项目的协同过滤推荐、基于模型的协同过滤推荐、基于关联规则的推荐 FM: LR: 逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层逻辑函数g(z), ...
分类:
编程语言 时间:
2019-06-03 21:35:37
阅读次数:
520
按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n^2),立方阶O(n^3),...,k次方阶O(n^k),指数阶O(2^n)。随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。时间复杂度:基本 ...
分类:
编程语言 时间:
2019-05-30 17:45:44
阅读次数:
115
#include #include #include using namespace std; // transform 将一个容器的元素 搬运 到另一个容器中 struct MyPlus { int operator()(int val) { return val + 100; } }; void... ...
分类:
编程语言 时间:
2019-05-28 21:12:17
阅读次数:
139