首页
学习
活动
专区
工具
TVP
发布

自学笔记

自己学习人工智能的一些笔记
专栏作者
79
文章
55246
阅读量
17
订阅数
Data Structure堆Tree并查集图论
堆这种数据结构的应用很广泛,比较常用的就是优先队列。普通的队列就是先进先出,后进后出。优先队列就不太一样,出队顺序和入队顺序没有关系,只和这个队列的优先级相关,比如去医院看病,你来的早不一定是先看你,因为病情严重的病人可能需要优先接受治疗,这就和时间顺序没有必然联系。优先队列最频繁的应用就是操作系统,操作系统的执行是划分成一个一个的时间片的,每一次在时间片里面的执行的任务是选择优先级最高的队列,如果一开始这个优先级是固定的可能就很好选,但是在操作系统里面这个优先级是动态变化的,随着执行变化的,所以每一次如果要变化,就可以使用优先队列来维护,每一次进或者出都动态着在优先队列里面变化。在游戏中也有使用到,比如攻击对象,也是一个优先队列。所以优先队列比较适合处理一些动态变化的问题,当然对于静态的问题也可以求解,比如求解1000个数字的前100位出来,最简单的方法就是排序了,,但是这样多此一举,直接构造一个优先队列,然后出的时候出一百次最大的元素即可。这个时候算法的复杂度就是
西红柿炒鸡蛋
2018-11-07
3770
Sort Algorithm
生成随机的n个数量的数组,输出数组每一个元素的内容。测试排序算法使用的标准就是运行时间和排序的正确性,所以需要一个验证正确性和计算排序时间的:
西红柿炒鸡蛋
2018-10-11
1K0
Recommended System
推荐系统的核心问题就在于为用户推荐与其兴趣相似度比较高的商品。比如在微博上,用户至上想打发时间,并不是想准确的查看某条信息,在首页中查看每一条微博,为了帮助他筛选出一批他们可能感兴趣的信息,此时就需要分析出该用户的兴趣,从海量信息中选择出与用户兴趣相似的信息,并将这些信息推荐给用户。推荐系统就是这样,根据用户的历史和社交情况推荐与其喜好相符的商品或信息。 这时候就需要一个相似度函数
西红柿炒鸡蛋
2018-10-10
5650
Label Propagation
Label propagation是基于标传播的一种社区划分算法。Label Propagation Algorithm简称LPA算法,也可以是说是一种划分小团体的算法。这种社区划分的方法有很多,LPA只是一种最简单的一种。比如,以微博为例,用户在微博上可以关注感兴趣的人,同样也会被其他人关注,这样用户和用户之间就存在了关系,使用LPA就可以对用户进行聚类操作,相同兴趣点的用户可以聚类在一起,划分一起之后就可以统一进行推荐了,这样就可以用LPA。
西红柿炒鸡蛋
2018-10-10
1.6K0
Optimization of Machine Learning
机器学习就是需要找到模型的鞍点,也就是最优点。因为模型很多时候并不是完全的凸函数,所以如果没有好的优化方法可能会跑不到极值点,或者是局部极值,甚至是偏离。所以选择一个良好的优化方法是至关重要的。首先是比较常规的优化方法:梯度下降。以下介绍的这些算法都不是用于当个算法,可以试用于能可微的所有算法。
西红柿炒鸡蛋
2018-10-10
4330
python基本常识
tuple,str都可以看做是一种list,都可以进行切片操作。 利用切片操作,去掉一个字符串的前后空格。要注意是是前后空格是不止一个的,可能有很多个。
西红柿炒鸡蛋
2018-09-11
1K0
linear regression and logistic regression
通过工资和年龄预测额度,这样就可以做拟合来预测了。有两个特征,那么就要求有两个参数了,设置
西红柿炒鸡蛋
2018-09-11
6730
聚类算法
p=2时就说平时计算的几何距离,当p趋向于正无穷的时候,其实求的就不是x,y的距离了,而是求x y中最长的一个了。因为如果x大于y,在指数增长下x回远大于y,所以y会被忽略的。这也是比较常用的了。
西红柿炒鸡蛋
2018-09-11
1.9K0
The Optimization of the Adaboost and Gradient Boosted Decision Tree
再回到我们上篇文章讲到的Adaboost算法,我们要从Adaboost算法推导出GBDT。首先回顾一下上篇文章的Adaboost,主要思想就是把弱分类器集中起来得到一个强的分类器。首先第一次建造树的时候每一个样本的权值都是一样的,之后的每一次训练只要有错误,那么这个错误就会被放大,而正确的权值就会被缩小,之后会得到每一个模型的α,根据每一个树的α把结果结合起来就得到需要的结果。
西红柿炒鸡蛋
2018-09-11
3420
支持向量机(Support Vector Machine)支持向量机
linear regression , perceptron learning algorithm , logistics regression都是分类器,我们可以使用这些分类器做线性和非线性的分类,比如下面的一个问题:
西红柿炒鸡蛋
2018-09-07
2.3K0
Decision Tree
回顾上一篇文章讲到的聚合模型,三个臭皮匠顶一个诸葛亮。于是出现了blending,bagging,boost,stacking。blending有uniform和non-uniform,stacking是属于条件类的,而boost里面的Adaboost是边学习边做linear,bagging也是属于边学习边做uniform的。Decision Tree就是属于边做学习然后按照条件分的一种。如下图,aggregation model就是是补全了:
西红柿炒鸡蛋
2018-09-07
5830
机器学习可行性与VC dimension
在银行评估贷款申请人的授信请求前,会进行风险评估。符合申请则通过,反之驳回。长时间的数据和申请使得银行从中找到了一些规律并开始learning,所以风险评估就是一个learning的过程,流程图如下:
西红柿炒鸡蛋
2018-09-07
9260
Neural Network
重新回顾一下一开始学的PLA,preceptron learning Algorithm。PLA适用于二维及高维的线性可分的情况,如果是非线性可分的数据,如果使用PLA可能会无限循环。问题的答案只有同意或不同意:
西红柿炒鸡蛋
2018-09-07
7680
Softmax ClassifierSoftmax Classifier
softmax分类器和logistics regression有点像,softmax其实就是从logistics发张过来的。由于是多分类了,需要走更多的概率来表示每一个分类。softmax的公式:
西红柿炒鸡蛋
2018-09-07
4560
Random Forest
随机森林还是没有脱离聚合模型这块,之前学过两个aggregation model,bagging和decision tree,一个是边learning边uniform。首先是boostrap方式得到数据D1,之后训练做平均;另一个也是边learning但是做的是condition,直接用数据D做conditional切分。
西红柿炒鸡蛋
2018-09-07
8460
Factorization MachineFactorization Machine---因子分解机
logistics regression algorithm model中使用的是特征的线性组合,最终得到的分割平面属于线性模型,但是线性模型就只能处理线性问题,所以对于非线性的问题就有点难处理了,对于这些复杂问题一般是两种解决方法①对数据本身进行处理,比如进行特征转换,和函数高维扩展等等。②对算法模型本身进行扩展,比如对linear regression加上正则化惩罚项进行改进得到lasso regression或者是ridge regression。 Factorization Machine就是一种对logistics regression的一种改进,线性的部分权值组合是不变的,在后面增加了非线性的交叉项。 target function:
西红柿炒鸡蛋
2018-09-07
1.8K0
Sort Algorithm排序算法
第一次迭代,寻找0到6个下标的数字哪个是最小的,找到最小的就和第一个交换,也就是2。第一次遍历所有
西红柿炒鸡蛋
2018-09-07
1.1K0
Aggregation Model : Blending , Bagging , Boosting
比如现在有一支股票,你不知道是跌还是涨。你有T个friends,每一个friend对应的建议分别是g1,g2,g3...gn,那么你应该怎么选择建议?
西红柿炒鸡蛋
2018-09-07
5660
EM Algorithm
EM算法和之前学的都不太一样,EM算法更多的是一种思想,所以后面用几个例子讲解,同时也会重点讲解GMM高斯混合模型。
西红柿炒鸡蛋
2018-09-07
1.1K0
Radial Basis Function Network
使用高斯核函数方式把数据维度扩展到无限维度进而得到一条粗壮的分界线。仔细看一下这个分割函数,其实就是一些Gaussian函数的线性组合,y就是增长的方向。 Gaussian函数还有另外一个叫法——径向基函数,这是因为这个base function的结果只和计算这个x和中心点xn的距离有关,与其他的无关。 从其他方面来看SVM,先构造一个函数: g(x) = y_nexp(-γ|x - x_n|^2)指数求出来的其实就是x点和中心点的相似度,相似度越高,那么=晚y这个方向投票的票数就会越多。不同的g(x)有不同的权重,他们的线性组合就成了SVM,g(x)函数称为是radial function。所以Gaussian SVM就是把一些radial function联合起来做linear aggregation。
西红柿炒鸡蛋
2018-09-07
7150
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档