J'essayais de pré-traiter mes données à l'aide de la normalisation.
# preprocessing
import tensorflow as tf
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from tensorflow.keras import layers
from sklearn.compose import make_column_transformer
from sklearn.preprocessing import MinMaxScaler, OneHotEncoder
from sklearn.model_selection import train_test_split
np.set_printoptions(precision=3, suppress=True)
btc_data = pd.read_csv(
"output.csv",
names=["Time", "Open"])
ct = make_column_transformer(
(MinMaxScaler(), ["Time", "Open"]),
(OneHotEncoder(handle_unknown="ignore"), ["Time", "Open"])
)
X_btc = btc_data["Time"]
y_btc = btc_data["Open"]
X_train, X_test, y_train, y_test = train_test_split(X_btc, y_btc, test_size=0.2, random_state=62)
ct.fit(X_train)
X_train_normal = ct.transform(X_train)
X_test_normal = ct.transform(X_test)
Le code s'exécute sur une Colab ordinateur portable. Le jeu de données est de Kaple et il est modifié pour être plein de Timestamps Unix et une autre colonne pour le prix du Bitcoin sur ouvrir à ces moments. Après crève les données et la création d'une colonne de transformateur, j'ai essayé ajuste le mieux aux données. Cependant, j'obtiens l'erreur suivante:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-44-f73622372111> in <module>()
27 print(X_train.shape)
28
---> 29 ct.fit(X_train)
30 X_train_normal = ct.transform(X_train)
31 X_test_normal = ct.transform(X_test)
3 frames
/usr/local/lib/python3.7/dist-packages/sklearn/utils/__init__.py in _get_column_indices(X, key)
387 :func:`_safe_indexing_column`.
388 """
--> 389 n_columns = X.shape[1]
390
391 key_dtype = _determine_key_type(key)
IndexError: tuple index out of range
Je me demande si c'est une forme de question, mais comme une note, le X_train de données est de la forme (2020896,)
.
Il ya quelque chose que j'ai à faire avec mes données pour corriger cette erreur?