กำลังโหลดข้อมูลสำหรับโครงการ 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 สามารถเข้าใจได้ง่ายด้วยความช่วยเหลือของตัวอย่างที่ให้มา