Sufficiency Economy
Group Blog
 
All blogs
 

Python : Machine Learning [6]

เรียนบทที่ 9 และ 10
เราสามารถ หาข้อมูล dataset มาทดสอบได้จากที่ web : kaggle และสามารถเขียน python วิเคราะห์ ข้อมูลได้ด้วย ... คงต้องไปลองเล่นดูหลังจบ course นี้ก่อน

ที่เหลือก็สอนการใช้ function พื้นฐานของ numpy ได้แก่
1. array สร้างarray ซึ่งมีข้อดีกว่าที่อยู่ใน python เพราะนำข้อมูลมาบวกกันได้เลย แต่ใน python จะเป็นการต่อข้อมูลแทน ให้ดูรูปข้างล่างจะเข้าใจ

2. arrange สร้าง array แบบตัวเลข อัตโนมัติ 
c = np.arange(10) แต่ถ้าให้มีการเพิ่มแบบ step ก็ให้เขียนแบบนี้ 
c = np.arange(0,20,2) เพิ่มทีละ 2 แต่ห้ามเกิน 20

3. การนำ array ของ numpy มา reshape ทำให้ได้ข้อมูล array หลายมิติ  เพราะส่วนใหญ่เราจะเห็นแค่ 2 มิติ แต่ดูงงๆ 1

4. สร้างarray มีค่าเป็นศูนย์ np.zeros(5) 
5. สร้างarray มีค่าเป็นหนึ่ง np.ones(5)
6. สร้าง identity matrix np.eye(5)

หมายเหตุ เพิ่งรู้วิธีจัดการ cell แบบ markdown เพื่อใช้อธิบาย โดยใช้ tag html ธรรมดาเลย อ่านจากที่ link นี้ครับ กดเลย




 

Create Date : 07 กันยายน 2563    
Last Update : 7 กันยายน 2563 20:44:31 น.
Counter : 57 Pageviews.  
(โหวต blog นี้) 

Python : Machine Learning [5]

เมื่อวานเรียนบทที่ 8 สอนเรื่อง Grouping Data
โดยใช้หลัก Split Apply Combine SAC งงส่ะ 2

res=df.groupby("START*")["MILES*"].agg(["mean"]).head(20)
ทำ grouping ด้วย column START* แล้วนำค่า MILES* มาคำนวณค่าเฉลี่ย และให้แสดงผลเพียง 20 บรรทัด

res.reset_index(inplace=True)
res.columns=["START_CITY","AVG_DIST"]

กำหนดชื่อ column ใหม่ ให้เข้าใจง่ายขึ้น แต่ต้อง reset_index ก่อนนะ งงๆ เหมือนกัน

res=df.groupby(["START*","STOP*"])["MILES*"].agg(["mean","max","min"]).head(20)
เพิ่มการคำนวณหาค่า max min จาก column MILES*

res=df.groupby(["START*"]).agg({"MILES*":["mean"],"START_DATE*":["min","max"]}).head(20)
ถ้าเราต้องการคำนวณค่า คนละcolumnกัน ต้องใช้ datetype แบบ dictionary {} แล้วกำหนดเป็นคู่ๆไป

df["START_DATE*"]=pd.to_datetime(df["START_DATE*"],format="%m/%d/%Y %H:%M")
START_DATE* ต้องแปลงให้เป็น datetime ก่อน ถึงจะคำนวณได้ ถ้าทำแล้วเกิด ERROR ให้ดูข้อมูล Uber.csv ที่ให้มาว่ามีบรรทัดได้ที่รูปแบบไม่ถูกต้อง ??

ทดลองก็ประมาณรูปข้างล่างครับ




ข้างล่างแสดงการ convert datetime





 

Create Date : 20 สิงหาคม 2563    
Last Update : 20 สิงหาคม 2563 21:30:22 น.
Counter : 79 Pageviews.  
(โหวต blog นี้) 

Python : Machine Learning [4]

วันนี้เรียน บทที่ 6,7 สอนเกี่ยวกับ การกรองข้อมูล การเรียงข้อมูล การเพิ่มcolumn
กรองข้อมูล คือการกำหนด condition ใน loc แล้วเลือกว่าจะให้แสดง column ใดบ้าง
ส่วน reset_index() เมื่อต้องการให้เรียงจาก 0 
df1=df.loc[df["MILES*"] >10,["MILES*"]].head(n=5).reset_index()
มีการใช้ isin ด้วย ดูรูปข้างล่าง
ถ้ามี 2 condition ก็ให้ใช้เครื่องหมาย & มาเชื่อม

การเรียงข้อมูล
ใช้ sort_values
df.sort_values(by=["START*","MILES*"],ascending=[True,False]).head(n=5)

การเพิ่ม column
ต้องใช้ numpy มาช่วย ประมาณนี้
import numpy as np
df["my_cat"] = np.where(df["MILES*"]>5,"Long","Short")
df.head(n=3)

ตอนแรกดูง่ายๆ หลังๆเริ่มสับสน 2





 




 

Create Date : 16 สิงหาคม 2563    
Last Update : 16 สิงหาคม 2563 15:05:43 น.
Counter : 62 Pageviews.  
(โหวต blog นี้) 

Python : Machine Learning [3]

วันนี้เรียน บทที่ 5 ซึ่งจะพูดถึง การ covert ข้อมูล การสรุปข้อมูลพื้นฐาน และการเลือกข้อมูล ใน pandas
รูปแบบ การ covert วันเวลา
pd.to_datetime("2020-02-16")
สามารถใส่เป็น list ได้ คือ pd.to_datetime(["2020-02-16","2001-03-18"])
ถ้าต้องการตรวจสอบว่าใส่วันที่ผิดหรือไม่ให้ใช้ 
pd.to_datetime(["2020-02-16","abc"],errors="coerce") มันจะไม่ error

การ convert ตัวเลขให้ ใช้ to_numeric

การสรุปข้อมูลพื้นฐาน เช่น
df.describe(include="all")
df.info
df["START*"].value_counts() ทำให้รู้  unique data

การเลือกข้อมูล df.iloc[0:5,0:4] 
ถ้าต้องการระบุชื่อ column ให้ใช้ df.loc["START*"] คือใส่ชื่อ column ที่ต้องการเลือก

ข้อสังเกต ถ้าเราเลือก column เดียว type จะเปลี่ยนจาก dataframe เป็น series ??

key short cut : run command ให้กด control + enter (ใน mac)
อีกอย่าง ถ้าต้องเก็บข้อมูลที่ทดลอง key ให้ save จะได้ file นามสกุล .ipynb ทำให้ไม่ต้องเสียเวลามาพิมพ์ใหม่






 




 

Create Date : 12 สิงหาคม 2563    
Last Update : 20 สิงหาคม 2563 20:33:47 น.
Counter : 76 Pageviews.  
(โหวต blog นี้) 

Python : Machine Learning [2]

วันนี้เรียน บทที่ 4 สอนเรื่อง Data Frame โดยใช้ pandas
ก่อนอื่น ต้องเปิด jupyter แล้ว upload ไฟล์ ขึ้นไป แล้วพิมพ์คำสั่ง
from pandas import read_csv
import pandas as pd จะได้เรียกใช้ ย่อๆ ได้ง่าย
df=pd.read_csv("ชื่อไฟล์ชนิด csv")
ข้อมูลก็จะเก็บในตัวแปรที่ชื่อว่า df และเขาก็สอนการเรียกดูข้อมูล และฟังก์ชั่นต่างๆ เช่น
พิมพ์ df ก็จะแสดงข้อมูลที่ load มา
type(df)
df.dtypes จะเห็นโครงสร้างข้อมูล เป็น object หรือ float64 และต่อไปก็สอนให้แก้ไข data type
df.head() ถ้าเรากดปุ่ม shift + tab จะมี tooltip คำอธิบายการใช้งานมาให้ดู
df.shape บอกจำนวนข้อมูล row และ column แต่แปลกเขาบอกว่าไม่ใช่ column แต่คือ series
df.tail()
วันนี้ก็ได้ประมาณนี้ครับ 19






 

Create Date : 10 สิงหาคม 2563    
Last Update : 10 สิงหาคม 2563 20:58:17 น.
Counter : 61 Pageviews.  
(โหวต blog นี้) 

1  2  3  4  5  6  

wink99_th
Location :
พิษณุโลก Thailand

[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 8 คน [?]




New Comments
Friends' blogs
[Add wink99_th's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.