sklearn, Numpy以及Pandas


pandas里面的對於數據操作比如where,drop以及dropna等都會有一個屬性:inplace,這個單詞意思是原地,如果inplace=true代表數據本身要執行該操作;如果inplace=false(默認)代表操作影響的是數據一個副本(copy),返回的也是該副本;所以如果是drop,inplace應該是true
 
DataFrame里面的corr其實是(線性)相關性,什么是相關性?就是變量A的增長是否導致B的增長(減少)
DataFrame在聚集操作(比如計算均值)的時候,是可以從兩個維度來進行計算,axis=0是縱向,axis=1是橫向;對於一個m行,n列的數據,df.mean(axis=0)返回的是一行n列數據,因為在縱向上進行聚集;如果df.mean(axis=1)則代表是橫向聚集,於是是一列m行數據。
  num_attribs=list(housing_num)
  num_attribs返回的是列名
 
  TypeError Traceback (most recent call last) <ipython-input-178-70bca072c4f7> in <module>() 1 from sklearn.model_selection import GridSearchCV 2 param_grid={ ----> 3 {'n_estimators':[3, 10, 30], 'max_features':[2,4,6,8]},{'bootstrap':[False], 'n_estimators':[3,10], 'max_features':[2,3,4]} 4 } 5 TypeError: unhashable type: 'dict'
  這個是因為param_grid應該是[],而不是{};故爆此異常。
 
  關於pyton里面的zip
1   a = [1,2,3]
2   b = [4,5,6]
3   c = [4,5,6,7,8]
4   zipped = zip(a,b) # 打包為元組的列表
  >> [(1, 4), (2, 5), (3, 6)]
    zip(a,c) # 元素個數與最短的列表一致 
  >> [(1, 4), (2, 5), (3, 6)]
    zip(*zipped) # 與 zip 相反,可理解為解壓,返回二維矩陣式 
  >> [(1, 2, 3), (4, 5, 6)]
 
dataframe里面drop並不改變原始數據集(默認inplace=false),只是返回了操作后的數據集,如下例:strat_train_set其實並沒有刪除median_house_value列,但是housing確實沒有該列的數據(housing是strat_train_set的一個副本,執行drop是housing這個副本)。
1 housing = strat_train_set.drop("median_house_value", axis=1)
2 housing_labels = strat_train_set["median_house_value"].copy()
 
注意dataframe的where條件,第一個謂詞判斷(條件判斷),第二個是如果謂詞判斷不滿足(條件返回為false),則替換為該值。第三個參數則是代表數據是否要覆蓋當前數據集,如果True則是覆蓋當前數據及,如果為false則不修改當前數據集,而是創建一個拷貝,然后對於拷貝數據集進行修改;如果設置為False需要接收返回值,因為下面的例子中“inplace=True”,所以修改是發生在當前數據集的,所以不需要接收返回值。
  housing["income_cat"].where(housing["income_cat"] > 5, 5.0, inplace=True) 
 StratifierShuffleSplit,其實是StratifierKFloder和ShufflerSplit的組成,是交叉驗證的實現。看一下下面的代碼,注意這里train_index,以及test_index返回的其實是數組,這里編譯器的處理和Java不同,java是逐個遍歷,逐個處理,但是對於python而言,是一次性獲取所有的值(train_index以及test_index都是數組),然后把數組扔給housing,讓housing去遍歷然后返回值給strat_train_set以及strat_test_set。
1 split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
2 for train_index, test_index in split.split(housing, housing["income_cat"]):
3   print(str(train_index) + ";" + str(test_index) + "\n")
4   strat_train_set = housing.loc[train_index]
5   strat_test_set = housing.loc[test_index]

 

 


免責聲明!

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



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