Machine-learning-with-python-data-loading-for-ml-projects
MLプロジェクトのデータ読み込み
MLプロジェクトを開始する場合、最初に必要な最も重要なことは何でしょうか? MLプロジェクトを開始するためにロードする必要があるデータです。 データに関して、MLプロジェクトのデータの最も一般的な形式はCSV(コンマ区切り値)です。
基本的に、CSVは、スプレッドシートなどの表形式のデータ(数値とテキスト)をプレーンテキストで保存するために使用される単純なファイル形式です。 Pythonでは、さまざまな方法でCSVデータを読み込むことができますが、CSVデータを読み込む前に、いくつかの考慮事項に注意する必要があります。
CSVデータの読み込み中の考慮事項
CSVデータ形式はMLデータの最も一般的な形式ですが、MLプロジェクトに同じデータを読み込む際には、次の主要な考慮事項に注意する必要があります。
ファイルヘッダー
CSVデータファイルでは、ヘッダーに各フィールドの情報が含まれています。 データフィールドの解釈方法を指定するのはヘッダーファイルであるため、ヘッダーファイルとデータファイルに同じ区切り文字を使用する必要があります。
以下は、考慮する必要があるCSVファイルヘッダーに関連する2つのケースです-
- ケースI:データファイルにファイルヘッダーがある場合-データファイルにファイルヘッダーがある場合、データの各列に名前が自動的に割り当てられます。
- ケースII:データファイルにファイルヘッダーがない場合-データファイルにファイルヘッダーがない場合、データの各列に名前を手動で割り当てる必要があります。
どちらの場合も、CSVファイルにヘッダーが含まれているかどうかを明示的に指定する必要があります。
コメント
データファイルのコメントには重要な意味があります。 CSVデータファイルでは、コメントは行の先頭にハッシュ(#)で示されます。 CSVデータをMLプロジェクトにロードする際にコメントを考慮する必要があります。ファイルにコメントがある場合、ロードするために選択した方法、それらのコメントを期待するかどうかを示す必要があるためです。
デリミタ
CSVデータファイルでは、コンマ(、)文字が標準の区切り文字です。 区切り文字の役割は、フィールドの値を区切ることです。 CSVファイルをMLプロジェクトにアップロードするときに区切り文字の役割を考慮することは重要です。これは、タブや空白などの別の区切り文字も使用できるためです。 ただし、標準の区切り文字とは異なる区切り文字を使用する場合は、明示的に指定する必要があります。
引用
CSVデータファイルでは、二重引用符(“”)マークがデフォルトの引用文字です。 CSVファイルをMLプロジェクトにアップロードするときは、二重引用符以外の引用文字も使用できるため、引用の役割を考慮することが重要です。 ただし、標準の引用符とは異なる引用符を使用する場合は、明示的に指定する必要があります。
CSVデータファイルをロードする方法
MLプロジェクトでの作業中、最も重要なタスクはデータを適切にロードすることです。 MLプロジェクトの最も一般的なデータ形式はCSVであり、さまざまな種類があり、解析するのが困難です。 このセクションでは、PythonでCSVデータファイルをロードする3つの一般的なアプローチについて説明します-
Python標準ライブラリでCSVを読み込む
CSVデータファイルを読み込むための最初で最も使用されるアプローチは、さまざまな組み込みモジュール、つまり_csv module_と_reader()function_を提供するPython標準ライブラリの使用です。 以下は、それを使用してCSVデータファイルをロードする例です-
例
この例では、ローカルディレクトリにダウンロードできるiris _flower data set_を使用しています。 データファイルを読み込んだ後、次のように変換できます。
NumPy
まず、次のように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])
出力
['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
(150, 4)
[[Load CSV with NumPy
Another approach to load CSV data file is _NumPy_ and _numpy.loadtxt()_ function. The following is an example of loading CSV data file with the help of it −
==== Example
In this example, we are using the Pima Indians Dataset having the data of diabetic patients. This dataset is a numeric dataset with no header. It can also be downloaded into our local directory. After loading the data file, we can convert it into _NumPy_ array and use it for ML projects. The following is the Python script for loading CSV data file −
[source,prettyprint,notranslate]
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])
==== Output
[source,result,notranslate]
(768、9)[[CSVをパンダでロード
CSVデータファイルを読み込む別の方法は、_Pandas_および_pandas.read_csv()function_によるものです。 これは、プロットにすぐに使用できるpandas.DataFrameを返す非常に柔軟な関数です。 以下は、それを使用してCSVデータファイルをロードする例です-
例
ここでは、2つのPythonスクリプトを実装します。1つ目はヘッダーを持つIrisデータセットを使用し、もう1つはヘッダーのない数値データセットである_Pima Indians Dataset_を使用することです。 両方のデータセットをローカルディレクトリにダウンロードできます。
- スクリプト-1 *
以下は、Iris _Data set_で_Pandas_を使用してCSVデータファイルをロードするためのPythonスクリプトです-
from pandas import read_csv
path = r"C:\iris.csv"
data = read_csv(path)
print(data.shape)
print(data[:3])
出力
(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
- スクリプト-2 *
以下は、CSVデータファイルを読み込むためのPythonスクリプトであり、Pima Indians DiabetesデータセットでPandaを使用して、ヘッダー名も提供します-
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])
出力
(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つのアプローチの違いは、与えられた例の助けを借りて簡単に理解できます。