scikit-learn框架学习笔记(一)
sklearn于2006年问世于Google,是使用python语言编写的、基于numpy、scipy和matplotlib的一个机器学习算法库,设计的非常优雅,它让我们能够使用同样的接口来实现所有不同的算法调用。
1、三大模块和六大功能
1.1监督学习模块
|
算法 |
说明 |
|
neighbors |
近邻算法 |
|
svm |
支持向量机 |
|
kernel-ridge |
核——岭回归 |
|
discriminant_analysis |
判别分析 |
|
linear_model |
广义线性模型 |
|
ensemle |
集成方法 |
|
tree |
决策树 |
|
naive_bayes |
朴素贝叶斯 |
|
cross_decomposition |
交叉分解 |
|
gaussian_process |
高斯过程 |
|
neural_network |
神经网络 |
|
calibration |
概率校准 |
|
isotonic |
保序回归 |
|
feature_selection |
特征选择 |
|
multiclass |
多类多标签算法 |
1.2非监督学习
|
算法 |
说明 |
|
decomposition |
矩阵因子分解 |
|
cluster |
聚类 |
|
manifold |
流形学习 |
|
mixture |
高斯混合模型 |
|
neural_network |
无监督神经网络 |
|
density |
密度估计 |
|
covariance |
协方差估计 |
1.3数据变换
|
算法 |
说明 |
|
feature_extraction |
特征抽取 |
|
feature_selection |
特征选择 |
|
preprocess |
预处理 |
|
random_projection |
随机投影 |
|
kernel_approximation |
核逼近 |
|
pipline |
管道流(这个严格说不算是数据变换模块) |
1.4六大功能
|
功能 |
说明(算法) |
|
分类(Classification) |
支持向量机分类(SVC)、最近邻法(nearest neighbors)、决策树(decision tree)、随机森林(random forest)等等 |
|
回归(regression) |
回归、多项式回归(polynomial regression),支持向量回归(SVR)、岭回归(ridge regression)、lasso回归等等 |
|
聚类(clustering) |
k均值(k-means)、谱聚类(spectral clustering)、mean-shift等方法 |
|
降维(Dimensionality reduction) |
作用是减少样本向量的维数,比如从200维降到15维,主要算法:主成分分析(PCA)、独立成分分析(ICA)等方法 |
|
模型选择(model selection) |
作用:评估模型,选择模型,交叉验证,调参等等,网格搜索grid search等 |
|
预处理(preprocessing) |
用于数据的归一化(normalization)、数据的标准化(standardization)、去均值化(mean removal)、白化(Whitening)、二值化(Binarization)等等 |
2、算法类的顶层设计
|
baseEstimator |
所有评估器的父类 |
|
ClassifierMixin |
所有分类器的父类,其子类必须实现一个score函数 |
|
RegressorMixin |
所有回归器的父类,其子类必须实现一个score函数 |
|
ClusterMixin |
所有聚类的父类,其子类必须实现一个fit_predict函数 |
|
BiClusterMixin |
|
|
TransformerMixin |
所有数据变换的父类,其子类必须实现一个fit_transform函数 |
|
DensityMixin |
所有密度估计相关的父类,其子类必须实现一个score函数 |
|
MetaEsimatorMixin |
可能是出于兼容性考虑,看名字就能知道,目前里面没有内容 |
3、统一的API接口
在sklearn里面使用完全一样的接口来实现不同的机器学习算法,通俗的流程可以理解如下:
①. 数据加载和预处理
②. 定义分类器(回归器等等),譬如svc = svm.svc()
③. 用训练集对模型进行训练,只需调用fit方法,svc.fit(X_train, y_train)
④. 用训练好的模型进行预测:y_pred=svc.predict(X_test)
⑤. 对模型进行性能评估:svc.score(X_test, y_test)
模型评估中,可以通过传入一个score参数来自定义评估标准,该函数的返回值越大代表模型越好。
scikit-learn框架学习笔记(一)的更多相关文章
- Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)
所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的 ...
- MEAN框架学习笔记
MEAN框架学习笔记 MEAN开发框架的资料非常少.基本的资料还是来自于learn.mean.io站点上的介绍. 于是抱着一种零基础学习的心态,在了解的过程中,通过翻译加上理解将MEAN框架一点点消化 ...
- phalcon(费尔康)框架学习笔记
phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构 pha ...
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...
- JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue
前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...
- JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序
前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...
- JavaSE中Map框架学习笔记
前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...
- JavaSE中线程与并行API框架学习笔记1——线程是什么?
前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...
- JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?
前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...
- scrapy爬虫框架学习笔记(一)
scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...
随机推荐
- jQuery-3.事件篇---键盘事件
jQuery键盘事件之keydown()与keyup()事件 鼠标有mousedown,mouseup之类的事件,这是根据人的手势动作分解的2个触发行为.相对应的键盘也有这类事件,将用户行为分解成2个 ...
- vue打包上传oss
今天把vue打包之后上传到oss,遇到了一点问题,现在解决了总结一下心得: OSS (Object Storage Service)名为对象存储,配合cdn使用达到静态文件托管加速,提升网站文件访问速 ...
- Linux下的tar压缩解压缩命令详解(转)
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...
- MTLD -词汇复杂度的指标
论文: MTLD, vocd-D, and HD-D: A validation study of sophisticated approaches to lexical diversity asse ...
- 30天代码day1Data Types
Primitive Data Types Java has 8 primitive data types: byte, short, int, long, float, double, boolean ...
- Jdbc来操作事物 完成模拟银行的转账业务
创建JDBC工具类 package cn.aa4_2.JDBCUtils; import java.io.FileReader; import java.io.IOException; import ...
- 小括号转义 '\\s'
select split("2405F5 (base 16) Integrated Device Technology (Malaysia) Sdn. Bhd.","\\ ...
- cf374C Inna and Dima dfs判环+求最长链
题目大意是有一个DIMA四种字母组成的矩阵,要在矩阵中找最长的DIMADIMADIMA……串,连接方式为四方向连接,问最长能找到多少DIMA.字母可以重复访问,如果DIMA串成环,即可以取出无限长的D ...
- Pycharm桌面图标(Fedora)
1.解压pycharm压缩包至/usr/local/pycharm文件夹下 2.在/usr/share/applications/目录下,新建Pycharm.desktop文件,内容如下: [Desk ...
- edgedb 内部pg 数据存储的探索 (四) 源码编译
edgedb 基于python开发,同时源码重包含了好多子项目,以下进行简单的源码编译 clone 代码 需要递归处理,加上recursive,比较慢稍等 git clone --recursiv ...