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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM