python机器学习

BAT机器学习面试1000题系列

本小妞迷上赌 提交于 2019-12-06 14:35:20
几点声明: 1、本文的内容全部来源于七月在线发布的BAT机器学习面试1000题系列; 2、文章中带斜体的文字代表是本人自己增加的内容,如有错误还请批评指正; 3、原文中有部分链接已经失效,故而本人重新加上了新的链接,如有不当,还请指正。(也已用斜体标出) 4、部分答案由于完全是摘抄自其它的博客,所以本人就只贴出答案链接,这样既可以节省版面,也可以使排版更加美观。点击对应的问题即可跳转。 最后,此博文的排版已经经过本人整理,公式已用latex语法表示,方便读者阅读。同时链接形式也做了优化,可直接跳转至相应页面,希望能够帮助读者提高阅读体验,文中如果因为本人的整理出现纰漏,还请指出,大家共同进步! 1.请简要介绍下SVM。 SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。 扩展: 支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

python机器学习系列教程——深度学习框架比较TensorFlow、Theano、Caffe、SciKit-learn、Keras

吃可爱长大的小学妹 提交于 2019-12-06 13:40:19
全栈工程师开发手册 (作者:栾鹏) python教程全解 Theano Theano在深度学习框架中是祖师级的存在。Theano基于Python语言开发的,是一个擅长处理多维数组的库,这一点和numpy很像。当与其他深度学习库结合起来,它十分适合数据探索。它为执行深度学习中大规模神经网络算法的运算所设计。其实,它可以被更好的理解为一个数学表达式的编辑器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,来高效运行于GPU或CPU。它与后来出现的TensorFlow功能十分相似,因而两者常常被放在一起比较。它们本身都偏底层,同样的,Theano 像是一个研究平台多过是一个深度学习库。你需要从底层开始做许多工作,来创建你需要的模型。比方说,Theano 没有神经网络的分级。但由于它不支持多 GPU 和水平扩展,在 TensorFlow 的热潮下(它们针对同一个领域),Theano 已然开始被遗忘了。 TensorFlow TensorFlow是由google开源出来的,因为有google作为后台,Tensorflow在深度学习领域一直很有名气。TensorFlow是一个采用数据流图,用于数值计算的开源软件库。它支持Python和C++两种类型的接口。TensorFlow可支持分布式计算,它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU)

零基础学习人工智能视频教程的资源下载

做~自己de王妃 提交于 2019-12-06 12:42:21
下面的每个资源都是我亲身学过的,且是网上公开公认最优质的资源。 下面的每个学习步骤也是我一步步走过来的。 希望大家以我为参考,少走弯路。 请大家不要浪费时间找非常多的资料,只看最精华的! 综述, 机器学习 的自学简单来说分为三个步骤 前期:知识储备包括数学知识,机器学习经典算法知识,编程技术(python)的掌握 中期:算法的代码实现 后期:实战水平提升 机器学习路径规划图 一、数学基础 很多人看到数学知识的时候就望而却步,数学是需要的,但是作为入门水平,对数学的要求没有那么的高。假设你上过大学的数学课(忘了也没事),需要的数学知识啃一啃还是基本能理解下来的。 1.1、数学内容 线性代数:矩阵/张量乘法、求逆,奇异值分解/特征值分解,行列式,范数等 统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)等 优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等 微积分:偏微分,链式法则,矩阵求导等 信息论、数值理论等 上面的看不太懂没事,不是特别难,学习一下就能理解了。 1.2、数学资源 网上有很多人会列举大量大量的课程资源,这是非常不负责任的事,学完那些我头发都得白了。实际上,我们只需要学习其中的一部分就够了。 1.2.1、吴恩达的斯坦福大学机器学习王牌课程CS229,课后就有对学生数学知识的要求和补充

机器学习:数据清洗和特征选择

孤街醉人 提交于 2019-12-06 07:01:23
数据清洗和特征选择 数据清洗 清洗过程 数据预处理: 选择数据处理工具:数据库、Python相应的包; 查看数据的元数据及数据特征; 清理异常样本数据: 处理格式或者内容错误的数据; 处理逻辑错误数据:数据去重,去除/替换不合理的值,去除/重构不可靠的字段值; 处理不需要的数据:在进行该过程时,要注意备份原始数据; 处理关联性验证错误的数据:常应用于多数据源合并的过程中。 采样: 数据不均衡处理:上采样、下采样、SMOTE算法 样本的权重问题 数据不平衡 在实际应用中,数据的分布往往是不均匀的,会出现"长尾现象",即绝大多数的数据在一个范围/属于一个类别,而在另外一个范围或者类别中,只有很少一部分数据。此时直接采用机器学习效果不会很好,因此需要对数据进行转换操作。 长尾效应: 解决方案01 设置损失函数的权重, 使得少数类别数据判断错误的损失大于多数类别数据判断错误的损失 ,即:当我们的少数类别数据预测错误的时候,会产生一个比较大的损失值,从而导致模型参数往让少数类别数据预测准确的方向偏。 可通过设置sklearn中的class_weight参数来设置权重。 解决方案02 下采样/欠采样(under sampling): 从多数类中随机抽取样本从而减少多数类别样本数据 ,使数据达到平衡的方式。 集成下采样/欠采样:采用普通的下采样方式会导致信息丢失

机器学习之数据预处理,Pandas读取excel数据

混江龙づ霸主 提交于 2019-12-06 02:19:55
CSV和EXCEL: excel文件和 csv 文件的区别在于前者有分页(sheet),而且用文档编辑器打开的话会发现 excel 一行之间的单元格是以英文逗号 "," 结尾,而 csv 是以制表 “\t” 结尾。注意一点的是,并不是所有得到文件其内容都很规范,比如在一个单元格里面有一大段句子含有英文逗号,就会导致生成 DataFrame 出现问题。所以在导入 Python 中进行处理的时候有必要在 excel 中预查看一下。 import pandas as pddef xlsx_to_csv_pd(): #读取excel实例 data_xls = pd.read_excel("test.xlsx",index_col=0 ) data_xls.to_csv("test.csv",encoding="utf-8") 参数举例: def read_excel(io, sheet_name=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, usecols=None, parse_dates=False, date_parser=None, na_values=None, thousands=None, convert_float=True, converters=None, dtype

国外程序员整理的机器学习资源大全

怎甘沉沦 提交于 2019-12-05 21:55:50
 英文原文: awesome-machine-learning   本文汇编了一些机器学习领域的框架、库以及软件(按编程语言排序)。    C++    计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV —它提供C++, C, Python, Java 以及 MATLAB 接口,并支持 Windows, Linux, Android and Mac OS 操作系统。    通用机器学习 MLPack DLib ecogg shark    Closure    通用机器学习 Closure Toolbox —Clojure 语言库与工具的分类目录    Go    自然语言处理 go-porterstemmer —一个 Porter 词干提取算法的原生 Go 语言净室实现 paicehusk —Paice/Husk 词干提取算法的 Go 语言实现 snowball —Go 语言版的 Snowball 词干提取器    通用机器学习 Go Learn — Go 语言机器学习库 go-pr —Go 语言机器学习包. bayesian —Go 语言朴素贝叶斯分类库。 go-galib —Go 语言遗传算法库。    数据分析/数据可视化 go-graph —Go 语言图形库。 SVGo —Go 语言的 SVG 生成库。    Java   

机器学习和数据集介绍、数据集划分、特征抽取、归一化

谁说我不能喝 提交于 2019-12-05 21:04:59
机器学习介绍和数据集介绍 机器学习:    机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为 工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。   很难明确的定义,简单的来说,机器学习就是利用数学方法和计算机技术通过对历史数据进行分析得到规律(模 型),并利用规律对未知数据进行预测。 数据集:   机器学习是从历史数据获得规律,那这些历史数据是什么样的呢? 可以获取的数据集 : scikit-learn数据量较小, 方便学习 kaggle大数据竞赛平台,80万科学家, 真实数据,数据量巨大 UCI收录了360个数据集,覆盖科学,生活,经济等领域,数据量几十万 常用的数据集结构组成 : 特征值 + 目标值 # 注意 : 有些数据集可以没有目标值 。每一行就是一个样本。 每一列就是一个特征。 最后 要预测的值 就是目标。 scikit-learn   scikit-learn是基于Python语言的机器学习工具 简单高效的数据挖掘和数据分析工具 可供大家在各种环境中重复使用 建立在Numpy , SciPy 和 matplotlib上 开源 , 可商业使用 -BSD许可证 Scikit-learn 数据集API介绍 1. sklearn.datasets 1.1 加载获取流行数据集 1.2

机器学习——支持向量机(SVM)

你离开我真会死。 提交于 2019-12-05 20:33:24
目录 支持向量机(SVM) 1、基本原理 2、软间隔 3、核函数 4、sklearn实现SVM 5、SVM多分类 4.1多分类原理 4.2sklearn实现SVM多分类 前言 :参考《机器学习》,对偶问题没看懂。。。。(我只是一个代码的搬运工。。。) 机器学习专栏 : 机器学习——线性回归(预测) 机器学习——逻辑回归(分类) 机器学习——特征缩放 机器学习——正则化 机器学习——支持向量机(SVM) 支持向量机(SVM) 1、基本原理 现给定数据集 \(D={((x^{(1)},y^{(i)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)}))},y^{(i)}\in\{-1,1 \}\) ,我们现在的目的就是找一个 超平面 将这两个类别的样本点分开。 在样本空间中,划分超平面可以由线性方程表示为: \[w^Tx+b=0\] 则样本点 \(x^{(i)}\) 到超平面 \((w,x)\) 的距离为: \[r=\frac{|w^Tx^{(i)}+b|}{||w||}\] 其中, \(||w||\) 表示范数,这是空间的一个性质,一般指欧式范数。到原点距离的意思,超平面可以理解为平面中的直线、空间中的平面的推广到更高维度,但是作用都是划分。 一个超平面 \((w,x)\) 可以将它所在的空间分为两半, 它的法向量指向的那一半对应的一面是它的正面,

学习书籍清单

↘锁芯ラ 提交于 2019-12-05 20:09:44
如下是为了学习数据分析和机器学习所看的书籍: 数据库方面: 1、《SQL基础教程()第二版》 2、《SQL进阶教程》 python书籍: 1、《Python学习手册》 2、《Python for Data Analysis》 机器学习书籍: 1、《机器学习实战》 2、《统计学习方法》 持续更新中...... 来源: https://www.cnblogs.com/lsyb-python/p/11944568.html

机器学习.2

半世苍凉 提交于 2019-12-05 15:42:53
手写knn算法: 在看knn算法之前,先去简单学习了一下python的使用,简单了解了一下python相关知识,发现python序列与c++里的数组有一定的差别, 一、python学习。 列表、元组、字符串支持双向索引,第一个元素下标为0,第二个元素下标为1,以此类推;最后一个元素下标为-1,倒数第二个元素下标为-2,以此类推。 字符串:索引运算符[ i ]得到下标为i的字符,切片运算符[ i : j]得到从下标i到下标j-1的子串第一个字符索引为 0,最后一个字符索引为-1加号(+)用于字符串连接运算,星号(*)用于字符串复制。 列表:索引运算符[ i ]得到下标为i的元素,切片运算符[ i : j]得到从下标i到下标j-1的子集,第一个元素索引为 0,最后一个元素索引为-1。 列表常用方法: 二、学习手写knn算法 首先: iris = datasets.load_iris() x = iris.data y = iris.target x_train,x_test,y_train,y_test = train_test_split(x,y,random_state=2003) 这里我们导入的数据集叫做iris数据集 x_train,x_test,y_train,y_test = train_test_split(x,y,random_state=2003)