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来反映正确率,当然还有其他函数能给出更详细的比较结果

  • 相关阅读:
    解决百度网盘倍速需要会员问题
    npm run dev其实就是vue-cli-service serve
    git常见操作和git原理
    ajax promise三种状态
    ajax get请求
    vue2.0x methods中一个函数调用另外一个函数
    Web前端开发规范之文件存储位置规范
    大数据应用期末总评
    分布式文件系统HDFS 练习
    安装Hadoop
  • 原文地址:https://www.cnblogs.com/16264412xm/p/6692006.html
Copyright © 2011-2022 走看看