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

  • 相关阅读:
    Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤
    实习生面试经历
    Word2007中插入公式之后,公式上下有很大的空白
    参考文献规范格式
    Git学习笔记四--远程仓库
    Git学习笔记三--管理修改、撤销修改、删除文件
    Git学习笔记二--工作区和暂存区
    Git学习笔记一--创建版本库、添加文件、提交文件等
    Errors running builder 'DeploymentBuilder' on project '工程名'
    java中运算符与表达式
  • 原文地址:https://www.cnblogs.com/16264412xm/p/6692006.html
Copyright © 2020-2023  润新知