Loading

sklearn——python机器学习の库

sklearn——python机器学习の库

参考链接

1、安装

  • sklearn安装前:环境中需要Python(≥3.3)NumPy(≥1.6.1)SciPy(≥0.9)
  • sklearn安装时:
pip install -U scikit-learn
或
conda install scikit-learn

2、选择机器学习方法

image

  • classification:分类(监督)——线性、决策树、SVM、KNN ;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees
  • regression:回归(监督)——线性、决策树、SVM、KNN,朴素贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees
  • clustering:聚类(非监督)——k均值(K-means)、层次聚类(Hierarchical clustering)、DBSCAN
  • dimensionality reduction:降维(多属性压缩)——LinearDiscriminantAnalysis、PCA

3、通用学习模式

获取数据——》数据预处理——》训练模型——》模型评估——》预测,分类

4、数据集datasets

SKLearn作为通用机器学习建模的工具包,包含六个任务模块和一个数据导入模块:

4.1 sklearn默认数据格式

  1. Numpy二维数组(ndarray)的稠密数据(dense data),通常都是这种格式。
  2. SciPy矩阵(scipy.sparse.matrix)的稀疏数据(sparse data),比如文本分析每个单词(字典有100000个词)做独热编码得到矩阵有很多0,这时用ndarray就不合适了,太耗内存。

4.2 自带数据集

  • 下面以鸢尾花数据集为例,包含4个特征和3个类别。
  • 数据是以「字典」格式存储的
看看 iris 的键有哪些

代码:

# 导入工具库
from sklearn.datasets import load_iris
iris = load_iris()
iris.keys()

输出:

dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
查看iris 数据中特征的大小、名称等信息和前五个样本

代码:

# 导入工具库
n_samples, n_features = iris.data.shape
print((n_samples, n_features))
print(iris.feature_names)
print(iris.target.shape)
print(iris.target_names)
iris.data[0:5]

输出:

(150, 4)
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
(150,)
['setosa' 'versicolor' 'virginica']
array([[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]])
构建Dataframe格式的数据集

代码:

# 将X和y合并为Dataframe格式数据 
import pandas as pd
import seaborn as sns
iris_data = pd.DataFrame( iris.data,
                          columns=iris.feature_names )
iris_data['species'] = iris.target_names[iris.target]
iris_data.head(3).append(iris_data.tail(3))

输出:

使用seaborn库来做一些数据分析

代码:

# 使用Seaborn的pairplot查看两两特征之间的关系
sns.pairplot( iris_data, hue='species', palette='husl' )

输出:

4.3 数据集引入方式

SKLearn有三种引入数据形式:

  • 打包好的数据:对于小数据集,用sklearn.datasets.load_*
  • 分流下载数据:对于大数据集,用sklearn.datasets.fetch_*
  • 随机创建数据:为了快速展示,用sklearn.datasets.make_*
    上面这个星号*指代具体文件名。
load小数据集

代码:

#手写数字图像数据集
digits = datasets.load_digits()
digits.keys()

输出:

dict_keys(['data', 'target', 'target_names', 'images', 'DESCR'])
fetch大数据集

代码:

#加州房屋数据集
california_housing = datasets.fetch_california_housing()
california_housing.keys()

输出:

dict_keys(['data', 'target', 'feature_names', 'DESCR'])

5、sklearn核心API

SKLearn里万物皆估计器。估计器是个不严谨的叫法,可以视其为一个模型(用来回归、分类、聚类、降维),或一套流程(预处理、网格搜索交叉验证)。

  • 估计器(estimator)通常是用于拟合功能的估计器。
  • 预测器(predictor)是具有预测功能的估计器。
  • 转换器(transformer)是具有转换功能的估计器。

5.1 估计器

任何可以基于数据集对一些参数进行估计的对象都被称为估计器,它有两个核心点:

  • ① 需要输入数据。
  • ② 可以估计参数。

估计器使用流程:

(注:拟合之后可以访问model里学到的参数,比如线性回归里的特征系数coef,或K均值里聚类标签labels。(具体的可以在SKLearn文档的每个模型页查到))

5.2 预测器

5.3 转换器

6、高级API

posted @ 2024-02-26 22:07  CodingPikachu  阅读(22)  评论(0编辑  收藏  举报