私の理解では、scikit-learnは2D配列である(n-sample、n-feature)形式のデータを受け入れます。フォームにデータがあると仮定すると...
Stock prices indicator1 indicator2
2.0 123 1252
1.0 .. ..
.. . .
.
これをインポートするにはどうすればよいですか?
これはCSVファイルではありません。これは単なるスペース区切りファイルです。欠損値がないと仮定すると、これをdata
と呼ばれるNumpy配列に簡単にロードできます。
import numpy as np
f = open("filename.txt")
f.readline() # skip the header
data = np.loadtxt(f)
株価が予測したいものである場合(scikit-learnでのy
値)、次を使用してdata
を分割する必要があります
X = data[:, 1:] # select columns 1 through end
y = data[:, 0] # select column 0, the stock price
あるいは、 standard Python csv
module をマッサージして、このタイプのファイルを処理できる場合があります。
numpy loadtxt の非常に優れた代替手段は Pandasのread_csv です。データはPandasデータフレームに読み込まれます。一部の列にテキストが含まれ、他の列に数字が含まれるなど、混合データ型を処理できるという大きな利点があります。 as_matrix 。Pandasも Excelファイルやその他の形式のファイルの読み取り/書き込み でnumpy配列に変換します。
「mydata.csv」という名前のcsvファイルがある場合:
point_latitude,point_longitude,line,construction,point_granularity
30.102261, -81.711777, Residential, Masonry, 1
30.063936, -81.707664, Residential, Masonry, 3
30.089579, -81.700455, Residential, Wood , 1
30.063236, -81.707703, Residential, Wood , 3
30.060614, -81.702675, Residential, Wood , 1
これにより、csvが読み込まれ、数値列がscikit_learnのnumpy配列に変換され、列の順序が変更されてExcelスプレッドシートに書き込まれます。
import numpy as np
import pandas as pd
input_file = "mydata.csv"
# comma delimited is the default
df = pd.read_csv(input_file, header = 0)
# for space delimited use:
# df = pd.read_csv(input_file, header = 0, delimiter = " ")
# for tab delimited use:
# df = pd.read_csv(input_file, header = 0, delimiter = "\t")
# put the original column names in a python list
original_headers = list(df.columns.values)
# remove the non-numeric columns
df = df._get_numeric_data()
# put the numeric column names in a python list
numeric_headers = list(df.columns.values)
# create a numpy array with the numeric values for input into scikit-learn
numpy_array = df.as_matrix()
# reverse the order of the columns
numeric_headers.reverse()
reverse_df = df[numeric_headers]
# write the reverse_df to an Excel spreadsheet
reverse_df.to_Excel('path_to_file.xls')
numpy でloadtxt関数を検索できます。
Loadtxtメソッドへのオプション入力を取得します。
Csvの簡単な変更は
data = np.loadtxt(fname = f, delimiter = ',')
numpy
を使用してcsvfileをロードしますimport numpy as np
dataset = np.loadtxt('./example.csv', delimiter=',')