Datawhale 算法实战第1期 Task 1.1

1 概述

看到你们的代码和文档,你们都很优秀,无可挑剔,继续加油~~
这里给小伙伴几点代码相关建议,可以参考下

2 代码优化

2.1 dataframe数据提取的方法

@all 可能是参考代码的原因,我有个看起来更加Dataframes的数据提取的方法,可以参考:

# 先把y提取出来
y = data["status"]
# 再删除y
x = data_all.drop(["status"], axis=1)

更多的 Dataframes 的操作可以参考 http://t.cn/EUhteZK

@004 查了官方文档:http://t.cn/EUhcVgW train_test_split 支持输入 是 lists列表,numpy数组,matrices矩阵,dataframes格式的数据,

sklearn.model_selection.train_test_split(*arrays, **options)
*arrays : sequence of indexables with same length / shape[0]
Allowed inputs are lists, numpy arrays, scipy-sparse matrices or pandas dataframes.

使用的时候可以不用as_matrix()转换格式

#用pandas读取data_all.csv中的数据
data = pd.read_csv("data_all.csv")
#已知status是标签,所以将剔除status后的数据集作为特征集,同时用as_matrix()将数据框转为矩阵
X = data.drop(columns=["status"]).as_matrix()
#只提取数据集中的status这一列作为标签集,同时用as_matrix()将数据框转为矩阵
y = data[["status"]].as_matrix()
#由于标签集格式要求是一维数组,所以用ravel()将二维数据转一维数组
y = y.ravel()

@012 提取数据的时候,x和y 的对应关系是不是写反了,看着不是常用的含义

# 划分数据集
df_X = data_all['status']
df_y = data_all.drop(columns=['status'])
y_train, y_test, X_train, X_test = train_test_split(df_X, df_y, test_size=0.3,random_state=2018)
print("训练集数量:", X_train.shape[0], "测试集数量:", X_test.shape[0])

2.2 AUC的计算可以直接调包

@010 @013 看到你们自己写了这部分的代码,我自己也在整理这部分的知识,建议非开源可查的代码可以多加注释和说明,不然很难理解到这部分的内容,另外sklearn有可以直接调用的包,官方文档 可以参考下:

from sklearn.metrics import roc_auc_score
print('LR fit finished, auc: {}'.format(roc_auc_score(y_test, predictions)))

关于ACC和AUC的计算可以整理一下原理,可以参考知乎的文章 https://www.zhihu.com/question/39840928

2.3 Warnings警告的处理

@009 可以使用这段代码去除warnings 的警告

# 去除 warnings 的警告
import warnings
warnings.filterwarnings('ignore')

但是不能滥用,有时候排查问题的时候,还是需要通过 warnings 信息看出其中的端倪

猜你喜欢

转载自blog.csdn.net/q370835062/article/details/84938309
今日推荐