数据分析:Task5-数据建模及模型评估

1.关于nan的问题

1.在pandas中有个另类的存在就是nan,解释是:not a number,不是一个数字,但是它的类型确是一个float类型。numpy中也存在关于nan的方法,如:np.nan
2.对于pandas中nan的处理,简单的说有以下几个方法。
查看是否是nan, s1.isnull() 和 s1.notnull()
丢弃有nan的索引项,s1.dropna()
将nan填充为其他值,df2.fillna()

不能用=,== !!!

2.分类变量自动编码

data = pd.get_dummies(data)

会将分类变量自动编码

3.混淆矩阵

数据分析:Task5-数据建模及模型评估_第1张图片

  1. 真阳性(True Positive,TP):样本的真实类别是正例,并且模型预测的结果也是正例

  2. 真阴性(True Negative,TN):样本的真实类别是负例,并且模型将其预测成为负例

  3. 假阳性(False Positive,FP):样本的真实类别是负例,但是模型将其预测成为正例

  4. 假阴性(False Negative,FN):样本的真实类别是正例,但是模型将其预测成为负例

4.ROC曲线

假正率为不同阈值下的横坐标,召回率为不同阈值下的纵坐标。

sklearn.metrics.roc_curve (y_true, y_score, pos_label=None, sample_weight=None,drop_intermediate=True)

参数:
y_true : 数组,形状 = [n_samples],真实标签
y_score : 数组,形状 = [n_samples],置信度分数,可以是正类样本的概率值,或置信度分数,或者decision_function返回的距离
pos_label : 整数或者字符串, 默认None,表示被认为是正类样本的类别
sample_weight : 形如 [n_samples]的类数组结构,可不填,表示样本的权重
drop_intermediate : 布尔值,默认True,如果设置为True,表示会舍弃一些ROC曲线上不显示的阈值点,这对于计算一个比较轻量的ROC曲线来说非常有用。这个类依次返回:FPR,Recall以及阈值。

模型在捕获少数类的能力变强的时候,尽量不误伤多数类,也就是说,随着recall的变大,FPR的大小越小越好。所以我们希望找到的最优点,其实是Recall和FPR差距最大的点。这个点,又叫做约登指数

过程:先计算概率predict_proba——然后给出阈值,判定所属类别——给出置信度decision_function——画出roc曲线。

你可能感兴趣的:(数据分析:Task5-数据建模及模型评估)