使用MinMaxScaler()需要首先引入包sklearn,MinMaxScaler()在包sklearn.preprocessing下可以将任意数值归一化处理到一定区间。
MinMaxScaler()函数原型为:sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)其中feature_range表示归一化范围。copy默认为True,为拷贝属性,默认为True,表示对原数据组拷贝操作,这样变换后元数组不变,False表 示变换操作后,原数组也跟随变化。
函数的数学模型为:
from sklearn import preprocessing
import numpy as np
x = np.array([[1.,-1.,2.],
[2.,0.,0.],
[0.,1.,-1.]])
min_max_scaler = preprocessing.MinMaxScaler()
# 默认为范围0~1,拷贝操作
# min_max_scaler = preprocessing.MinMaxScaler(feature_range = (1,3),copy = False)
# 范围改为1~3,对原数组操作
x_minmax = min_max_scaler.fit_transform(x)
print('x_minmax = ',x_minmax)
print('x = ',x)
#新的测试数据进来,同样的转换
x_test = np.array([[-3,-1,4.],
[0,-1,10]])
x_test_maxabs = min_max_scaler.transform(x_test)
print('x_test_maxabs = ',x_test_maxabs)
使用方式:
sklearn.metrics.recall_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary',
sample_weight=None, zero_division='warn')
输入参数:
**y_true:**真实标签。
**y_pred:**预测标签。
**labels:**可选参数,是一个list。可以排除数据中出现的标签,比如负类别比较多时,去除负类。
**pos_label:**字符串或者int类型,默认值是1。多分类情况下:
如果计算整体的 recall,可忽略该参数 如果labels=[pos_label] 并且average != 'binary',则返回该类别的recall
**average:**字符串类型,取值为 [None, ‘binary’ (default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’]。多分类必须的参数,如果为None,则返回每一类的recall,否则,根据其参数返回整体的召回率。
'macro':
用于多分类,只有两个属性可以选择 ‘macro’ 和 ‘weighted’ 。' macro ':计算每个标签的指标,并计算它们的未加权平均值。不考虑样本类别是否平衡。' weighted ':计算每个标签的指标,并找到它们的平均值,对(每个标签的真实实例的数量)进行加权。
'micro':
整体计算TP、FN、FP,然后根据公式计算得分。
'macro'
:计算每个标签的指标,并计算它们的未加权平均值。不考虑样本类别是否平衡。
'weighted'
:计算每个标签的指标,并找到它们的平均值,对(每个标签的真实实例的数量)进行加权。This alters ‘macro’ to account for label imbalance; it can result in an F-score that is not between precision and recall.
'samples': (没用它)
sample_weight:(没用它)
zero_division:(没用它)