私は、金曜日の午後9時と月曜日の午前0時の間に、常に情報が欠落しているデータフレームを持っています。私はそう月曜日まで金曜日は考慮されませんこれを扱うことができるか疑問に思う機械学習で欠損データを処理する方法は?
date timestamp liters next_liters
...
3442 2017-02-03 19:00:00 1486148400 0.86261 0.86354
3443 2017-02-03 20:00:00 1486152000 0.86354 0.86356
3444 2017-02-03 21:00:00 1486155600 0.86356 1.86330
3445 2017-02-06 00:00:00 1486339200 1.86330 1.86305
3446 2017-02-06 01:00:00 1486342800 1.86305 1.86321
3447 2017-02-06 02:00:00 1486346400 1.86321 1.86352
3448 2017-02-06 03:00:00 1486350000 1.86352 1.86311
3449 2017-02-06 04:00:00 1486353600 1.86311 1.86271
...
:私は予測トラフ線形回帰アルゴリズムを作るために、このデータを使用していますので、このジャンプは私の予測をアップgumpsアルゴリズムによってデータを処理するとき
私はこれらの値をNaNに変換しますが、Sklearnはこの種の情報を許可していません。
これは私の現在のコードです:私たちは、その後、機能に建てられたパンダと平日を取得し、そこから新しい列を作り、「土曜日」と「日曜日」を除外するためにDFをフィルタリングし、できる
df = df[['date', 'epoch', 'liters']]
df['next_liters'] = df['liters'].shift(-1)
df.dropna(inplace=True)
X = np.array(df.drop(['next_liters'], 1))
X = preprocessing.scale(X)
y = np.array(df['next_liters'])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
clf = LinearRegression(fit_intercept=True, n_jobs=-1)
clf.fit(X_train, y_train)
print ("LinearRegression (" + str(clf.score(X_test, y_test)) + ")")
print (clf.predict(X_test))
プロジェクト場合の結果がどのように見えるかを参照してください。最後の値と最初の値の間の線。これは、多くの機械学習システムで機能するテクニックです。それが近づかないと(あなたが期待できる最高)、ラインのスケールを調整してみるか、または曲線を試してみてください。 – Mike