
集体智慧编程
白辰甲
哈尔滨工业大学博士,关注强化学习(Reinforcement Learning)
展开
-
集体智慧编程——K近邻分类器预测价格
KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近;K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这原创 2016-03-15 22:24:14 · 1269 阅读 · 0 评论 -
集体智慧编程——优化搜索算法:爬山法,模拟退火算法,遗传算法-Python实现
在优化问题中,有两个关键点代价函数:确定问题的形式和规模之后,根据不同的问题,选择要优化的目标。如本文涉及的两个问题中,一个优化目标是使得航班选择最优,共计12个航班,要使得总的票价最少且每个人的等待时间之和最小。第二个问题是学生选择宿舍的问题,每个学生可以实现填报志愿,如果安排的宿舍与志愿完全一致,则代价为0,与第二志愿一致,代价为1,如果没有和志愿一致,代价为3。 故,抽象问题的能力很重要,如原创 2016-03-09 23:12:02 · 11827 阅读 · 0 评论 -
集体智慧编程——神经网络预测点击率-Python实现
本例中用神经网络来实现对搜索关键字点击的预测,在搜索引擎中,用户输入关键字后,引擎会给出搜索结果列表,而后用户会点击其中一个网页。在用户不断的点击行为中,神经网络会不断学习,给用户提供更好的推荐和结果排序。本文的代码实现一个多层感知机网络,第一层接受输入,第二层是隐含层,第三次是输出层。应用反向传播算法(BP)对神经网络进行训练。关于神经网络具体的原理此处不赘述,请参看权威书籍或博客。# -*- c原创 2016-03-07 21:45:52 · 2984 阅读 · 0 评论 -
集体智慧编程——搜索与排名-Python实现
学习构建一个简易的搜索引擎,步骤如下:网页抓取:从一个或一组特定的网页开始,根据网页内部链接逐步追踪到其他网页。这样递归进行爬取,直到到达一定深度或达到一定数量为止。建立索引:建立数据表,包含文档中所有单词的位置信息,文档本身不一定要保存到数据库中,索引信息只需简单的保存到一个指向文档所在位置的引用即可。查询和排名:根据合适的网页排序方法,返回一个经过排序的页面列表。网页爬取过程: 首先输原创 2016-03-07 21:33:07 · 2407 阅读 · 0 评论 -
集体智慧编程——博客文章聚类-Python实现
本章中实现了层次聚类算法和K均值算法,用于博客的聚类。使用的特征为词向量。即特定词在博客文章中出现的次数。读入数据 数据中行的第一个词代表博客名,列的第一个词代表单词特征。存储的数字代表该词在该博客中出现的次数。读入该句子,用Python的list存储。【【】,【】,【】….】用两层链表结构来模拟矩阵。层次聚类算法 首先定义向量之间的相似度度量方法是皮尔森相关系数。该相关系数比欧氏距离更适合原创 2016-03-06 18:30:00 · 3143 阅读 · 0 评论 -
集体智慧编程——协同过滤推荐算法-Python实现
本系列文章为集体智慧编程读书笔记,本人将自己读书的心得体会和根据书中内容编写的代码放在博客中,供大家参考。代码中根据个人体会写了较为详细的中文注释,仅供大家参考。代码本人都运行过,如有问题欢迎交流。首先介绍几个知识点:相似性度量方法 1.欧几里得距离:该距离只有当两者特征向量中每个特征都较小时,特征向量间距离才比较小。 2.皮尔森相关系数:该系数度量两个特征向量之间的线性相关性,二者线性相关原创 2016-03-05 20:53:38 · 2373 阅读 · 1 评论 -
集体智慧编程——垃圾邮件过滤器(贝叶斯)-Python实现
介绍垃圾邮件分类器的设计与实现,分为一下几个步骤:特征提取: 将训练样本的正文切分为特征,如果是英文,直接按照空格切分,每个词可以作为一个特征;如果是中文,则需要借助分词器,如jieba分词器等。切分后,将词和所属类别建立一个字典存储。字典的结构是: {word1:{class1:count1, class2:count2}, word2:{class1:count1, class2:coun原创 2016-03-14 15:10:32 · 8000 阅读 · 2 评论 -
集体智慧编程——使用决策树发现潜在客户
用决策树建模预测谁是潜在的客户,这里将客户分为两种类型,根据训练数据中的判定条件,构建决策树,构建决策树分为以下几个步骤:决策树的节点结构 class decisionnode 中包含了5个数据项,分别是col: 代表该节点用训练数据的哪一列作为判断条件value: 以cols条件的value值作为切分节点,value若为数值型属性,则按照大于小于value进行切分;若Wie标称属性,则按照等原创 2016-03-14 16:50:31 · 1490 阅读 · 0 评论