这篇文章主要总结我在利用sklearn进行逻辑回归过程中,不同的策略对结果的影响,策略调整其实也提供了模型优化的方法。实例中所利用的样本是信用卡欺诈样本,具有分类样本不均衡的特性。
面对不均衡样本可以采用下采样策略和过采样策略,如果采用下采样策略,则需要从多数类样本中随机选择跟少数类样本相等的数量,共同构成一个训练集;如果采用过采样策略,则可以利用SMOTE算法随机生成少数类样本,与多数类样本数量保持一致。这里首先采用下采样策略:
from sklearn.model_selection import train_test_split
#下采样策略的数据只具备局部样本特征,所以选取全样本的一部分数据作为测试集
X = df.loc[:,df.columns!='Class']
y = df.loc[:,df.columns=='Class']
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3,random_state=0)
#下采样样本构造
number_fruad = len(df[df['Class']==1])
normal_index = df[df['Class']==0].index
chose_index = np.random.choice(normal_index,number_fruad,replace=False)
#将异常样本的索引构造成ndarray对象
frua