ML之LoR:基于泰坦尼克号数据集分别利用Platt校准和等距回归校准算法实现概率校准进而提高二元分类模型的预测准确性(模型提效)应用案例
目录
基于泰坦尼克号数据集分别利用Platt校准和等距回归校准算法实现概率校准进而提高二元分类模型的预测准确性(模型提效)应用案例
# 1、定义数据集
# 2、数据预处理/特征工程
# 2.1、缺失值填充
# 2.2、定义入模特征
# 2.3、特征类型划分
# 2.4、特征编码
# T1、独热编码
# 2.5、分离特征与标签
# 3、模型训练与评估
# 3.1、切分训练集和测试集
# 3.2、建立模型
# 3.3、模型训练并评估
# T0、直接使用LoR模型评估
# T1、利用Platt校准概率后模型评估:5折交叉验证+使用sigmoid函数校准概率,来预测出未校准的概率
# 计算AUC和F1
# 利用Platt校准方法校准概率并绘制校准曲线
# 计算Brier分数:计算经过Platt校准后的概率的Brier得分。Brier得分是一种评估二元分类器概率预测准确性的指标,它度量了预测的概率与真实标签之间的距离。
# 绘制Calibration Curve:真实的正例概率、预测的正例概率
# T2、基于Platt校准再利用等距回归概率校准后模型评估:对校准后的概率结果进行等距回归
# 校准概率
# 计算AUC和F1
# 计算Brier分数
# 绘制Calibration Curve
相关文章
ML之LoR:基于泰坦尼克号数据集分别利用Platt校准和等距回归校准算法实现概率校准进而提高二元分类模型的预测准确性(模型提效)应用案例
ML之LoR:基于泰坦尼克号数据集分别利用Platt校准和等距回归校准算法实现概率校准进而提高二元分类模型的预测准确性(模型提效)应用案例实现代码
基于泰坦尼克号数据集分别利用Platt校准和等距回归校准算法实现概率校准进而提高二元分类模型的预测准确性(模型提效)应用案例
# 1、定义数据集
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
None
PassengerId Survived Pclass ... Fare Cabin Embarked
0 1 0 3 ... 7.2500 NaN S
1 2 1 1 ... 71.2833 C85 C
2 3 1 3 ... 7.9250 NaN S
3 4 1 1 ... 53.1000 C123 S
4 5 0 3 ... 8.0500 NaN S
[5 rows x 12 columns]
# 2、数据预处理/特征工程
# 2.1、缺失值填充
# 2.2、定义入模特征
after featuresIN………………………………………………
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Survived 891 non-null int64
1 Pclass 891 non-null int64
2 Age 891 non-null float64
3 Fare 891 non-null float64
4 Sex 891 non-null object
5 Embarked 889 non-null object
dtypes: float64(2), int64(2), object(2)
memory usage: 41.9+ KB
None
# 2.3、特征类型划分
cat_cols 2 ['Sex', 'Embarked']
# 2.4、特征编码
# T1、独热编码
after get_dummies………………………………………………
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Survived 891 non-null int64
1 Pclass 891 non-null int64
2 Age 891 non-null float64
3 Fare 891 non-null float64
4 Sex_female 891 non-null uint8
5 Sex_male 891 non-null uint8
6 Embarked_C 891 non-null uint8
7 Embarked_Q 891 non-null uint8
8 Embarked_S 891 non-null uint8
dtypes: float64(2), int64(2), uint8(5)
memory usage: 32.3 KB
# 2.5、分离特征与标签
# 3、模型训练与评估
# 3.1、切分训练集和测试集
# 3.2、建立模型
# 3.3、模型训练并评估
# T0、直接使用LoR模型评估
auc_scor: 0.8582990750256937
f1_scor: 0.7317073170731706
# T1、利用Platt校准概率后模型评估:5折交叉验证+使用sigmoid函数校准概率,来预测出未校准的概率
# 计算AUC和F1
Platt Calibration:
auc_Platt: 0.8606971565604659
f1_Platt: 0.7195121951219512
# 利用Platt校准方法校准概率并绘制校准曲线
# 计算Brier分数:计算经过Platt校准后的概率的Brier得分。Brier得分是一种评估二元分类器概率预测准确性的指标,它度量了预测的概率与真实标签之间的距离。
# 绘制Calibration Curve:真实的正例概率、预测的正例概率
# 将概率分为10个区间
# T2、基于Platt校准再利用等距回归概率校准后模型评估:对校准后的概率结果进行等距回归
# 校准概率
# 计算AUC和F1
Isotonic Regression:
auc_Iso: 0.8810808496060294
f1_Iso: 0.7631578947368423
# 计算Brier分数
# 绘制Calibration Curve
# 如果模型预测的概率与真实概率完全吻合,则曲线应该是一条45度直线。通过比较校准曲线与理想曲线,可以直观地评估模型的校准效果。