sklearn学习总结

文章目录

  • 前言
  • 一、SKlearn是什么?
  • 二、使用步骤
    • 1. 安装sklearn库
    • 2. 引入库
    • 3. API使用测试
      • 3.1 datasets模块
      • 3.2 sklearn监督、非监督学习模块
  • 总结


前言

本专题主要是记录作者在学习使用sklearn工具箱时的一些案例经验及心得体会。

一、SKlearn是什么?

scikit-learn (sklearn) 是一个Python第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。在实战使用scikit-learn中可以极大的节省我们编写代码的时间以及减少我们的代码量,使我们有更多的精力去分析数据分布,调整模型和修改超参。(sklearn为包名)
其官方中文文档网址为:https://www.cntofu.com/book/170/index.html

二、使用步骤

1. 安装sklearn库

pip install -U scikit-learn

2. 引入库

代码如下(示例):

from sklearn import *

3. API使用测试

3.1 datasets模块

datasets模块是sklearn中的重要部分,主要用于读取、创建、划分数据集。
1> 读取数据集

  • 自带的小数据集(packaged dataset):sklearn.datasets.load_(name)
  • 可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_(name)
  • 计算机生成的数据集(Generated Dataset):sklearn.datasets.make_(name)
  • svmlight/libsvm格式的数据集:
    sklearn.datasets.load_svmlight_file(…)
  • 从买了data.org在线下载获取的数据集:
    sklearn.datasets.fetch_mldata(…)

2> 生成数据集
创建分类数据集代码如下(示例):

from sklearn import datasets
x, y = datasets.make_classification(n_samples=1000,        # 样本个数
                                    n_features=100,          # 特征个数
                                    n_informative=3,        # 有效特征个数
                                    n_redundant=2,          # 冗余特征个数(有效特征的随机组合)
                                    n_repeated=0,           # 重复特征个数(有效特征和冗余特征的随机组合)
                                    n_classes=2,            # 样本类别
                                    n_clusters_per_class=1, # 簇的个数
                                    random_state=0)

3> 划分数据集
划分数据集为训练集、测试集代码如下(示例):

# 划分数据集,把数据集随机划分成训练集和测试集,其中测试集占20%。
train_X, test_X, train_Y, test_Y = train_test_split(x,
                                                    y,
                                                    test_size=0.2,
                                                    random_state=66)

3.2 sklearn监督、非监督学习模块

sklearn拥有可以用于监督和无监督学习的方法,一般来说监督学习使用的更多。sklearn中的大部分函数可以归为估计器(Estimator)和转化器(Transformer)两类。

  • 估计器(Estimator)其实就是模型,它用于对数据的预测或回归。基本上估计器都会有以下几个方法:

    • fit(x,y) :传入数据以及标签即可训练模型,训练的时间和参数设置,数据集大小以及数据本身的特点有关
    • score(x,y)用于对模型的正确率进行评分(范围0-1)。但由于对在不同的问题下,评判模型优劣的的标准不限于简单的正确率,可能还包括召回率或者是查准率等其他的指标,特别是对于类别失衡的样本,准确率并不能很好的评估模型的优劣,因此在对模型进行评估时,不要轻易的被score的得分蒙蔽。
    • predict(x)用于对数据的预测,它接受输入,并输出预测标签,输出的格式为numpy数组。我们通常使用这个方法返回测试的结果,再将这个结果用于评估模型。

以以上创建的分类数据集为例,使用KNN模型对其进行训练和预测:
KNN训练和预测代码如下(示例):

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(train_X, train_Y)
pred_Y = knn.predict(test_X)
  • 转化器(Transformer)用于对数据的处理,例如标准化、降维以及特征选择等等。同与估计器的使用方法类似:

    • fit(x,y) :该方法接受输入和标签,计算出数据变换的方式。
    • transform(x) :根据已经计算出的变换方式,返回对输入数据x变换后的结果(不改变x)
    • fit_transform(x,y) :该方法在计算出数据变换方式之后对输入x就地转换。

总结

本文是作者在不断的学习中持续进行更新,其中有很多都是搬运学习资料的内容。
目前处于持续更新中~~~~~~~~~~~~~~~~~~~

你可能感兴趣的:(自然语言处理,机器学习)