环境部署
Scikit-learn
Python语言中专门针对机器学习应用而发展起来的一款开源框架(算法库),可以实现数据预处理、分类、回归、降维、模型选择等常用的机器学习算法
特点:集成了机器学习中各类成熟的算法,容易安装和使用,样例丰富,教程和文档也非常详细
不支持Python之外的语言,不支持深度学习和强化学习
安装:https://scikit-learn.org/stable/install.html
数据预处理
Iris数据集:
Iris鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例,属于监督式学习;
数据集分3类共150条记录,每类各50个数据
每条记录都有4项特征:花萼长度(Sepal Length)、花萼宽度(Sepal Width)、花瓣长度(Petal Length)、花瓣宽度(Petal Width)
通过这4个特征预测鸢尾花卉属于(iris-setosa、iris-versicolour、iris-virginica)中的哪一品种。
操作步骤:
iris数据加载
# coding:utf-8
# iris数据加载
from sklearn import datasets
iris = datasets.load_iris()
# 每行数据为一个样本
# 每列数据代表不同样本同一属性下对应的数值
print iris.data
# 打印iris数据单位
print iris.feature_names
结果:
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]
…
[6.7 3. 5.2 2.3]
[6.3 2.5 5. 1.9]
[6.5 3. 5.2 2. ]
[6.2 3.4 5.4 2.3]
[5.9 3. 5.1 1.8]]
[‘sepal length (cm)’, ‘sepal width (cm)’, ‘petal length (cm)’, ‘petal width (cm)’]
数据展示
# 输出的结果
print iris.target
# 结果的含义
print iris.target_names
结果:
[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]
[‘setosa’ ‘versicolor’ ‘virginica’]
确认数据维度
# 确认数据类型
print type(iris.data)
print type(iris.target)
# 确认维度
print iris.data.shape
print iris.target.shape
结果:
<type ‘numpy.ndarray’>
<type ‘numpy.ndarray’>
(150, 4)
(150,)
使用scikit-learn进行数据处理的四个关键点:
1.区分开属性数据与结果数据
2.属性数据与结果数据都是量化的
3.运算过程中,属性数据与结果数据的类型都是NumPy数组
4.属性数据与结果数据的维度是对应的
模型训练
分类:根据数据集目标的特征或属性,划分到已有的类别中
常用的分类算法:K近邻(KNN)、逻辑回归、决策树、朴素贝叶斯
K近邻分类模型(KNN):
给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近
的K个实例(也就是上面所说的K个邻居),这K个实例的多数属于某个类,就
把该输入实例分类到这个类中,最简单的机器学习算法之一