zoukankan      html  css  js  c++  java
  • preprocessing data

    网上的例子:

    https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/kaggle/titanic.ipynb

    作为一个data mining的雏,这两天试了试kaggle上面的beginner competition,就是著名的泰坦尼克幸存分析,我遇到的主要的问题就是如何处理缺失数据

    按照常识在使用scikit-learn处理数据之前,都要把文字数据转变成数字,否则无法使用core function计算

    在这个例子中,自然是做classification,所以呢不可能把文字转换成字典映射数字,因为诸如性别男女,客舱等级,上船码头都是categorical的数据,所以特别容易转换成integer

    转换的方法也很简单,pandas可以方便的将一个column的类型转换成category,然后再用与category index相同长度的自然数升序数组来rename_categories

     另外一种方法是得到这个column的unique值,然后用dict(zip(unique vales,range(0,len(unique values)+1)得到自然数升序数组和unique值之间的映射,然后再用pandas的map函数将自然数一一对应的添加到dataframe里

    说道处理缺失的数据,scikit有个module叫imputer,sklearn.Imputer,推算者,推算子,直接将nan或者为0的数据用mean或者median或者最常出现的数据代替

    而我看到网上一个例子是没有使用imputer,而是在自己对数据进行初步的直观分析后,在每个groupby里各自使用该group中的median进行替代

    接下来就该使用回归方法(linear_model)或者分类方法(classification)来通过X建立关系式,然后预测测试值,最后评估模型的预测正确率

    网上的例子使用random forest,我使用的是DecisionTree,在使用我的相对比较简单的预处理数据的情况下他得到了79%的正确率,而我只得到了77%,我还是这用logisticregression和svm结果非常不理想啊,至于为什么还没有研究

    我还没有尝试使用它的groupby+median的数据预处理方法,例子给出的结果是83%的正确率

    评估结果的module叫metric,他能通过比较预测得到的Y_test和真实值Y_true得到一个score来反映正确率,当然还有其他函数能给出更详细的比较结果

  • 相关阅读:
    Shiro学习(一)总体介绍
    Spring-MVC理解之一:应用上下文webApplicationContext
    现代软件工程 第十四章 【质量保障】 练习与讨论
    rtsp 流媒体服务器,播放器
    ios app 打包
    xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH ​
    Bootstrap日期和时间表单组件
    微信小程序组件action-sheet
    微信小程序组件radio
    微信小程序组件slider
  • 原文地址:https://www.cnblogs.com/16264412xm/p/6692006.html
Copyright © 2011-2022 走看看