通过Ti-One机器学习平台玩转2020腾讯广告算法大赛:数据预处理(二)

简介: 通过Ti-One机器学习平台玩转2020腾讯广告算法大赛:数据预处理(二)

预处理

def reduce_mem_usage(df, verbose=True):
    numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']
    start_mem = df.memory_usage().sum() / 1024 ** 2
    for col in df.columns:
        col_type = df[col].dtypes
        if col_type in numerics:
            c_min = df[col].min()
            c_max = df[col].max()
            if str(col_type)[:3] == 'int':
                if c_min > np.iinfo(np.int8).min and c_max < np.iinfo(np.int8).max:
                    df[col] = df[col].astype(np.int8)
                elif c_min > np.iinfo(np.int16).min and c_max < np.iinfo(np.int16).max:
                    df[col] = df[col].astype(np.int16)
                elif c_min > np.iinfo(np.int32).min and c_max < np.iinfo(np.int32).max:
                    df[col] = df[col].astype(np.int32)
                elif c_min > np.iinfo(np.int64).min and c_max < np.iinfo(np.int64).max:
                    df[col] = df[col].astype(np.int64)
            else:
                if c_min > np.finfo(np.float16).min and c_max < np.finfo(np.float16).max:
                    df[col] = df[col].astype(np.float16)
                elif c_min > np.finfo(np.float32).min and c_max < np.finfo(np.float32).max:
                    df[col] = df[col].astype(np.float32)
                else:
                    df[col] = df[col].astype(np.float64)
    end_mem = df.memory_usage().sum() / 1024 ** 2
    if verbose: print('Mem. usage decreased to {:5.2f} Mb ({:.1f}% reduction)'.format(end_mem, 100 * (
                start_mem - end_mem) / start_mem))
    return df

参加过kaggle比赛的小伙伴一定很熟悉,这个就是在kaggle中常用的对dataframe减小内存的方法,我们直接拿来使用,这个方法也是fastai库中使用的

读取数据

我们将训练和测试数据合并,并打上标签

train_dir = "train_preliminary/"
test_dir = "test/"
click_train = pd.read_csv(train_dir + "click_log.csv")
click_train = reduce_mem_usage(click_train)
ad_train = pd.read_csv(train_dir + "ad.csv")
ad_train = reduce_mem_usage(ad_train)
click_log = click_train.merge(ad_train, how="left", on="creative_id", )
click_log["type"] = "train"
click_test = pd.read_csv(test_dir + "click_log.csv")
ad_test = pd.read_csv(test_dir + "ad.csv")
click_test = reduce_mem_usage(click_test)
ad_test = reduce_mem_usage(ad_test)
click_log_test = click_test.merge(ad_test, how="left", on="creative_id", )
click_log_test['type'] = "test"

image.png

click_all = click_log.append(click_log_test)

click_all是包含了所有数据的dataframe,可以先把它存起来,这样以后就拿来直接用了

click_all.to_pickle("all-raw.pkl")

上传到cos留个备份

ts.upload_data("all-raw.pkl",bucket="桶名")

image.png

会返回实际的存储地址,默认会建立一个data目录保存我们上传的数据

如果需要从cos获取数据时我们可以直接使用上面的wget命令进行下载,地址可以在cos里面文件详细信息页面中找到,直接复制对象地址即可

image.png

目录
相关文章
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】在使用K-means聚类算法时,如何选择K的值?
【5月更文挑战第11天】【机器学习】在使用K-means聚类算法时,如何选择K的值?
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】为什么K-means算法使用欧式距离度量?
【5月更文挑战第11天】【机器学习】为什么K-means算法使用欧式距离度量?
|
1天前
|
机器学习/深度学习 算法 数据可视化
【机器学习】描述K-means算法的步骤
【5月更文挑战第11天】【机器学习】描述K-means算法的步骤
|
1天前
|
机器学习/深度学习 人工智能 算法
【机器学习】K-means和KNN算法有什么区别?
【5月更文挑战第11天】【机器学习】K-means和KNN算法有什么区别?
|
2天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI
人工智能平台PAI
7 0
|
2天前
|
机器学习/深度学习 算法
【机器学习】比较朴素贝叶斯算法与逻辑回归算法
【5月更文挑战第10天】【机器学习】比较朴素贝叶斯算法与逻辑回归算法
|
2天前
|
机器学习/深度学习 数据采集 自然语言处理
经典机器学习算法——Pagerank算法(二)
PageRank 算法由 Google 创始人 Larry Page 在斯坦福读大学时提出,又称 PR——佩奇排名。主要针对网页进行排名,计算网站的重要性,优化搜索引擎的搜索结果。PR 值是表示其重要性的因子
|
2天前
|
机器学习/深度学习 数据采集 算法
经典机器学习算法——Pagerank算法(一)
PageRank 算法由 Google 创始人 Larry Page 在斯坦福读大学时提出,又称 PR——佩奇排名。主要针对网页进行排名,计算网站的重要性,优化搜索引擎的搜索结果。PR 值是表示其重要性的因子
经典机器学习算法——Pagerank算法(一)
|
2天前
|
机器学习/深度学习 人工智能 算法
高性价比发文典范——101种机器学习算法组合革新骨肉瘤预后模型
随着高通量测序技术的飞速发展和多组学分析的广泛应用,科研人员在探索生物学奥秘时经常遇到一个令人又爱又恼的问题:如何从浩如烟海的数据中挖掘出潜在的疾病关联靶点?又如何构建一个全面而有效的诊断或预后模型?只有通过优雅的数据挖掘、精致的结果展示、深入的讨论分析,并且辅以充分的湿实验验证,我们才能锻造出一篇兼具深度与广度的“干湿结合”佳作。
13 0
高性价比发文典范——101种机器学习算法组合革新骨肉瘤预后模型
|
4天前
|
机器学习/深度学习 存储 人工智能
【人工智能】机器学习算法综述及常见算法详解
【人工智能】机器学习算法综述及常见算法详解