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框架学习笔记(一)的更多相关文章

  1. Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)

    所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的 ...

  2. MEAN框架学习笔记

    MEAN框架学习笔记 MEAN开发框架的资料非常少.基本的资料还是来自于learn.mean.io站点上的介绍. 于是抱着一种零基础学习的心态,在了解的过程中,通过翻译加上理解将MEAN框架一点点消化 ...

  3. phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构   pha ...

  4. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  5. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  6. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  7. JavaSE中Map框架学习笔记

    前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...

  8. JavaSE中线程与并行API框架学习笔记1——线程是什么?

    前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...

  9. JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

    前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...

  10. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

随机推荐

  1. [转]JAVA 根据经纬度算出附近的正方形的四个角的经纬度

    csv文件转化为geojson文件中,涉及到路测图的打点生成,打点是由一个个正方形组成,而正方形是由四个点组成的,这四个点根据经纬度和范围生成,具体的实现代码是从网上找来的: /** * * @par ...

  2. 手机响应式echarts

    // 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 使用刚指定的配置项和数据 ...

  3. 学习笔记CB006:依存句法、LTP、n元语法模型、N-最短路径分词法、由字构词分词法、图论、概率论

    依存句法分析,法国语言学家L.Tesniere1959年提出.句法,句子规则,句子成分组织规则.依存句法,成分间依赖关系.依赖,没有A,B存在错误.语义,句子含义. 依存句法强调介词.助词划分作用,语 ...

  4. java面试总躲不过的并发(一): 线程池ThreadPoolExecutor基础梳理

    本文核心:线程池ThreadPoolExecutor基础梳理 一.实现多线程的方式 1.继承Thread类,重写其run方法 2.实现Runnable接口,实现run方法 3.实现Callable接口 ...

  5. annotation的理解

    Annotations提供一些本来不属于程序的数据. 比如:一段代码的作者或者告诉编译器禁止一些特殊的错误.An annotation 对代码的执行没有什么影响.Annotations使用@annot ...

  6. car的旅行路线

    https://www.luogu.org/problemnew/show/P1027 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形 ...

  7. 使用C#的aforge类库识别验证码实例

    一: 验证码处理 1.  一般处理原则 这种验证码为什么说跟没有一样,第一点:字体规范工整,第二点:不旋转扭曲粘连,第三点:字体颜色单一,下面看处理步骤. 这里要注意的是,aforge只接受像素格式为 ...

  8. Base64编码解码JS

    function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr ...

  9. JVM GC机制

    垃圾收集主要是针对堆和方法区进行. 回收机制: 现在的JVM基本都使用分代回收机制,把堆中内存区域分为新生代,老年代. 新生代: Eden(80%) Survivor0(10%) Survivor1( ...

  10. 用 EPWA 写一个 图片播放器 PicturePlayer

    用 EPWA 写一个 图片播放器  PicturePlayer  . 有关 EPWA,见 <我发起并创立了一个 EPWA 的 开源项目>   https://www.cnblogs.com ...