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

  • 相关阅读:
    高阶函数 map
    高阶函数_filter
    sort和sorted方法的使用
    一个函数作为另外一个函数的参数
    匿名函数
    jenkins+Xcode+蒲公英实现ipa自动打包发布全攻略
    iOS 画贝塞尔曲线 连续曲线 平滑曲线 曲线图表
    基于WebRTC实现iOS端音频降噪功能
    苹果ios音频的回声消除处理
    iOS实现录音功能
  • 原文地址:https://www.cnblogs.com/16264412xm/p/6692006.html
Copyright © 2011-2022 走看看