1、scikit-learn 简介

scikit-learn (sklearn) 是基于 Python 语言的机器学习工具。

是简单高效的数据挖掘和数据分析工具可供大家在各种环境中重复使用建立在 NumPy ,SciPy 和 matplotlib 上开源,可商业使用 - BSD许可证

sklearn可以实现数据预处理、分类、回归、降维、模型选择等常用的机器学习算法。sklearn是基于NumPy, SciPy, matplotlib的。

NumPy:NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。。SciPy :scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题matplotlib :Matplotlib 是 Python 的绘图库,仅需要几行代码,便可以生成直方图、功率谱、条形图、错误图、散点图等。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

2、安装 scikit-learn最新版本

Scikit-learn 要求:

Python (>= 2.7 or >= 3.3),
NumPy (>= 1.8.2),
SciPy (>= 0.13.3).

如果你已经有一个安全的 numpy 和 scipy,安装 scikit-learn 最简单的方法是使用pip

pip install -U scikit-learn


pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包。如果你安装的Python 2 >=2.7.9 或者Python 3 >=3.4 python自带了pip,所以不用安装。可以用 pip list命令查看安装了哪些python包。

或者你是在Anaconda环境下,可以使用conda

conda install scikit-learn

pip 升级和卸载操作仅适用于通过 pip install 安装的软件包;升级或卸载使用 Anaconda 安装的 scikit-learn要用conda命令:

升级 scikit-learn:conda update scikit-learn
卸载 scikit-learn:conda remove scikit-learn

使用 pip install -U scikit-learn 升级 or pip uninstall scikit-learn 卸载 可能无法正确删除 conda 命令安装的文件

3、使用 scikit-learn 介绍机器学习

机器学习是什么?

一般来说,一个学习问题通常会考虑一系列 n 个 样本 数据,然后尝试预测未知数据的属性。 如果每个样本是 多个属性的数据 (比如说是一个多维记录),就说它有许多“属性”,或称 features(特征) 。

我们可以将学习问题分为以下几大类:

有监督学习:其中数据带有一个附加属性,即我们想要预测的结果值

分类:样本属于两个或更多个类,我们想从已经标记的数据中学习如何预测未标记数据的类别。 分类问题的一个例子是手写数字识别,其目的是将每个输入向量分配给有限数目的离散类别之一。 我们通常把分类视作监督学习的一个离散形式(区别于连续形式),从有限的类别中,给每个样本贴上正确的标签。

回归:如果期望的输出由一个或多个连续变量组成,则该任务称为 回归 。 回归问题的一个例子是预测鲑鱼的长度是其年龄和体重的函数。

无监督学习:其中训练数据由没有任何相应目标值的一组输入向量x组成。这种问题的目标可能是在数据中发现彼此类似的示例所聚成的组,这种问题称为 聚类 , 或者,确定输入空间内的数据分布,称为 密度估计 ,又或从高维数据投影数据空间缩小到二维或三维以进行可视化

训练集和测试集
机器学习是从数据的属性中学习,并将它们应用到新数据的过程。 这就是为什么机器学习中评估算法的普遍实践是把数据集分割成训练集 (我们从中学习数据的属性)和 测试集 (我们测试这些性质)。

我们来加载一个栗子数据集

scikit-learn自带几个标准数据集。例如,用于分类的iris和digits数据集,和用于回归的波士顿房价数据集。下面,我们从cmd命令处理程序启动python解释器,练习加载iris和digits数据集。

python环境中的数据集是一个类似字典的对象,它保存有关数据的所有数据和一些元数据。 该数据存储在 .data 成员中,它是 n_samples(样本), n_features (特征)数组。 在监督问题的情况下,一个或多个响应变量存储在 .target 成员中。
例如,在数字数据集的情况下,digits.data 使我们能够得到一些用于分类的样本特征:

并且 digits.target 表示了数据集内每个数字的真实类别,也就是我们期望从每个手写数字图像中学得的相应的数字标记:

数据数组的形状
数据总是二维数组,形状为 (n_samples, n_features) ,尽管原始数据可能具有不同的形状。 在数字的情况下,每个原始样本是形状 (8, 8) 的图像,可以使用以下方式访问:

如何加载外部数据集?
scikit-learn将任何数值型数据存储为numpy数组或scipy稀疏矩阵。其它可以转换为numpy数组的类型也可以。下面介绍几种推荐的数据加载方式:

1、pandas.io提供了一组工具,利用它们读取包括CSV, Excel, JSON, SQL等常见格式的数据集。pandas很适合处理不同类型的数据,并且能够把这些数据转为适合的数值数组。

2、scipy.io专门处理在科学计算中常用的二进制形式,例如,.mat, .arff

3、numpy/routines.io是列形数据进入numpy数组的标准加载形式。

4、scikit-learn的datasets.load_files函数作为文本文件的字典加载形式。在这种加载形式,每一个字典名是每一个类的名,而字典里的每一个文件则对应来自该类的一个样本。

提示: 如果在管理自己的数值型数据时,我们推荐使用一个优化过的文件格式,例如,HDF5, 这样可以减少数据加载时间。当你加载的外部数据很大时,这种方式尤其有用。 不同的python库,例如,H5Py, PyTables, pandas都提供读写HDF5格式的数据的接口。

Python数据分析基础技术之scikit-learn(史上最全面)相关推荐

  1. Python数据分析基础技术之pandas(史上最全面)

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.pandas提供了大量能使我们快 ...

  2. Python数据分析基础: 异常值检测和处理

    作者:东哥起飞 公众号:Python数据科学 上一篇分享了关于数据缺失值处理的一些方法,链接如下: [Python数据分析基础]: 数据缺失值处理 本篇继续分享数据清洗中的另一个常见问题:异常值检测和 ...

  3. python dataframe groupby_【Python数据分析基础】入坑必备的数据预处理操作

    本文解决的是2类目标业务: 有数据不知道怎么做数据分析操作的. 自己有思路不知道怎么落地实现的. Python数据分析基础必用品 office软件(推荐2016版) Python开发环境(推荐Anac ...

  4. python 数据分析基础 day1-初窥内容

    在读这本书之前,我已经有开始学python,用的是anaconda 的jupyter notebook. 看了<python 数据分析基础>的前言部分,发现这本书的实用性很高,其讲解的内容 ...

  5. python计算相关矩阵_Numpy使用大全(python矩阵相关运算大全)-Python数据分析基础2...

    //2019.07.10 python数据分析基础--numpy(数据结构基础) import numpy as np: 1.python数据分析主要的功能实现模块包含以下六个方面: (1)numpy ...

  6. python数据分析基础教程 numpy_Python数据分析基础教程:NumPy学习指南(第2版)

    Python数据分析基础教程:NumPy学习指南(第2版) Ivan Idris (作者) 张驭宇 (译者) NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算 ...

  7. python数据分析与excel_读Python数据分析基础之Excel读写与处理

    对于业务型数据分析来说,Excel可以说是打交道最多的软件了,可以说没有之一.之前有比较系统地读过<Python数据分析基础>(Foundations for Analysis with ...

  8. Python数据分析基础之Excel文件(6)

      这一篇博客主要讲一下处理多个工作簿.   之前我们已经创建了sales_2013.xlsx工作簿.在这里,我们再创建两个新的工作簿sales_2014.xlsx和sales_2015.xlsx,并 ...

  9. 简书python数据分析基础reading_Python数据分析基础ReadingDay5_sqlite3

    reading Foundations for Analysis with Python Day 5 <Python数据分析基础>封面 这篇笔记开始记录数据库的内容,会用两篇笔记分别讲述P ...

最新文章

  1. 第十六周程序阅读(1)
  2. UBOOT添加命令的执行流程
  3. vue-element-admin台前端解决方案: 基于 vue 和 element-ui实现
  4. Storm里面fieldsGrouping和Field的概念详解
  5. lg gram 笔记本 linux,lg gram 15笔记本使用雨林木风u盘安装win7系统教程?
  6. Scala AKKA入门示例
  7. HTTP一次完整的http请求所经历的步骤
  8. 开始我的blog之旅
  9. led灯bin值_这款指甲刀自带3倍镜和LED灯,颠覆剪指甲体验,100元也值
  10. 迷你MVVM框架 avalonjs 学习教程20、路由系统
  11. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集...
  12. 2021-06-27面向对象继承
  13. 测试电池耗电快的软件,电池快速耗电急救软件
  14. LINUX-SHELL基础
  15. SNARK超详细解释,从GGPR13到Groth16
  16. 计算机ppt测试题填空题,2017职称计算机PowerPoint练习试题及答案(1)-中华考试网...
  17. Star CCM+ 案例 - 旋风分离器 (cyclone separator)-3 模拟设置
  18. 2020年11月26日JetbrainsAgent安装参数
  19. mtk android平台学习,MTK平台的驱动学习——(阶段1规划篇)
  20. java运用itextpdf实现根据模板生成合同并返回网络路径,供用户查看

热门文章

  1. 阿里巴巴2016前端开发工程师笔试一
  2. 【Java开发 | 工具使用】JAVA使用exe4j打包项目为exe文件
  3. floor()函数与round()函数
  4. java jca_Java加密体系结构(JCA)参考指南
  5. tyvj 1027 木瓜地 简单模拟
  6. 【LeetCode/力扣】1723. 完成所有工作的最短时间
  7. 2018-2019 ICPC, NEERC, Northern Eurasia Finals K. King Kog's Reception 线段树
  8. LabView---信号发生器
  9. ios备份应用数据_如何在iOS设备之间备份和复制数据
  10. es6中的静态属性和方法