• 降维案例


    一、数据集介绍

     该案例描述的是一段时间内客户的订单,预测用户下一次将会买那些订单。

    数据集的信息如下:

    • products.csv  商品信息
    • order_products__prior.csv 订单与商品关系信息
    • orders.csv 订单信息
    • aisles.csv 商品所属的具体类别

    1、 products.csv

    import pandas as pd
    product_df = pd.read_csv(r'I:machine_learnexample_products.csv')
    product_df.head(10)

    该文件是产品数据,里面的字段有product_id(产品ID),product_name(产品名称),aisle_id(产品类型)等。

    2、order_products__prior.csv

    order_products__prior_df = pd.read_csv(r'I:machine_learnexample_order_products__prior.csv')
    order_products__prior_df.head(10)

    该文件是产品和订单数据,里面的字段有product_id(产品ID),order_id(订单ID)等。

     3、orders.csv

    orders_df = pd.read_csv(r'I:machine_learnexample_orders.csv')
    orders_df .head(10)

     该文件是订单数据,里面的字段有user_id(用户ID),order_id(订单ID)等。

    4、aisles.csv

    aisles_df = pd.read_csv(r'I:machine_learnexample_aisles.csv')
    aisles_df .head(10)

     该文件是产品类型数据,里面的字段有aisle_id(产品数据类型ID),aisle(产品类型名称)。

    二、预测

    现在探究的是用户和物品类型的关系:

    1、读取四张表

    import pandas as pd
    from sklearn.depositions import PCA
    
    product_df = pd.read_csv(r'I:machine_learnexample_products.csv')
    order_products__prior_df = pd.read_csv(r'I:machine_learnexample_order_products__prior.csv')
    orders_df = pd.read_csv(r'I:machine_learnexample_orders.csv')
    aisles_df = pd.read_csv(r'I:machine_learnexample_aisles.csv')

    2、合并四张表

    _mg = pd.merge(order_products__prior_df,product_df,on=['product_id','product_id'])
    _mg = pd.merge(_mg,orders_df,on=['order_id','order_id'])
    _ma = pd.merge(_mg,aisles_df,on=['aisle_id','aisle_id'])
    
    _ma.head(10) #输出

      上面就是用户(user_id)与产品类型(aisle)的关系,但是现在需要统计的每一个用户的产品类型,所以用到交叉表(特殊的分组表)。可以查出每一个用户aisle(产品类型)的个数。

    crossTab_df = pd.crosstab(_ma["user_id"],_ma["aisle"])
    crossTab_df #输出

    3、主成分分析 

    pca = PCA(n_components=0.9)
    data = pca.fit_transform(crossTab_df)
    data #输出

    可以看看输出的行列:

    data.shape
    """
    (206209, 27)
    """
  • 相关阅读:
    使用kendynet构建异步redis访问服务
    使用kendynet编写网关服务
    作为前端,我为什么选择 Angular 2?
    你必须知道的Javascript 系列
    JS日期(Date)处理函数总结
    JS数组(Array)处理函数总结
    消息推送之APNS
    消息推送之GCM
    Linux常用命令大全
    Sequential Container
  • 原文地址:https://www.cnblogs.com/shenjianping/p/12885703.html
Copyright © 2020-2023  润新知