1. 归一化特征到一定数值区间的函数——MinMaxScaler()

使用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)

2.计算recall:使用metrics.recall_score()计算多分类的召回率

使用方式:

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:(没用它)