如何使用Python Scikit-learn将数据二值化?

如何使用Python Scikit-learn将数据二值化?

二值化 是一种预处理技术,用于将数据转换为二进制数,即将数据二值化。 Scikit-learn函数名为 Sklearn.preprocessing.binarize() 用于将数据二值化。

此二值化函数具有阈值参数,小于或等于此阈值值的特征值将被替换为0,大于它的值将被替换为1。

在本教程中,我们将学习如何使用Python中的Scikit-learn(Sklearn)对数据和稀疏矩阵进行二值化处理。

示例

让我们看一个示例,其中我们将numpy数组预处理为二进制数−

#导入必要的包
import sklearn
import numpy as np
from sklearn import preprocessing
X=[[0.4,-1.8,2.9],[2.5,0.9,0.3],[0. ,1., -1.5],[0.1,2.9,5.9]]
Binarized_Data = preprocessing.Binarizer(threshold=0.5).transform(X)
print("\nThe Binarized data is:\n",Binarized_Data)

输出

它将产生以下输出−

The Binarized data is:
[[0. 0. 1.]
[1. 1. 0.]
[0. 1. 0.]
[0. 1. 1.]]

如何将稀疏矩阵二值化?

稀疏矩阵由大部分零值组成,它们与由大部分非零值组成的所谓密矩阵不同。Spare矩阵非常特殊,因为为了节省内存空间,零值未存储。

我们可以使用Scikit-learn preprocessing.binarize() 函数对稀疏矩阵进行二值化,但条件是阈值值不能小于零。

示例1

让我们看一个示例来理解它−

# 导入必要的库
import sklearn
from scipy.sparse import coo
import numpy as np

#创建稀疏矩阵
sparse_matrix = coo.coo_matrix(np.random.binomial(1, .25, 50))

#导入sklearn预处理模块
from sklearn importpreprocessing
sparse_binarized = preprocessing.binarize(sparse_matrix, threshold=-1)

输出

它将显示错误,即阈值值不能小于0−

ValueError: Cannot binarize a sparse matrix with threshold < 0

示例2

让我们看一个具有大于零阈值值的相同示例−

# 导入必要的库
import sklearn
from scipy.sparse import coo
import numpy as np

# 创建稀疏矩阵
sparse_matrix = coo.coo_matrix(np.random.binomial(1, .25, 50))

# 导入sklearn的预处理模块
from sklearn import preprocessing
sparse_binarized = preprocessing.binarize(sparse_matrix, threshold=0.8)
print(sparse_binarized)

输出

它将产生以下输出 −

(0, 5) 1
(0, 6) 1
(0, 9) 1
(0, 15) 1
(0, 25) 1
(0, 27) 1
(0, 29) 1
(0, 30) 1
(0, 31) 1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程