zoukankan      html  css  js  c++  java
  • 机器学习进度03(instacart降维案例、总结)

    案例:探究用户对物品类别的喜好细分降维

     

    数据如下:

    • order_products__prior.csv:订单与商品信息

      • 字段:order_id, product_id, add_to_cart_order, reordered
    • products.csv:商品信息

      • 字段:product_id, product_name, aisle_id, department_id
    • orders.csv:用户的订单信息
      • 字段:order_id,user_id,eval_set,order_number,….
    • aisles.csv:商品所属具体物品类别
      • 字段: aisle_id, aisle

     需求:

    分析

    • 合并表,使得user_id与aisle在一张表当中
    • 进行交叉表变换
    • 进行降维

    完整代码

    #案例
    def anli():
        # 1、获取数据集
        # ·商品信息- products.csv:
        # Fields:product_id, product_name, aisle_id, department_id
        # ·订单与商品信息- order_products__prior.csv:
        # Fields:order_id, product_id, add_to_cart_order, reordered
        # ·用户的订单信息- orders.csv:
        # Fields:order_id, user_id,eval_set, order_number,order_dow, order_hour_of_day, days_since_prior_order
        # ·商品所属具体物品类别- aisles.csv:
        # Fields:aisle_id, aisle
        products = pd.read_csv("./instacart/products.csv")
        order_products = pd.read_csv("./instacart/order_products__prior.csv")
        orders = pd.read_csv("./instacart/orders.csv")
        aisles = pd.read_csv("./instacart/aisles.csv")
    
        # 2、合并表,将user_id和aisle放在一张表上
        # 1)合并orders和order_products on=order_id tab1:order_id, product_id, user_id
        tab1 = pd.merge(orders, order_products, on=["order_id", "order_id"])
        # 2)合并tab1和products on=product_id tab2:aisle_id
        tab2 = pd.merge(tab1, products, on=["product_id", "product_id"])
        # 3)合并tab2和aisles on=aisle_id tab3:user_id, aisle
        tab3 = pd.merge(tab2, aisles, on=["aisle_id", "aisle_id"])
    
        # 3、交叉表处理,把user_id和aisle进行分组
        table = pd.crosstab(tab3["user_id"], tab3["aisle"])
    
        # 4、主成分分析的方法进行降维
        # 1)实例化一个转换器类PCA
        transfer = PCA(n_components=0.95)
        # 2)fit_transform
        data = transfer.fit_transform(table)
        print("形状:
    ",data.shape)
        return None
    if __name__=="__main__":
        anli()

    总结:

    1、数据集的结构是什么?

    答案: 特征值+ 目标值

    2、机器学习算法分成哪些类别? 如何分类

    答案: 根据是否有目标值分为 监督学习和非监督学习监督学习

    根据目标值的数据类型:目标值为离散值就是分类问题

    ​ 目标值为连续值就是回归问题

    3、什么是标准化? 和归一化相比有什么优点?

    答案: 标准化是通过对原始数据进行变换把数据变换到均值为0,方差为1范围内

    ​ 优点: 少量异常点, 不影响平均值和方差, 对转换影响小

  • 相关阅读:
    jvm调优监控工具jps、jstack、jmap、jhat、jstat使用详解
    JS中Date和时间戳转换
    HashMap源码窥探
    HashMap,TreeMap,LinkedHashMap的默认排序
    hibernate-delete(Entity)的顺序问题
    macOS通过ssh使用PEM登录
    SpringMvc-<context:component-scan>使用说明
    macOS安装RZ,SZ
    CentOS6.8下yum安装Nginx
    第K人||约瑟夫环(链表)
  • 原文地址:https://www.cnblogs.com/dazhi151/p/14300576.html
Copyright © 2011-2022 走看看