知りたいこと
訓練データと検証データには、'status'が0のデータのみが含まれており、テストデータ(y_test)には0と0.5のデータが含まれています。
これらのデータは前処理にオートエンコーダーを用いているもので、ここで学習した'status'の値を別のモデルと正しいかどうかを判定する際に使うものです。
モデルは、'status'以外のカラムをLSTMで学習して、↑y_testを予測することになります。
ここで、訓練データには0しか含まれていないことから、.fit_trasnformでは、0と0.5の値を学習できておらず、エラーが出てしまいました。
解決するにはどのようにしたらいいのでしょうか?
知恵をお貸しください。
前提
時系列データになります。
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last) Cell In[246], line 4 2 y_train = encoder.fit_transform(X_train[['_status']]) 3 y_val = encoder.transform(X_val[['_status']]) ----> 4 y_test = encoder.transform(X_test[['_status']]) File [~/.pyenv/versions/3.11.1/lib/python3.11/site-packages/sklearn/utils/_set_output.py:140][1], in _wrap_method_output..wrapped(self, X, *args, **kwargs) 138 @wraps(f) 139 def wrapped(self, X, *args, **kwargs): --> 140 data_to_wrap = f(self, X, *args, **kwargs) 141 if isinstance(data_to_wrap, tuple): 142 # only wrap the first output for cross decomposition 143 return_tuple = ( 144 _wrap_data_with_container(method, data_to_wrap[0], X, self), 145 *data_to_wrap[1:], 146 ) File [~/.pyenv/versions/3.11.1/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py:1016][2], in OneHotEncoder.transform(self, X) 1011 # validation of X happens in _check_X called by _transform 1012 warn_on_unknown = self.drop is not None and self.handle_unknown in { 1013 "ignore", 1014 "infrequent_if_exist", 1015 } -> 1016 X_int, X_mask = self._transform( ... --> 199 raise ValueError(msg) 200 else: 201 if warn_on_unknown: ValueError: Found unknown categories [0, 2] in column 0 during transform --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[246], line 4 2 y_train = encoder.fit_transform(x_train[['_status']]) 3 y_val = encoder.transform(x_val[['_status']]) ----> 4 y_test = encoder.transform(x_test[['_status']]) File ~/sklearn/utils/_set_output.py:140, in _wrap_method_output..wrapped(self, x, *args, **kwargs) 138 @wraps(f) 139 def wrapped(self, x, *args, **kwargs): --> 140 data_to_wrap = f(self, x, *args, **kwargs) 141 if isinstance(data_to_wrap, tuple): 142 # only wrap the first output for cross decomposition 143 return_tuple = ( 144 _wrap_data_with_container(method, data_to_wrap[0], x, self), 145 *data_to_wrap[1:], 146 ) File ~/sklearn/preprocessing/_encoders.py:1016, in OneHotEncoder.transform(self, x) 1011 # validation of x happens in _check_x called by _transform 1012 warn_on_unknown = self.drop is not None and self.handle_unknown in { 1013 "ignore", 1014 "infrequent_if_exist", 1015 } -> 1016 x_int, x_mask = self._transform( ... --> 199 raise ValueError(msg) 200 else: 201 if warn_on_unknown: ValueError: Found unknown categories [0, 0.5] in column 0 during transform
該当のソースコード
Python3
1encoder = OneHotEncoder(sparse_output=False) 2y_train = encoder.fit_transform(x_train[['status']]) 3y_val = encoder.transform(x_val[['status']]) 4y_test = encoder.transform(x_test[['status']]) 5
試したこと
テストデータにも.fitしてみたら精度がえらいこっちゃになりました><
追記

回答1件
あなたの回答
tips
プレビュー