กำลังโหลดข้อมูลสำหรับโครงการ ML
สมมติว่าคุณต้องการเริ่มโครงการ ML แล้วสิ่งแรกและสำคัญที่สุดที่คุณต้องการคืออะไร? เป็นข้อมูลที่เราต้องโหลดเพื่อเริ่มโครงการ ML ใด ๆ สำหรับข้อมูลรูปแบบข้อมูลที่พบบ่อยที่สุดสำหรับโปรเจ็กต์ ML คือ CSV (ค่าที่คั่นด้วยจุลภาค)
โดยทั่วไป CSV เป็นรูปแบบไฟล์ง่ายๆที่ใช้ในการจัดเก็บข้อมูลแบบตาราง (ตัวเลขและข้อความ) เช่นสเปรดชีตเป็นข้อความธรรมดา ใน Python เราสามารถโหลดข้อมูล CSV ได้หลายวิธี แต่ก่อนที่จะโหลดข้อมูล CSV เราต้องพิจารณาถึงข้อควรพิจารณาบางประการ
การพิจารณาขณะโหลดข้อมูล CSV
รูปแบบข้อมูล CSV เป็นรูปแบบที่พบบ่อยที่สุดสำหรับข้อมูล ML แต่เราจำเป็นต้องดูแลเกี่ยวกับการปฏิบัติตามข้อควรพิจารณาที่สำคัญในขณะที่โหลดสิ่งเดียวกันลงในโครงการ ML ของเรา -
ส่วนหัวของไฟล์
ในไฟล์ข้อมูล CSV ส่วนหัวจะมีข้อมูลสำหรับแต่ละฟิลด์ เราต้องใช้ตัวคั่นเดียวกันสำหรับไฟล์ส่วนหัวและไฟล์ข้อมูลเนื่องจากเป็นไฟล์ส่วนหัวที่ระบุว่าควรตีความฟิลด์ข้อมูลอย่างไร
ต่อไปนี้เป็นสองกรณีที่เกี่ยวข้องกับส่วนหัวของไฟล์ CSV ซึ่งต้องพิจารณา -
Case-I: When Data file is having a file header - จะกำหนดชื่อให้กับแต่ละคอลัมน์ของข้อมูลโดยอัตโนมัติหากไฟล์ข้อมูลมีส่วนหัวของไฟล์
Case-II: When Data file is not having a file header - เราจำเป็นต้องกำหนดชื่อให้กับแต่ละคอลัมน์ของข้อมูลด้วยตนเองหากไฟล์ข้อมูลไม่มีส่วนหัวของไฟล์
ในทั้งสองกรณีเราต้องระบุสภาพอากาศอย่างชัดเจนว่าไฟล์ CSV ของเรามีส่วนหัวหรือไม่
ความคิดเห็น
ความคิดเห็นในไฟล์ข้อมูลใด ๆ มีความสำคัญ ในไฟล์ข้อมูล CSV ความคิดเห็นจะระบุด้วยแฮช (#) ที่จุดเริ่มต้นของบรรทัด เราจำเป็นต้องพิจารณาความคิดเห็นในขณะที่โหลดข้อมูล CSV ลงในโปรเจ็กต์ ML เพราะหากเรามีความคิดเห็นในไฟล์เราอาจต้องระบุขึ้นอยู่กับวิธีที่เราเลือกในการโหลดว่าจะคาดหวังความคิดเห็นเหล่านั้นหรือไม่
ตัวคั่น
ในไฟล์ข้อมูล CSV อักขระลูกน้ำ (,) เป็นตัวคั่นมาตรฐาน บทบาทของตัวคั่นคือการแยกค่าในฟิลด์ สิ่งสำคัญคือต้องพิจารณาบทบาทของตัวคั่นขณะอัปโหลดไฟล์ CSV ไปยังโปรเจ็กต์ ML เนื่องจากเราสามารถใช้ตัวคั่นอื่นเช่นแท็บหรือช่องว่างได้ แต่ในกรณีของการใช้ตัวคั่นที่แตกต่างจากตัวคั่นมาตรฐานเราจะต้องระบุให้ชัดเจน
คำคม
ในไฟล์ข้อมูล CSV เครื่องหมายอัญประกาศคู่ (“”) คืออักขระเครื่องหมายคำพูดเริ่มต้น สิ่งสำคัญคือต้องพิจารณาบทบาทของคำพูดในขณะที่อัปโหลดไฟล์ CSV ไปยังโปรเจ็กต์ ML เนื่องจากเรายังสามารถใช้เครื่องหมายคำพูดอื่นที่ไม่ใช่เครื่องหมายคำพูดคู่ แต่ในกรณีที่ใช้เครื่องหมายคำพูดที่แตกต่างจากอักขระมาตรฐานเราจะต้องระบุให้ชัดเจน
วิธีการโหลดไฟล์ข้อมูล CSV
ในขณะที่ทำงานกับโปรเจ็กต์ ML งานที่สำคัญที่สุดคือการโหลดข้อมูลลงในนั้นอย่างเหมาะสม รูปแบบข้อมูลที่พบบ่อยที่สุดสำหรับโครงการ ML คือ CSV และมีหลายรสชาติและมีปัญหาในการแยกวิเคราะห์ ในส่วนนี้เราจะพูดถึงวิธีการทั่วไปสามวิธีใน Python เพื่อโหลดไฟล์ข้อมูล CSV -
โหลด CSV ด้วย Python Standard Library
วิธีแรกและใช้มากที่สุดในการโหลดไฟล์ข้อมูล CSV คือการใช้ไลบรารีมาตรฐาน Python ซึ่งมีโมดูลในตัวที่หลากหลาย ได้แก่ csv moduleและฟังก์ชัน reader () ต่อไปนี้เป็นตัวอย่างของการโหลดไฟล์ข้อมูล CSV ด้วยความช่วยเหลือ -
Example
ในตัวอย่างนี้เราใช้ชุดข้อมูลดอกไอริสซึ่งสามารถดาวน์โหลดลงในไดเร็กทอรีท้องถิ่นของเราได้ หลังจากโหลดไฟล์ข้อมูลเราสามารถแปลงเป็นไฟล์NumPyอาร์เรย์และใช้สำหรับโครงการ ML ต่อไปนี้เป็นสคริปต์ Python สำหรับโหลดไฟล์ข้อมูล CSV -
ก่อนอื่นเราต้องนำเข้าโมดูล csv ที่จัดเตรียมโดยไลบรารีมาตรฐาน Python ดังนี้ -
import csv
ต่อไปเราต้องนำเข้าโมดูล Numpy สำหรับการแปลงข้อมูลที่โหลดเป็นอาร์เรย์ NumPy
import numpy as np
ตอนนี้ให้เส้นทางแบบเต็มของไฟล์เก็บไว้ในไดเร็กทอรีท้องถิ่นของเราโดยมีไฟล์ข้อมูล CSV -
path = r"c:\iris.csv"
จากนั้นใช้ฟังก์ชัน csv.reader () เพื่ออ่านข้อมูลจากไฟล์ CSV -
with open(path,'r') as f:
reader = csv.reader(f,delimiter = ',')
headers = next(reader)
data = list(reader)
data = np.array(data).astype(float)
เราสามารถพิมพ์ชื่อส่วนหัวด้วยสคริปต์บรรทัดต่อไปนี้ -
print(headers)
บรรทัดของสคริปต์ต่อไปนี้จะพิมพ์รูปร่างของข้อมูลเช่นจำนวนแถวและคอลัมน์ในไฟล์ -
print(data.shape)
บรรทัดสคริปต์ถัดไปจะให้ไฟล์ข้อมูลสามบรรทัดแรก -
print(data[:3])
Output
['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
(150, 4)
[ [5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
]
โหลด CSV ด้วย NumPy
อีกวิธีหนึ่งในการโหลดไฟล์ข้อมูล CSV คือฟังก์ชัน NumPy และ numpy.loadtxt () ต่อไปนี้เป็นตัวอย่างของการโหลดไฟล์ข้อมูล CSV ด้วยความช่วยเหลือ -
ตัวอย่าง
ในตัวอย่างนี้เราใช้ชุดข้อมูล Pima Indians ที่มีข้อมูลของผู้ป่วยเบาหวาน ชุดข้อมูลนี้เป็นชุดข้อมูลตัวเลขที่ไม่มีส่วนหัว นอกจากนี้ยังสามารถดาวน์โหลดลงในไดเร็กทอรีท้องถิ่นของเรา หลังจากโหลดไฟล์ข้อมูลเราสามารถแปลงเป็นอาร์เรย์ NumPy และใช้สำหรับโครงการ ML ต่อไปนี้เป็นสคริปต์ Python สำหรับโหลดไฟล์ข้อมูล CSV -
from numpy import loadtxt
path = r"C:\pima-indians-diabetes.csv"
datapath= open(path, 'r')
data = loadtxt(datapath, delimiter=",")
print(data.shape)
print(data[:3])
เอาต์พุต
(768, 9)
[ [ 6. 148. 72. 35. 0. 33.6 0.627 50. 1.]
[ 1. 85. 66. 29. 0. 26.6 0.351 31. 0.]
[ 8. 183. 64. 0. 0. 23.3 0.672 32. 1.]
]
โหลด CSV ด้วย Pandas
อีกวิธีหนึ่งในการโหลดไฟล์ข้อมูล CSV คือ Pandas และ pandas.read_csv()function. นี่คือฟังก์ชันที่ยืดหยุ่นมากที่ส่งกลับไฟล์pandas.DataFrameซึ่งสามารถใช้ในการวางแผนได้ทันที ต่อไปนี้เป็นตัวอย่างของการโหลดไฟล์ข้อมูล CSV ด้วยความช่วยเหลือ -
ตัวอย่าง
ที่นี่เราจะนำสคริปต์ Python สองตัวมาใช้โดยชุดแรกคือชุดข้อมูล Iris ที่มีส่วนหัวและอีกชุดหนึ่งใช้ชุดข้อมูล Pima Indians ซึ่งเป็นชุดข้อมูลตัวเลขที่ไม่มีส่วนหัว สามารถดาวน์โหลดชุดข้อมูลทั้งสองชุดลงในไดเร็กทอรีท้องถิ่นได้
Script-1
ต่อไปนี้เป็นสคริปต์ Python สำหรับการโหลดไฟล์ข้อมูล CSV โดยใช้ Pandas บนชุดข้อมูล Iris -
from pandas import read_csv
path = r"C:\iris.csv"
data = read_csv(path)
print(data.shape)
print(data[:3])
Output:
(150, 4)
sepal_length sepal_width petal_length petal_width
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
Script-2
ต่อไปนี้เป็นสคริปต์ Python สำหรับโหลดไฟล์ข้อมูล CSV พร้อมกับการระบุชื่อส่วนหัวด้วยโดยใช้ Pandas บนชุดข้อมูล Pima Indians Diabetes
from pandas import read_csv
path = r"C:\pima-indians-diabetes.csv"
headernames = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=headernames)
print(data.shape)
print(data[:3])
Output
(768, 9)
preg plas pres skin test mass pedi age class
0 6 148 72 35 0 33.6 0.627 50 1
1 1 85 66 29 0 26.6 0.351 31 0
2 8 183 64 0 0 23.3 0.672 32 1
ความแตกต่างระหว่างวิธีการข้างต้นที่ใช้สามวิธีในการโหลดไฟล์ข้อมูล CSV สามารถเข้าใจได้ง่ายด้วยความช่วยเหลือของตัวอย่างที่ให้มา