• kaggle 从零开始记录遇到的问题


    首先是数据的处理:

    标准化,特征的选择等...在此选用sklearn库http://scikit-learn.org/stable/index.html)。

    英文在短时间内理解起来还是有些困难,因此找了些中文资料

    1)ML神器:sklearn的快速使用

    2) python常用库 - NumPy 和 sklearn入门

    3) 数据的缺值补全-sklearn imputer

    4) 特征选择

    5) 数据预处理-标准化

    在此列举在编程过程中出现的错误

    1) TypeError: 'NoneType' object is not subscriptable

    这个问题是因为读csv的时候读到最后一行为空行导致的,在读csv时需要添加代码限定。

    train = pd.read_csv(path + 'train.csv', skiprows=range(1,149903891), nrows=35000000, usecols=columns, dtype=dtypes)

    2)TypeError: unbound method fit_transform() must be called with StandardScaler instance as first argument (got ndarray instance instead)

    发生这个问题的代码入下:

    y_normalized = StandardScaler.fit_transform(train['AQI'].values.reshape(-1,1))
    

    这段代码主要用于数据预处理阶段,进行数据拟合和标准化,问题出现的原因是StandardScaler需要首先定义一个实例

    ss = StandardScaler()
    y_normalized = ss.fit_transform(train['AQI'].values.reshape(-1,1))
    

    另外,关于StandardScaler的fit_transform和transform方法比较可参见:https://blog.csdn.net/quiet_girl/article/details/72517053

    3) ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

    由于输入存在空值,无穷大/小或超出float64类型的数。

    解决方法参见:

    https://blog.csdn.net/u013764485/article/details/53012978

    https://stackoverflow.com/questions/29060962/a-value-too-large-for-dtypefloat64

    https://datascience.stackexchange.com/questions/11928/valueerror-input-contains-nan-infinity-or-a-value-too-large-for-dtypefloat32

    在此列举一些编程过程中的经验总结

    数据预处理阶段:

    经过数据的标准化处理后会存在负值,但是我们发现,会出现以下问题ValueError: Input X must be non-negative.

    可以手动处理,先将ndarry类型的y_normalized转成list,然后对每个元素进行下述操作

    def normal(target,min,max):
        data = (target[0] - min)/(max - min)
        return data
    
  • 相关阅读:
    图片的下方与父元素有间隙兼容性解决方案
    vscode 实用插件
    给网页title前面上图标
    网站换肤
    基于面向对象编程的设计模式
    点击获取验证码进行60秒倒计时
    JVM--内存模型与线程
    JVM学习--jvm监控和故障处理工具
    JVM--GC学习
    JVM--Java类加载机制
  • 原文地址:https://www.cnblogs.com/o-din/p/8592206.html
Copyright © 2020-2023  润新知