利用scikit-learn进行机器学习简介

利用scikit-learn进行机器学习简介

Sectioncontents:

在这部分,我们引入利用scikit-learn进行机器学习的常用单词,并给出一些简单的学习例子。

机器学习:问题设置

一般而言,一个学习问题处理一组包含n个样本的数据集,然后预测未知数据的属性。如果每个样本不止有一个数据,例如多维条目(又叫做多维数据),这种情况被称为拥有多组属性或特征。

我们可以将学习问题氛围几个大类:

监督学习:这类学习中数据包含我们想要预测的附加属性,这个问题可以被分为分类和回归。

分类问题:样本属于两个或者更多的类,我们通过学习已经加过标签的数据来预测未加标签的数据所属的类。手写体数字识别问题是一个分类问题的实例,其目的是将有限个输入向量分配到有限数目、离散的种类中。另外一种分类的理解方式可以认为分类是一种离散的监督学习。

回归:如果所希望的输出有一个或多个连续的随机变量组成,这种学习任务被称为回归。

一个回归的简单例子就是通过鲑鱼的年龄和体重的函数来预测鲑鱼的长度。

无监督学习:训练数据是由输入向量x组成的集合,该训练数据没有任何相关的目标值。在这类问题中,目标是发现数据集中相似样本族,这时该学习问题被称为聚类。或者判断在输入空间里数据分布情况,这时称为密度估计。或者将数据从高维空间映射到二维或三维空间中,称之为数据可视化问题。

训练集和测试集:机器学习是通过一组数据集学习一些属性,然后将他们应用到新的数据中。这是为什么在评价机器学习算法时,常见做法是将数据集分为两部分,一部分称之为训练数据,用于学习数据属性,一个称之为测试集合用来测试学习到的属性。

载入实例数据集

scikit-learn带有一些标准数据集,例如用于分类的iris和digits数据集,用于回归的bostonhouse
prices 数据集。

接下来我们从shell启动一个Python解释器,然后载入iris和digits数据集。我们的符号约定$表示shell提示,>>>表示Python解释器提示。

$ python
>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> digits = datasets.load_digits()

数据集是一个类似字典的对象,包含的所有数据和一些关于数据的元数据。数据存储在.data中,是个 n_samples, n_features的数组。在监督问题的情况下,一个活多个相关变量存储在.target成员中。更多有关不同数据集合的细节可以在专门部分查找。

例如,在digits数据集情况下,digits.data 提供了可用于分类数字样本的特征。

>>> print(digits.data)
[[  0.   0.   5. ...,   0.   0.   0.]
 [  0.   0.   0. ...,  10.   0.   0.]
 [  0.   0.   0. ...,  16.   9.   0.]
 ...,
 [  0.   0.   1. ...,   6.   0.   0.]
 [  0.   0.   2. ...,  12.   0.   0.]
 [  0.   0.  10. ...,  12.   1.   0.]]

并且digits.target给定了digit数据集的真实结果,每个数字对应于每个我们正在学习的图像。

>>> digits.target
array([0, 1, 2, ..., 8, 9, 8])

可以通过网址访问手写体数字样本集

学习和预测

在digits数据集中,给定一幅手写数字的数字图像,任务是预测结果。我们被给定的样本有10类(是数字0到9),基于此我们建立一个估计方法能够预测我们没有见过的样本属于哪一类。

在scikit-learn中,分类的估计模型是一个实现了fit(x,y)函数和predict(T)函数的python对象。

估计模型的例子是在实现了支持向量机的类 sklearn.svm.SVC。估计模型的构造函数带有模型参数,但是目前,我们将估计模型当做一个黑盒。

>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)

我们将我们的估计模型实例clf成为一个分类器。它现在必定十分适合这个模型。我们通过将数据集传递给fit函数完成。作为训练集,除了最后一个样本,我们选择其余所有样本。我们通过python语句[:-1]选择样本,这条语句将从digits.data中产生一个除了最后一个样本的新数组。

clf.fit(digits.data[:-1], digits.target[:-1])
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, degree=3,
  gamma=0.001, kernel='rbf', max_iter=-1, probability=False,
  random_state=None, shrinking=True, tol=0.001, verbose=False)

接下来我们可以预测新的输入值,特别是我们可以问分类器在digits数据集中最后一个我们在训练分类器是我们没有使用的图像是数字几.

图像相应的图像如下所示:

正如你所看到的,这是一个具有挑战性的任务:图像的分辨率都很低。你是否同意这个分类器呢?

有个完整的分类问题例子-手写数字识别-您可以运行和研究。

时间: 2024-10-04 17:52:33

利用scikit-learn进行机器学习简介的相关文章

Spark技术在京东智能供应链预测的应用——按照业务进行划分,然后利用scikit learn进行单机训练并预测

3.3 Spark在预测核心层的应用 我们使用Spark SQL和Spark RDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练.预测这些需要调用算法接口的逻辑就需要考虑一下并行化的问题了.我们平均一个训练任务在一天处理的数据量大约在500G左右,虽然数据规模不是特别的庞大,但是Python算法包提供的算法都是单进程执行.我们计算过,如果使用一台机器训练全部品类数据需要一个星期的时间,这是无法接收的,所以我们需要借助Spark这种分布式并行计算

【Machine Learn】机器学习及其基础概念简介

机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结合视频学习和书籍基础的笔记所得.本系列文章将采用理论结合实践方式编写.首先介绍机器学习和深度学习的范畴,然后介绍关于训练集.测试集等介绍.接着分别介绍机器学习常用算法,分别是监督学习之分类(决策树.临近取样.支持向量机.神经网络算法)监督学习之回归(线性回归.非线性回归)非监督学习(K-means聚

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

所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的垂直搜索引擎,专门为用户提供团购.优惠券的检索:同时存在一个通用的搜索引擎,比如百度,通用搜索引擎希望能够识别出一个Query是否具有O2O检索意图,如果有则调用O2O垂直搜索引擎,获取结果作为通用搜索引擎的结果补充. 我们的目的是学习出一个分类器(classifier),分类器可以理解为一个函数,

Python之扩展包安装(scikit learn)

scikit learn 是Python下开源的机器学习包.(安装环境:win7.0 32bit和Python2.7) Python安装第三方扩展包较为方便的方法:easy_install + packages name 在官网 https://pypi.python.org/pypi/setuptools/#windows-simplified 下载名字为 的文件. 在命令行窗口运行 ,安装后,可在python2.7文件夹下生成Scripts文件夹.把路径D:\Python27\Scripts

HIT机器学习期末复习(1)——机器学习简介及决策树

刘杨的机器学习终于上完了惹,下周就要考试了,赶紧复习ing...... 趁机做个总结,就当是复习了惹...... 机器学习简介 1.什么是机器学习 简单来说,就是一个三元组<P, T, E> P--performance性能(对应着性能的评估函数,也就是常说的loss或者likelihood) T--task任务(对应着被优化的对象,也就是目标函数) E--experience经验 就是我们想要某种算法,这种算法的目的是提高某项任务的性能,怎么提升呢?通过已有的经验. 一个经常被引用的定义是:

scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类

scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类数据集 fetch_20newsgroups #-*- coding: UTF-8 -*- import numpy as np from sklearn.pipeline import Pipeline from sklearn.linear_model import SGDClassifier from sklearn.grid_search import GridSearchCV from sk

机器学习-scikit learn学习笔记

scikit-learn官网:http://scikit-learn.org/stable/ 通常情况下,一个学习问题会包含一组学习样本数据,计算机通过对样本数据的学习,尝试对未知数据进行预测. 学习问题一般可以分为: 监督学习(supervised learning) 分类(classification) 回归(regression) 非监督学习(unsupervised learning) 聚类(clustering) 监督学习和非监督学习的区别就是,监督学习中,样本数据会包含要预测的标签(

python机器学习简介

目录 一:学习机器学习原因和能够解决的问题 二:为什么选择python作为机器学习的语言 三:机器学习常用库简介 四:机器学习流程 ??机器学习是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能.从数据中提取知识,也被称为预测分析 或 统计学习. ??它是人工智能的核心,是使计算机具有智能的根本途径. ??下面就让我们先了解一下机器学习吧. 一:学习机器

利用Spark mllab进行机器学习的基本操作(聚类,分类,回归分析)

Spark作为一种开源集群计算环境,具有分布式的快速数据处理能力.而Spark中的Mllib定义了各种各样用于机器学习的数据结构以及算法.Python具有Spark的API.需要注意的是,Spark中,所有数据的处理都是基于RDD的. 首先举一个聚类方面的详细应用例子Kmeans: 下面代码是一些基本步骤,包括外部数据,RDD预处理,训练模型,预测. #coding:utf-8 from numpy import array from math import sqrt from pyspark