2023年2月13日 星期一

跟著課程、書做~~AIOT大數據、python大數據資料分析

字型"Consolas"可以區分出大寫O跟數字0的差別,數字0中間會有斜線。monospace就沒有@@
感謝亂馬客的分享感謝John分享實實在在學人工智慧,寫得很白話

書:








  1. 8.9-2:從range(0,100)跑一百次數字,用 i % 10 == 0分段,但會導致第一個為一段,第二個~第十個又一段,看colab程式碼。
    8.9.5:自寫的標準差跟statistics的標準差,答案有差@@
  2. 9.5.1:要建立二維,一直都想要用lst[i][j] = random.randint(),有建立lst[[0]*column]*row大小,但這樣的列的數字會一樣@@
    成功了,在第一個 for i in range(n):內新建立一個陣列 lst.append([0]*column)。
    9.5.5:好像要用三層的for,原本只用了兩層的for,但只有斜對角的答案是對的,所以加總有誤。來試試看三層for,成功。
  3. 10.1:colab無法修改寫入檔案@@所以用jupyter。
  4. .
  5. .
  6. 13-42,讀取CSV時,會出現 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte 。
    其實有用EXCEL內建的web選項,另存時存成UTF8,但也沒用@@
    這時只要將檔案用notepad++去Convert to utf8就可以囉~
    但後來用EXCEL開時就出現亂碼@@notepad++看是正常的~~
    P.13-42,計算各商品的數量,感謝plusone分享
    P.13-50,pandas找兩個條件時,不能用and,要用 &。
  7. 視覺化,matplotlib,P14-6有很多參數可以參考。

 



課程:

  1. 2_2_pandas:讀取CSV檔,因為df1 = sort_index 排好了,但下面又跑一次df1,等於又去抓CSV原本的模樣,所以才會覺得沒有排序。

    日期排序的時候,因為10月份會在2月份前面,感謝老師說明,但隔天練習就忘了@@感謝程式人生分享,所以要將df['DOB'] = pd.to_datetime(df['DOB']),書本p13-42也有提到。

    loc用法:df.loc[ index , [ 'columns名稱1' , 'columns名稱2' , ...]  ] ,其中若是index有名稱(dates),就不能使用 0 : 5 ,要使用'20221010' : '20221020' 。

    DataFrame 取單獨位置的值,df.loc [i , 'product'] == 'iphone',其中i 用for迴圈跑一次。一般的陣列直接可以用df[i] 跑出值。

    pandas的 agg (aggregate)有四個(min, max, mean, median)感謝Mike的說明。describe則多了標準差及數量,感謝W3CSchool
    1. sklearn:跑線性回歸,步驟有二。1將資料轉入 DataFrame,2將資料轉入 回歸model
      1將資料變成DataFrame,有時讀到很多資料,取兩個要推估的
      2-1-1:取得兩筆資料(兩個陣列,例如:T溫度與S銷售量)
      2-1-2:import pandas,將資料變成DataFrame(並注意兩筆的關係,input = 溫度,output = 銷售量,意思是要輸入溫度,推估出銷售量)
      2-1-3:import matplotlib.pyplot,將資料點在plot上(scatter點散圖)
      2將資料轉入回歸model
      2-2-1:import sklearn 導入迴歸分析,建立一個空的model ,並將T、S放入( model.fit(T,S) )
      2-2-2:利用溫度來推估其他的銷售量,model.predict(T)
      2-2-3:再畫一次plot,將點散圖 及 回歸線 放上。

    2. Cancer範例:來實作Titanic,感謝CH.Tseng分享,連姓名、票價都有更詳細的分析喔。
      在DataFrame要取代裡面的值,建議先df1 = df,保留原始資料,再用df1去修改。
      df1.isnull().sum() #看有哪些是nan值 df1['Age'] = df1['Age'].fillna(age_mean) #將nan 填入平均值
      df1 = df1.drop(['Cabin''PassengerId'],  axis =1) #刪除 N 行
      df1['Sex'] = df1['Sex'].map({'female':0'male':1}) #將性別 數字化
    3. Titanic範例:train_test_split中,random_state影響很大,設為0(隨機)出現[男生1,頭艙1] = "死亡"。設為3,則出現"生還"。感謝Eason分享分析

    4. 購買顯卡(利用GPU加速)要注意的地方。pycharm2021.3.3、python3.9、opencv-python、keras、tensorflow、keras-datasets、numpy。跑起來CPU100%,哇@@@

    5. 感謝10程式中講解KNN,所以是用KNN來歸類這是屬於哪個群組的。
      感謝summer說明subplot

    6. 感謝有人提問keras的reshape的參數guancioul分享loss的函式
      卷積因為有reshape,所以之後要畫圖都要再reshape一次???
      可以調整參數跑跑看【Conv2D、卷積池化層、優化器(感謝夏恩?的分享有哪些優化器)】
      Conv2D→64,7層,adam,test_acc結果:0.908
      Conv2D→16,7層,adam,test_acc結果:0.891
      Conv2D→128,7層,adam,test_acc結果:0.904
      Conv2D→64,5層,adam,test_acc結果:0.914
      Conv2D→64,9層,adam,test_acc結果:0.883
      Conv2D→64,7層,sgd,test_acc結果:0.841












沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。