sckit-learn
来源:互联网 发布:java干货知识点分享 编辑:程序博客网 时间:2024/06/18 14:34
- 为什么介绍scikit-learn
- python实现的,而不是R,免费。
- 没有和别的库做过比较,但是自身的文档足够好,例子足够多。
- 算法足够全,至少对于我的水平。
基于上面的几个原因,在写博客的过程中,就以scikit-learn作为主线来进行学习。在学会在sklearn中如何使用的基础上,同时扩展算法原理以及基础。
- 什么是scikit-learn
在scikit-learn官网上面(http://scikit-learn.org/)有这几句话,概括的非常精炼:
scikit-learn: Machine Learning in Python。机器学习的pythobn实现。
- Simple and efficient tools for data mining and data analysis。简单高效的数据挖掘和数据分析工具。
- Accessible to everybody, and reusable in various contexts。通用性。
- Built on NumPy, SciPy, and matplotlib。构建于NumPy, SciPy, and matplotlib基础上。
- Open source, commercially usable - BSD license。开源。
- 主要内容
- 按算法功能分类,分为监督学习:分类(classification)和回归(regression),以及非监督学习:聚类(clustering)。sklearn提供了很全面的算法实现,详细算法清单http://scikit-learn.org/stable/modules/classes.html。
- 测试数据集,比如iris,boston房价等,总共10几个。
- 数据预处理,比如二值化,正规化,特征提取。
- 测试数据选择、测试算法以及确定参数,甚至pipeline化的支持。‘
- 一下其他支持功能,比如评分matrix,
- 使用sklearn进行计算的主要步骤:
- 数据准备。需要把数据集整理为输入X[sample_count, feature_count],结果y[label_count]的格式,其中sample_count应该等于label_count。
- [可选的降维过程],因为原始数据的维度(feature个数)比较大,所以会出现The curse of dimensionality问题,严重影响性能和算法的扩展性,所以会以降维(PCA等)或者一些原型算法(Kmeans,LASSO等,也叫shrinkage)去掉贡献度低的一些维度。
- 学习以及预测的过程。
- 生成一个算法的预测器Estimator,同时可以自己设置参数,比如KNeighborsClassifier。
- 调用该预测器的fit(X,y)函数对输入数据+结果label进行学习,从中会得到学习的结果,即分类器的各种参数。
- 对未知数据进行预测,predict(unknown_X)。
- 反复学习的过程。仅仅使用一个预测器,或者使用一个预测器的一种参数,对未知数据进行预测可能会有不准确性,所以会使用多种策略:
- 把已知的数据分为多份进行多次计算,常用的是k-fold,k-label-fold, leave-1, leave-1-lable等
- 多个预测器进行预测,或者独立进行预测,或者组合预测(Ensemble)
- 对一个预测器设置不同的参数进行多次进行预测,同时把数据分组。基本上每一种分类器都有cross validation(交叉验证)版本,即把预测器加上cv,比如LassoCV。
- 应用
- 如果要把sklearn应用于自己的数据,预处理(特征选取,正规化,数据格式化等)是其中最关键的一步,没有之一,所以在sklearn之外的特征工程是必须的。
- 任何的机器学习算法在工业界应用都避不开一个性能问题。sklearn提供了一些建议。
阅读全文
0 0
- sckit-learn
- Sckit-learn之数据预处理
- Sckit-learn之朴素贝叶斯
- 【sckit-learn学习(0)】numpy基础
- learn
- learn
- Learn Chinese ,Learn English!
- learn how to learn
- learn how to learn
- To Learn
- learn perl
- learn spring
- Learn QTP
- Learn Linux
- linux learn
- Learn English !
- Learn process
- ajax learn
- 手机没有4G信号
- docker(17):使用docker构建nginx+phpfpm环境2
- runtime总结
- 从上往下打印二叉树
- Java数据结构与算法
- sckit-learn
- spring boot拦截器HandlerInterceptor详解
- 阿里巴巴编程规范之编程规约
- Windows下安装Redis
- 为什么写博客
- 《笨办法学python》加分习题10——我的答案
- 数组选择排序代码
- js 中的this
- MYSQL中的主健、普通索引、唯一索引和全文索引