Sklearn入门
来源:互联网 发布:北京网络咨询医生招聘 编辑:程序博客网 时间:2024/05/22 03:45
Sklearn 简介
Scikit learn 也简称 sklearn, 是机器学习领域当中最知名的 python 模块之一.
Sklearn 包含了很多种机器学习的方式:
- Classification 分类
- Regression 回归
- Clustering 非监督分类
- Dimensionality reduction 数据降维
- Model Selection 模型选择
选择模型流程
学习 Sklearn 时,不要直接去用,先了解一下都有什么模型方法,然后选择适当的方法,来达到你的目标。
Sklearn 官网提供了一个流程图,蓝色圆圈内是判断条件,绿色方框内是可以选择的算法:
从 START 开始,首先看数据的样本是否>50,小于则需要收集更多的数据。
由图中,可以看到算法有四类,分类,回归,聚类,降维。
- 其中分类和回归是监督式学习,即每个数据对应一个 label。
- 聚类是非监督式学习,即没有 label。
- 另外一类是降维,当数据集有很多很多属性的时候,可以通过 降维 算法把属性归纳起来。例如 20 个属性只变成 2 个,注意,这不是挑出 2 个,而是压缩成为 2 个,它们集合了 20 个属性的所有特征,相当于把重要的信息提取的更好,不重要的信息就不要了。
然后看问题属于哪一类问题,是分类还是回归,还是聚类,就选择相应的算法。
当然还要考虑数据的大小,例如100K 是一个阈值。
可以发现有些方法是既可以作为分类,也可以作为回归,例如SGD。
应用模型
Sklearn 把所有机器学习的模式整合统一起来了,学会了一个模式就可以通吃其他不同类型的学习模式。
例如:分类器。
Sklearn 本身就有很多数据库,可以用来练习。
我们用其中 Iris 的数据为例,这种花有四个属性,花瓣的长宽,茎的长宽,根据这些属性把花分为三类。
我们要用 分类器 去把四种类型的花分开。
今天用 KNN classifier,就是选择几个临近点,综合它们做个平均来作为预测值。
使用模型的步骤:
- 导入模块
- 创建数据
- 建立模型-训练-预测
导入模块
from __future__ import print_functionfrom sklearn import datasetsfrom sklearn.cross_validation import train_test_splitfrom sklearn.neighbors import KNeighborsClassifier
创建数据
加载 iris 的数据,把属性存在 X,类别标签存在 y:
iris = datasets.load_iris()iris_X = iris.datairis_y = iris.target
观察一下数据集,X 有四个属性,y 有 0,1,2 三类:
print(iris_X[:2, :])print(iris_y)"""[[ 5.1 3.5 1.4 0.2] [ 4.9 3. 1.4 0.2]][0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2] """
把数据集分为训练集和测试集,其中 test_size=0.3,即测试集占总数据的 30%:
X_train, X_test, y_train, y_test = train_test_split( iris_X, iris_y, test_size=0.3)
可以看到分开后的数据集,顺序也被打乱,这样更有利于学习模型:
print(y_train)"""[2 1 0 1 0 0 1 1 1 1 0 0 1 2 1 1 1 0 2 2 1 1 1 1 0 2 2 0 2 2 2 2 2 0 1 2 2 2 2 2 2 0 1 2 2 1 1 1 0 0 1 2 0 1 0 1 0 1 2 2 0 1 2 2 2 1 1 1 1 2 2 2 1 0 1 1 0 0 0 2 0 1 0 0 1 2 0 2 2 0 0 2 2 2 1 2 0 0 2 1 2 0 0 1 2] """
定义模型-训练模型-预测
定义模块方式 KNeighborsClassifier(),
用 fit 来训练 training data,这一步就完成了训练的所有步骤,
后面的 knn 就已经是训练好的模型,可以直接用来 predict 测试集的数据,
对比用模型预测的值与真实的值,可以看到大概模拟出了数据,但是有误差,是不会完完全全预测正确的。
knn = KNeighborsClassifier()knn.fit(X_train, y_train)print(knn.predict(X_test))print(y_test)"""[2 0 0 1 2 2 0 0 0 1 2 2 1 1 2 1 2 1 0 0 0 2 1 2 0 0 0 0 1 0 2 0 0 2 1 0 1 0 0 1 0 1 2 0 1][2 0 0 1 2 1 0 0 0 1 2 2 1 1 2 1 2 1 0 0 0 2 1 2 0 0 0 0 1 0 2 0 0 2 1 0 1 0 0 1 0 1 2 0 1] """
- Sklearn入门
- sklearn 快速入门
- Python-sklearn入门
- Sklearn 快速入门
- Sklearn源码学习入门
- sklearn 快速入门
- pandas/sklearn入门指南
- sklearn与GBDT入门案例
- 数据分析(4)-sklearn入门
- Sklearn
- sklearn
- sklearn
- Sklearn
- 机器学习sklearn之菜鸟入门一
- 机器学习sklearn之菜鸟入门二
- 机器学习sklearn之菜鸟入门三
- Python机器学习Sklearn入门之神经网络
- sklearn svm实现文本分类 入门
- 「Unity3D」(6)协程使用IEnumerator的几种方式
- 用递归完成数组的输入输出相关问题
- 并查集模板
- 泛型总结
- 辗转相除法:求最大公因数
- Sklearn入门
- LeetCode 152. Maximum Product Subarray
- 迭代器
- TensorFlow之一 ----- 在Windows平台安装TensorFlow
- 机器学习:朴素贝叶斯--python
- js和jsp所有页面跳转总结
- ubuntu ssh 显示界面
- Content Provider 详解
- Warning: require(): open_basedir restriction in effect. File(/home/framework/laravel/