数据科学与人工智能(软件联盟教材集合)
文章平均质量分 86
山科大软件联盟负责人之一的我,为学弟学妹带课时的学习资料综合,包括代码,演讲的内容,目前只收录17级学弟学妹的内容,第一期,第一部分为:机器学习基础,第二部分为:网络爬虫;第二期:深度学习基础.内容与其他专栏有重复
Font Tian
某公司山东分公司研发中心主管。目前主要工作为ABC融合,主要业余目标为发论文,玩开源。
展开
-
auto-sklearn简介
auto-sklearn是什么?auto-sklearn是一个自动化机器学习的工具包,其基于sklearn编写. >>> import autosklearn.classification >>> cls = autosklearn.classification.AutoSklearnClassifier() >>> cls.fit(X_train, y_train)翻译 2017-12-12 19:47:05 · 7135 阅读 · 0 评论 -
快速认识网络爬虫与Scrapy网络爬虫框架
本课程为之后Scrapy课程的预先课程,非常简单,主要是为了完全没有基础的小白准备的,如果你已经有了一定的了解那么请跳过该部分问:什么是网络爬虫 答:就是从网上下载数据的一个程序,只不过这个程序下载的东西不是某某网站直接提供给我们的,我们直接从别人的网页上拿来的. 问:为什么是我们自己拿?这两者到底有什么区别 答:我们浏览网站是通过某个网址从别人的服务器获取一个网页,但是这个网页我们是不原创 2018-02-04 22:17:59 · 779 阅读 · 0 评论 -
Scrapy八小时快速入门第一小时:安装,创建与执行我们的Scrapy爬虫
安装安装Scrapy非常简单,只需要在终端输入pip install scrapy,然后执行命令即可,如果不行,那么一般是底层库的问题,可以使用codna install --upgrade scrapy代替之前的命令,虽然anconda的库更新要慢一些,不过一般没什么问题创建项目请在命令行下scrapy startproject name即可,示例如下,当我们使用命令之后,scr原创 2018-02-07 18:38:00 · 1655 阅读 · 0 评论 -
BeautifulSoup([your markup]) to this: BeautifulSoup([your markup], "lxml") 解决未设置默认解析器的错误
在看时,敲了一些代码,其中报了一个错误为 BeautifulSoup([your markup]) to this: BeautifulSoup([your markup], “lxml”)` html = urlopen(“http://en.wikipedia.org“+articleUrl) bsObj = BeautifulSoup(html)`将代码中的 bsObj原创 2017-04-22 13:19:05 · 2931 阅读 · 0 评论 -
urllib2.HTTPError: HTTP Error 403: Forbidden的解决方案
在使用python爬取网络爬虫时,经常会以为目标网站因为禁止爬取网络爬虫而出现403 Forbidden的错误问:为什么会出现403 Forbidden的错误 答:出现urllib2.HTTPError: HTTP Error 403: Forbidden错误的原因主要是由于目标网站禁止爬虫导致的,可以在请求加上请求头信息.问:那么应该如何解决呢? 答:只要模拟正常浏览器上网即可,比如添加一个h原创 2017-04-22 13:43:58 · 9949 阅读 · 0 评论 -
Python2 Python3 爬取赶集网租房信息,带源码分析
*之前偶然看了某个腾讯公开课的视频,写的爬取赶集网的租房信息,这几天突然想起来,于是自己分析了一下赶集网的信息,然后自己写了一遍,写完又用用Python3重写了一遍.之中也遇见了少许的坑.记一下.算是一个总结.*python2 爬取赶集网租房信息与网站分析分析目标网站url寻找目标标签获取,并写入csv文件#-*- coding: utf-8 -*-from bs4 import Bea原创 2017-04-23 23:18:44 · 5119 阅读 · 8 评论 -
机器学习中的数据集划分问题
留出法(hold-out)使用 n:m and n + m =1 的形式对原数据进行分割,例如 train : test = 7 : 3 or train : test = 6.5 : 3.5 但是这种相对原始的处理方式效果并不好,缺点如下: 缺点一:浪费数据缺点二:容易过拟合,且矫正方式不方便这时,我们需要使用另外一种分割方式-交叉验证 或者 留P法(leave P out)原创 2018-01-31 17:07:55 · 8215 阅读 · 0 评论 -
auto-sklearn手册
手册本手册从几个方面说明了如何使用auto-sklearn。并且 尽可能引用的例子来解释某些配置。官网首页.官网中文翻译例子auto-sklearn 下面的例子演示几个 方面的用法,他们都位于github:Holdout交叉验证并行计算按照时序使用回归连续和分类数据使用自定义指标时间和内存限制auto-sklearn 的一个重要功能时限制内存与时间的使用。特别是对于大型数据集,算法可翻译 2017-12-12 19:44:53 · 10431 阅读 · 2 评论 -
集成算法中的Bagging
Bagging(Tree)相较于Tree增加了偏差,但是降低了方差,最终得到了优于Tree的模型,而同样的Bagging(Tree)_2进一步大幅度增加了偏差,但是同样的方差也大幅度下降,最终得到了效果优于Bagging(Tree)的最终模型。虽然在Bagging中引入的随机分割增加了偏差,但是因为多个模型的集成平均,同时也使得我们在总体上获取了更好的模型,在本篇文章中,我们称之为Bagging的特性一,在后面我们将会验证这一特性。原创 2018-01-16 14:16:10 · 19972 阅读 · 1 评论 -
hyperopt中文文档:Scipy2013
Scipy2013Font Tian translated this article on 23 December 2017SciPy2013摘要提交标题Hyperopt:用于优化机器学习算法的超参数的Python库作者詹姆斯·伯格斯特拉,丹·维明斯和戴维·C·考克斯(James Bergstra, Dan Yamins, and David D. Cox)简介James Bergstra是滑铁卢大翻译 2017-12-23 18:25:25 · 1650 阅读 · 0 评论 -
RandomForest:随机森林
随机森林:RF随机森林是一种一决策树为基学习器的Bagging算法,但是不同之处在于RF决策树的训练过程中还加入了随机属性选择(特征上的子采样)传统的决策树在选择划分的属性时,会选择最优属性RF 首先,从该节点的属性中损及选择出K个属性组成一个随机子集(类也就是Bagging中的Random Subspaces,一般通常K=log2(n))然后再从这个子集中选择一个最右子集进行划分原创 2018-01-16 14:07:02 · 6182 阅读 · 2 评论 -
AdaBoost算法特性
Boosting算法提升算法是一种常见的统计学习方法,其作用为将弱的学习算法提升为强学习算法.其理论基础为:强可学习器与弱可学习器是等价的.即在在学习中发现了’弱学习算法’,则可以通过某些方法将它特生为强可学习器,这是数学可证明的.在分类学习中提升算法通过反复修改训练数据的权值分布,构建一系列的基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强学习器.代表算法为Adaboost算法,ad原创 2017-12-18 16:55:06 · 3956 阅读 · 0 评论 -
朴素贝叶斯分类器(Navie Bayesian Classifier)中的几个要点(一)
关键字:拉普拉斯修正(Laplacian correction)懒惰学习(lazy leanring)对数似然(log-likelihood)拉普拉斯修正(Laplacian correction)朴素贝叶斯分类器的训练:基于训练集D 来估计类先验概率P(y)基于训练集D 为每个属性估计条件概率P(x|y)因此当在某个训练集中,样本的一条特征值 EV 出现概率为 0 时,则会使计算的先原创 2017-05-18 13:20:45 · 2909 阅读 · 0 评论 -
数据标准化的方法与意义
与离差标准化的不同之处在于,离差标准化仅仅仅仅对原数据的的方差与均差进行了倍数缩减,而标准差标准化则使标准化的数据方差为一。5. 数值范围减小对许多算法在纯粹的数值计算上都有一定加速作用(个人看法,虽然影响不大,但效果还是有的)通过 " /log10(max) " 值得方式,可以保证所有样本能够正确的映射到[0,1]空间,指去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或者量级的指标能够进行和加权.问题: 数据必须大于零,大于零的函数将会被映射到[-1,0]上。含义: max : 样本最大值;原创 2017-07-01 16:28:54 · 57769 阅读 · 7 评论 -
机器学习实战-数据探索(变量变换、生成)
原文链接:点击打开链接《机器学习实战-数据探索(1、变量识别;2、单变量分析;3、双变量分析)》 机器学习实战-数据探索(缺失值处理) 机器学习实战-数据探索(异常值处理) 上面三篇文章介绍了数据探索的前五步,机器学习更多内容可以关注github项目:machine learning1 变量变换1.1 什么是变量变换?在数据建模中,变换是指通过函数替换变量。 例如,通过平方/立...转载 2017-10-09 20:46:51 · 1497 阅读 · 0 评论 -
递归式特征消除:Recursive feature elimination
简述特征的选取方式一共有三种,在sklearn实现了的包裹式(wrapper)特诊选取只有两个递归式特征消除的方法,如下:recursive feature elimination ( RFE )通过学习器返回的 coef_ 属性 或者 feature_importances_ 属性来获得每个特征的重要程度。 然后,从当前的特征集合中移除最不重要的特征。在特征集合上不断的重复递归这个步骤原创 2018-01-08 16:57:31 · 35518 阅读 · 46 评论 -
通过模型进行特征选择
第一种是基于L1的特征选择,使用L1正则化的线性模型会得到稀疏解,当目标是降低维度的时候,可以使用sklearn中的给予L1正则化的线性模型,比如LinearSVC,逻辑回归,或者Lasso。使用 Lasso,alpha 的值越大,越少的特征会被选择。特征选取并不一定升:所有特征有效的情况下,去除的特征只能带来模型性能的下降,即使不是全部有效很多时候,低重要程度的特征也并不一定代表着一定会导致模型性能的下降,因为某种度量方式并不代表着该特征的最终效果,很多时候我们的度量方式,往往只是一个参考而已.原创 2018-01-15 15:17:55 · 15273 阅读 · 7 评论 -
方差过滤: Removing features with low variance
方差特征选择的原理与使用VarianceThreshold 是特征选择的一个简单基本方法,其原理在于–底方差的特征的预测效果往往不好。而VarianceThreshold会移除所有那些方差不满足一些阈值的特征。默认情况下,它将会移除所有的零方差特征,即那些在所有的样本上的取值均不变的特征。例如,假设我们有一个特征是布尔值的数据集,我们想要移除那些在整个数据集中特征值为0或者为1的比例超过8原创 2018-01-07 20:54:18 · 5371 阅读 · 2 评论 -
单变量特征选择:Univariate feature selection
sklearn中的单变量特征选择单变量的特征选择是通过基于一些单变量的统计度量方法来选择最好的特征,比如卡方检测等。Scikit-learn 将单变量特征选择的学习器作为实现了 transform方法的对象:sklearn中实现的方法有:SelectKBest 保留评分最高的 K 个特征SelectPercentile 保留最高得分百分比之几的特征对每个特征应用常见的单变量统计测原创 2018-01-07 20:56:44 · 8623 阅读 · 0 评论 -
Hyperopt中文文档:Home
主页Font Tian translated this article on 22 December 2017Hyperopt:分布式异步算法组态/超参数优化(主页,但这不是维基的主页)。加入hyperopt-announce 来获取重要更新的电子邮件通知(花费较低的流量)。文档:安装注意事项-主要是MongoDBFmin - 有关如何使用HyperOpt最小化功能的基本教程使用MongoDB翻译 2017-12-23 18:16:00 · 2683 阅读 · 0 评论 -
Hyperopt中文文档:FMin
FMinFont Tian translated this article on 22 December 2017这一页是关于 hyperopt.fmin() 的基础教程. 主要写了如何写一个可以利用fmin进行优化的函数,以及如何描述fmin的搜索空间。Hyperopt的工作是通过一组可能的参数找到标量值,possibly-stochastic function的最佳值(注意在数学中stocha翻译 2017-12-23 18:18:44 · 12335 阅读 · 8 评论 -
hyperopt中文文档:Installation-Notes安装说明
安装说明hyperopt安装说明 Font Tian translated this article on 23 December 2017有关MongoDB的部分Hyperopt要求mongodb(有时候简称“mongo”)来执行并行搜索。据我所知,hyperopt与2.xx系列中的所有版本兼容,这是目前的(在这里下载最新版本)。它甚至可能与mongodb的所有版本兼容,我不知道mongo的任何翻译 2017-12-23 18:19:48 · 2724 阅读 · 0 评论 -
数据科学-通过数据探索了解我们的特征
简介对于数据科学而言,我们要做的第一件事情,必然是了解我们的数据.而在数据探索期间,pandas和matplotlib 则是我们进行数据探索的利器.本文主要分为三个部分,第一部分是利用pandas进行一些基础的数据分析,第二部分是利用pandas自身功能进行一些有用的数据探索,最重要的是第三部分,利用pandas与matplotlib ,scikit-learn中的工具以及数据与算法本身的一些特性对原创 2017-10-10 07:41:38 · 2377 阅读 · 0 评论 -
绘制决策树
绘制出决策树经过训练的决策树,我们可以使用 export_graphviz 导出器以 Graphviz 格式导出决策树. 如果你是用 conda 来管理包,那么安装 graphviz 二进制文件和 python 包可以用以下指令安装 conda install python-graphviz 或者,可以从 graphviz 项目主页下载 graphviz 的二进制文件,并从 pypi 安装 Py原创 2017-12-17 12:04:01 · 4299 阅读 · 0 评论 -
基于贝叶斯的垃圾邮件过滤器 JAVA
<span style="font-size: 18px;">package cn.zhf.test; import java.io.*; import java.util.*; public class SpamMailDetection { public static final String BASE_PATH = "C:\\Users\\zhf\\Desktop\\mai转载 2017-07-01 22:53:50 · 4223 阅读 · 9 评论 -
机器学习常见算法汇总
原文地址:http://www.ctocio.com/hotnews/15919.html偶然看到的一篇文章,这篇文章写的很清晰,所以转载一下,补充自己的知识库,以下为正文机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。这里IT经理网为您总结一下常见的机器学习算法,以供您在工作和学习中参考。机器学习的算法很多。很多时候困惑人转载 2017-07-22 20:00:22 · 1040 阅读 · 0 评论 -
sklearn中的分类决策树
决策树决策树简介决策树是一种使用if-then-else的决策规则的监督学习方法.其三要素为,枝节点,叶节点与分支条件,同时为了减少过拟合还有剪枝方法 为了便于记忆,可以称其为一方法三要素决策树的优势便于理解和解释。树的结构可以可视化出来。训练需要的数据少。其他机器学习模型通常需要数据规范化,比如构建虚拟变量和移除缺失值,不过请注意,这种模型不支持缺失值。由于训练决策树的数据点的数量导致了决原创 2017-12-17 11:55:17 · 7969 阅读 · 4 评论 -
sklearn中的朴素贝叶斯算法
sklearn中的朴素贝叶斯分类器之前理解朴素贝叶斯中的结尾对sklearn中的朴素贝叶斯进行了简单的介绍. 此处对sklearn中的则对sklearn中的朴素贝叶斯算法进行比较详细介绍.不过手下还是对朴素贝叶斯本身进行一些补充.朴素贝叶斯算法朴素贝叶斯算法的数学基础都是围绕贝叶斯定理展开的,因此这一类算法都被称为朴素贝叶斯算法.朴素贝叶斯的分类原理是通过对象的先验概率,利用贝叶斯公式计算出后验概原创 2017-12-17 13:03:32 · 6354 阅读 · 15 评论 -
sklearn中的回归决策树
sklearn中DecisionTreeRegressor的主要参数与分类决策树差异不大.唯一不太一样的是,在回归决策树中只实现了优化的gini决策树,而无法使用基于信息熵的决策树关于超参数的介绍,我们可以直接借用在分类决策树中的介绍在sklearn中我们可以用来提高决策树泛化能力的超参数主要有max_depth:树的最大深度,也就是说当树的深度到达max_depth的时候无论还有多少可以分支的特征,决策树都会停止运算.原创 2017-12-17 14:14:12 · 17673 阅读 · 2 评论 -
理解朴素贝叶斯
前言在对我的数据科学与人工智能小组的新人进行小规模授课时讲课内容整理,有改动和删减.这可能是目前网络上最全面也最简单易懂的有关朴素贝叶斯的文章有关贝叶斯的一些闲谈无论是在生活中还是我们的科学理论中,经常会估计概率.比如,我们计算一下明天下雨的概率,或者中彩票的概率,或者其他概率.概率就是可能性. 但是在人工智能领域关于概率的问题却产生了两个不同的流派,那就是贝叶斯派和频率学派.频率学派认为万物发展原创 2017-12-08 14:41:12 · 2100 阅读 · 3 评论 -
统计学习方法第四章朴素贝叶斯法-李航
第4章 朴素贝叶斯法朴素贝叶斯 (naive Bayes) 法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出Y。4.1 朴素贝叶斯法的学习与分类基本方法朴素贝叶斯法通过训练数据集学习X和Y的联合概率分布P(X,Y)。转载 2017-04-26 23:50:38 · 2415 阅读 · 0 评论 -
朴素贝叶斯法分类器的Python3 实现
本篇文章是我在读了李航的<统计学习方法>后手写的算法实现之一 原理请参考统计学习方法第四章朴素贝叶斯法-李航代码, NaiveBayesMethod 的内部计算方式现在为数值计算, 符号计算的代码已经注释,如果需要请手动修改 朴素贝叶斯法分类器 当lam=1 时,类分类方式为为贝叶斯估计 实现了拉普拉斯平滑,以此避免出现要计算的概率为0的情况,以免计算错误的累积 具体原理请原创 2017-04-26 23:54:18 · 3642 阅读 · 0 评论 -
机器学习数据集
前言数据集算是比较重要的学习资料了吧,在这里汇总一些好用的数据集以便使用, 关于一些内容可以参考一下知乎的提问UCI常用数据集UCI 一个不错的数据集下载网站 此处介绍几个点击;想比较高的数据集,后面有下载和存储的代码以及有关问题的说明.使用方式点击官方网站,你可以看到以下内容 可以看到右边有两个排行榜,最右边的是历史点击率的排行榜,位于该榜左边的也就是网页中间的是最新捐赠原创 2017-12-08 09:26:53 · 10942 阅读 · 0 评论 -
Rosonblatt线性感知器
前叙读前简介机器学习的流派很多,现在比较流行的便是联结学派,其计算的重点在于权重更新,而其它学派比如贝叶斯学派,基于统计学,进化学派则注重结构学习.本篇博客以线性感知器为基础,将会对神经网络与一些机器学习算法进行介绍,如果你只想简单的了解,那么可以浏览一遍即可,当然你也可以花费些时间读这篇文章,那么你也可以受益许多.神经网络与联结学派神经网络就是联结学派的”原创 2017-11-17 12:02:18 · 885 阅读 · 0 评论 -
Pandas matplotlib 无法显示中文 Ubuntu16.04
版本Ubuntu16.04 python3.6.2具体步骤运行代码#!usr/bin/env python#-*- coding:utf-8 _*-"""@author:fonttian@file: testCN.py@time: 2017/09/26"""from matplotlib.font_manager import FontManagerimport subproce原创 2017-09-26 21:52:42 · 1358 阅读 · 0 评论 -
Python基础检测:20171105
第一周的预习结束了效果并不理想,最后的检测也是有个别同学表现还可以.最后一次检测,除了依旧不是放在一个文件里,文件也没有标注作者从而导致我没办法一一回复外,有些问题写的不好意外.基本没什么毛病,摔!答案与解析第一题,公式转换,计算误差# 1. 门前有两棵树,其中一棵是枣树,我每天早上起来都会吃掉原三分之一又一个枣,一个星期刚好吃完,请问我一共吃了几个枣? (循环)def question_1(n=7原创 2017-11-05 18:55:11 · 679 阅读 · 0 评论 -
Python中斐波那契数列的四种写法
在这些时候,我可以附和着笑,项目经理是决不责备的。而且项目经理见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向新人说话。有一回对我说道,“你学过数据结构吗?”我略略点一点头。他说,“学过数据结构,……我便考你一考。斐波那契数列用Python怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做项目经理的时候,写账要用。”我暗想我和项目经理的等级还很远呢,而且我们项目里也用不到斐波那契数原创 2017-11-02 21:47:22 · 54232 阅读 · 16 评论 -
学习Python3:20171031
简介本次作业继承于上一次的交互问题(用户屏幕输入输出),额外内容为文件在硬盘上的读取与存储.是为了之后的简易版本的自然语言处理任务做铺垫.题目"""本次的问题很简单,文件读取,与,简单的人机交互,以及异常处理答题程序特殊要求,问题一共十个,问题和回答都需要存储到硬盘中(最起码保留一次),并可以计算分数.提示:open操作 + 自定义解析器,或者使用numpy,或者pandas的保存功能.交卷时间:原创 2017-11-01 17:09:55 · 813 阅读 · 0 评论 -
学习Python3:201701030
第一步首先是开发环境的搭建参考:anconda 参考:类库问题IDE:pycharm,去官网下载即可,内容前两篇也有提到学习目标与计划第一周的计划是自学python,之后周一到周五每天都有作业.第一天的作业主要是考考基本流程语句,以大一学弟学妹的水平,应该能在限时内做完,但是实现方式会比较差,我给出的答案基本是启发性的,我带的七个人都是我亲自面试的,悟性还可以,我预估的主要问题是他们能不能开窍.具原创 2017-10-31 11:00:04 · 539 阅读 · 0 评论 -
Anaconda多环境多版本python配置指导
Anaconda多环境多版本python配置指导:http://www.jianshu.com/p/d2e15200ee9b原博客是翻译的官方文档,再加上自己的部分内容,官方原文地址:http://conda.pydata.org/docs/test-drive.htmlconda测试指南在开始这个conda测试之前,你应该已经下载并安装好了Anaconda或者Minic转载 2017-08-01 22:30:42 · 3742 阅读 · 2 评论