1. 机器学习分类
- 监督学习(Suppervised Learning):从给定的训练集中学习出一个可以预测结果的函数,训练集由人工标注
- 无监督学习(UnSuppervised Learning):训练集没有认为标注
- 强化学习(Reinforcement Learning):通过观察来学习执行什么样的动作,以获得最好的回报,每个动作都会对环境有所影响,学习对象根据环境的反馈做出判断
- 半监督学习(Semi-Suppervised Learning):介于监督和无监督学习之间的一种方法
- 深度学习(Deep Learning):利用深层神经网络模型抽象数据的标示特征的方法
Python Scikit-learn:一组简单有效的工具集。依赖Python和NumPy、SciPy、matplotlib库。是开源和可复用的
Scikit-learn常用函数 | 应用(Applications) | 算法(Algorithm) |
---|---|---|
分类(Classification) | 异常检测、图像识别等 | KNN、SVM等 |
聚类(Clustering) | 图像分隔、群体划分等 | K-Means、谱聚类等 |
回归(Regression) | 洁哥预测、趋势预期等 | 线性回归、SVR等 |
降维(Dimension Reduction) | 可视化 | PCA、NMF等 |
2. Sklearn库安装
Sklearn是Scikit-learn的简称,是基于Python的第三方模块,集成了常用的机器学习方法,在进行学习任务时,并不需要实现算法,只需要简单的调用库中提供的模块就能完成大多数的机器学习任务
Sklearn是在NumPy、SciPy、matplotlib的基础上开发而成,因此安装前需要先安装依赖库
NumPy(Numerical Python):开源的Python科学计算机库
SciPy:是Sklearn库的基础,是基于Numpy的一个集成了多种数学算法和函数的Python模块
matplotlib:基于Numpy的一套Python工具包,提供打开数据绘图工具
安装顺序:NumPy库、SciPy库、matplotlib库、Sklearn库
# 在cmd命令中直接输入
pip install -i https://mirrors.aliyun.com/pypi/simple/ NumPy
pip install -i https://mirrors.aliyun.com/pypi/simple/ SciPy
pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib
pip install -i https://mirrors.aliyun.com/pypi/simple/ Sklearn
'''检测NumPy库、SciPy库、matplotlib库、Sklearn库是否安装完成'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 运行没有报错,说明安装完成
3 标准数据集
大小 | sklearn数据集 | 调用方法 | 适用算法 |
---|---|---|---|
小 | 波士顿房价数据集 | load_boston() |
回归 |
小 | 鸢尾花数据集 | load_iris() |
分类 |
小 | 糖尿病数据集 | load_diabetes() |
回归 |
小 | 手写数字数据集 | load_digits() |
分类 |
大 | Olivetti脸部图像数据集 | fetch_olivetti_faces() |
降维 |
大 | 新闻分类数据集 | fetch_20newsgroups() |
分类 |
大 | 带标签的人脸数据集 | fetch_lfw_people() |
分类、降维 |
大 | 路透社新闻语料数据集 | fetch_revl() |
分类 |
小数据集可以直接使用,大数据集要在调用时程序自动下载(一次即可)
'''
波士顿房价数据集
应用到回归问题上
'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 加载数据集
from sklearn.datasets import load_boston
# 查看参数
load_boston # 输出中return_X_y=False表示是否返回target(价格),默认False,只返回data(属性)
# 获得变量通用信息
load_boston?
# 引用数据
a = load_boston()
a
# 打印维度
print(a.data.shape) # (506, 13)
# 改变参数
data, target = load_boston(return_X_y=True)
print(data.shape) # (506, 13)
print(target.shape) # (506,)
'''
鸢尾花数据集
用于多分类问题
'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 加载
from sklearn.datasets import load_iris
# 调用
b = load_iris()
b # [输出数据]
# 查看参数
load_iris # <function sklearn.datasets._base.load_iris(return_X_y=False)>[默认False,表示以字典形式返回数据全部信息;True,则以data、target返回数据]
load_iris? # [一些数据信息]
# 打印维度
print(b.data.shape) # (150, 4)
print(b.target.shape) # (150,)
# 打印数据集的分类名称
list(b.target_names) # ['setosa', 'versicolor', 'virginica']
'''
手写数据集
每个数字有8*8大小矩阵构成,矩阵中值0-16,代表颜色深度
'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 加载
from sklearn.datasets import load_digits
# 调用
c = load_digits()
c # [输出数据]
# 查看参数
load_digits # <function sklearn.datasets._base.load_digits(n_class=10, return_X_y=False)>[默认False,表示以字典形式返回数据全部信息;True,则以data、target返回数据;n_class=10是一个特别的属性,表示返回数据的类别数2,这里=10,则返回0-9的数据样本]
# 打印维度
print(c.data.shape) # (1797, 64)
print(c.target.shape) # (1797,)
print(c.images.shape) # (1797, 8, 8)
# 以图像的形式展示
import matplotlib.pyplot as plt
plt.matshow(c.images[0])
plt.show() # [如下图]
目录
Python机器学习应用
一、Sklearn库
二、无监督学习
三、有监督学习