目的:机器学习

机器学习是通过N个数据去预测位置的数据,主要包括以下几个问题:

  • 监督学习
    – 分类
    – 回归
  • 非监督学习

加载数据库

sklearn中包含一些数据库,例如,用于分类的iris和digits数据库和用于回归的波士顿房价数据库。
具体的,sklearn实现,例如:

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

datasets.load_XXX的返回值为’sklearn.datasets.base.Bunch’,包含以下属性:

  • target_names/feature_names:目标或特征的名称
  • data:数据
  • target:训练目标
  • DSCR:备注

可以通过 XXX.dataXXX.target来刚问数据和目标。

学习和预测

在sklearn中,预测可以通过fit(X, y)predit(T)来实现。
以SVM为例

#初始化SVM
from sklearn import svm
clf = svm.SVC(gamma=0.001, C=100.)
#训练模型
clf.fit(digits.data[:-1], digits.target[:-1])
#预测模型
clf.predict(digits.data[-1:])

模型的保存

可以使用pickle来保存模型。


>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC()
>>> iris = datasets.load_iris()
>>> X, y = iris.data, iris.target
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0:1])
array([0])
>>> y[0]
0

常用操作

数据转换

如果不是特殊声明,输入将被转化为float64

>>> import numpy as np
>>> from sklearn import random_projection>>> rng = np.random.RandomState(0)
>>> X = rng.rand(10, 2000)
>>> X = np.array(X, dtype='float32')
>>> X.dtype
dtype('float32')>>> transformer = random_projection.GaussianRandomProjection()
>>> X_new = transformer.fit_transform(X)
>>> X_new.dtype
dtype('float64')

回归的目标为float64,而分类的目标类型将会被保留:

>>> from sklearn import datasets
>>> from sklearn.svm import SVC
>>> iris = datasets.load_iris()
>>> clf = SVC()
>>> clf.fit(iris.data, iris.target)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)>>> list(clf.predict(iris.data[:3]))
[0, 0, 0]>>> clf.fit(iris.data, iris.target_names[iris.target])
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)>>> list(clf.predict(iris.data[:3]))
['setosa', 'setosa', 'setosa']

重拟合和更新参数

预测期的超参数可以通过sklearn.pipeline.Pipeline.set_params 函数更新。多次调用fit()会覆盖前面学习的模型。

>>> import numpy as np
>>> from sklearn.svm import SVC>>> rng = np.random.RandomState(0)
>>> X = rng.rand(100, 10)
>>> y = rng.binomial(1, 0.5, 100)
>>> X_test = rng.rand(5, 10)>>> clf = SVC()
>>> clf.set_params(kernel='linear').fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='linear',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)
>>> clf.predict(X_test)
array([1, 0, 1, 1, 0])>>> clf.set_params(kernel='rbf').fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)
>>> clf.predict(X_test)
array([0, 0, 0, 1, 0])

Scikit-learn Quick Start相关推荐

  1. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

  2. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  3. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  4. python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别

    之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...

  5. 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络

    本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...

  6. python scikit learn 关闭开源_scikit learn 里没有神经网络?

    本教程的代码和数据来自于 Springboard 的博客教程,希望能为你提供帮助.作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:ht ...

  7. scikit - learn 做文本分类

    文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...

  8. python基于svm的异常检测_[scikit learn]:异常检测-OneClassSVM的替代方案

    不幸的是,scikit目前只学习implements一类支持向量机和用于离群点检测的鲁棒协方差估计 通过检查2d数据上的差异,可以尝试比较这些方法(as provided in the doc):im ...

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

    3.3 Spark在预测核心层的应用 我们使用Spark SQL和Spark RDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练.预测这些需要调用算 ...

  10. python scikit learn 封装_python的scikit-learn的主要模块和基本使用

    在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法. 加载数据(Data L ...

最新文章

  1. 博士申请 | 日内瓦大学招收机器学习和计算机视觉博士生(年薪35万)
  2. (转载)(c#)数据结构与算法分析 --数组、向量和表
  3. 你知道吗?脑机接口训练会对大脑物质结构和功能产生影响
  4. C++ Primer 5th笔记(chap 12 动态内存)动态数组
  5. AspectCore中的IoC容器和依赖注入
  6. 如何让new操作符只构造,不申请内存
  7. linux 游戏 黑白,黑白迭代官方版游戏-黑白迭代下载v0.5-Linux公社
  8. Java的string学习笔记 与char数组和bufferstring的比较
  9. [转]微软:Visio 2010包括三大版本 功能对比
  10. 各种Camera,总有一款适合你(一)
  11. c语言链表移动北理工,北京理工大学c语言网络教室 链表
  12. 十年里程碑 vivo X80铸造高端手机的主色调
  13. 飞信免费发短信API接口
  14. 创建springboot项目后运行,找不到或无法加载主类 com.itheima.Application,原因: java.lang.ClassNotFoundException
  15. Vray材质——金属材质
  16. find_element()和find_elements()的区别
  17. 操作系统第三次实验——线程基础总结
  18. matlab仿真超声波测距,汽车倒车雷达的Simulink仿真测试
  19. LoRa网关和NS的那些事
  20. 计算机专业大学河南省,计算机专业“国内知名”大学23所,河南1所高校榜

热门文章

  1. 逻辑斯蒂回归公式推导
  2. FUC.K: Frequently Used Commands
  3. Liunx文件操作命令(touch、cat、vim、more、less、cp、mv、rm、head、tail、file、find)
  4. 岁月,见证我的爱情长跑
  5. Linux中的消息队列、共享内存,你确定都掌握了吗?
  6. 流体力学中动力粘度和运动粘度的定义和区别
  7. 史上最全的支付宝二维码扫码优化技术方案
  8. MPLS协议基本知识总结(比较详细,好理解)
  9. 常用的程序调试方法(C/C++)
  10. css字体、文本相关