MLプロジェクトのデータ読み込み
MLプロジェクトを開始したい場合、最初に必要な最も重要なことは何ですか?これは、MLプロジェクトを開始するためにロードする必要のあるデータです。データに関して、MLプロジェクトのデータの最も一般的な形式はCSV(コンマ区切り値)です。
基本的に、CSVは、スプレッドシートなどの表形式のデータ(数値とテキスト)をプレーンテキストで保存するために使用される単純なファイル形式です。Pythonでは、さまざまな方法でCSVデータを読み込むことができますが、CSVデータを読み込む前に、いくつかの考慮事項に注意する必要があります。
CSVデータの読み込み時の考慮事項
CSVデータ形式はMLデータの最も一般的な形式ですが、MLプロジェクトに同じものを読み込む際には、次の主要な考慮事項に注意する必要があります。
ファイルヘッダー
CSVデータファイルでは、ヘッダーに各フィールドの情報が含まれています。データフィールドの解釈方法を指定するのはヘッダーファイルであるため、ヘッダーファイルとデータファイルに同じ区切り文字を使用する必要があります。
以下は、考慮しなければならないCSVファイルヘッダーに関連する2つのケースです-
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であり、さまざまなフレーバーとさまざまな解析の難しさがあります。このセクションでは、CSVデータファイルをロードするためのPythonの3つの一般的なアプローチについて説明します。
Python標準ライブラリでCSVをロードする
CSVデータファイルをロードするための最初で最も使用されているアプローチは、さまざまな組み込みモジュールを提供するPython標準ライブラリの使用です。 csv moduleおよびreader()関数。以下は、CSVデータファイルを使用してロードする例です-
Example
この例では、ローカルディレクトリにダウンロードできるアイリスフラワーデータセットを使用しています。データファイルをロードした後、次のように変換できますNumPy配列し、MLプロジェクトに使用します。以下は、CSVデータファイルをロードするためのPythonスクリプトです-
まず、Python標準ライブラリが提供するcsvモジュールを次のようにインポートする必要があります-
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)
次のスクリプト行は、データファイルの最初の3行を示します-
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]
]
NumPyでCSVを読み込む
CSVデータファイルをロードする別のアプローチは、NumPyおよびnumpy.loadtxt()関数です。以下は、CSVデータファイルを使用してロードする例です-
例
この例では、糖尿病患者のデータを持つPima IndiansDatasetを使用しています。このデータセットは、ヘッダーのない数値データセットです。ローカルディレクトリにダウンロードすることもできます。データファイルを読み込んだ後、それをNumPy配列に変換して、MLプロジェクトに使用できます。以下は、CSVデータファイルをロードするためのPythonスクリプトです-
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を読み込む
CSVデータファイルをロードする別のアプローチは Pandas そして pandas.read_csv()function。これは、を返す非常に柔軟な関数です。pandas.DataFrameすぐにプロットに使用できます。以下は、CSVデータファイルを使用してロードする例です-
例
ここでは、2つのPythonスクリプトを実装します。1つはヘッダーのあるIrisデータセットを使用するもので、もう1つはヘッダーのない数値データセットであるPima IndiansDatasetを使用するものです。両方のデータセットをローカルディレクトリにダウンロードできます。
Script-1
以下は、アイリスデータセットでパンダを使用してCSVデータファイルをロードするためのPythonスクリプトです-
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
以下は、CSVデータファイルをロードするためのPythonスクリプトであり、ヘッダー名も提供します。PimaIndiansDiabetesデータセットでPandasを使用します-
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データファイルをロードするために使用された上記の3つのアプローチの違いは、与えられた例の助けを借りて簡単に理解することができます。