前提・実現したいこと
自作の分類プログラムを作っています。具体的には、事前に学習したデータに対しては正しく分類し、記憶にないデータに対しては常に1と答える学習器です。ただ、一部入力方法が分からず困っています。どなたかお願いします。
入力コード・エラーコード
import numpy as np from sklearn import datasets iris = datasets.load_iris() X = iris.data[iris.target!=2, 0:2] y = iris.target[iris.target!=2] from sklearn.base import BaseEstimator, ClassifierMixin class MemorizingClassifier1 (MemorizingClassifier): "記憶にないデータに対しては常に1と答える丸暗記型学習器" def __init__(self): self.d = dict() def fit(self, X, y): for x, label in zip(X, y): key = tuple(x) self.d[key] = label return self def predict(self, X): "記憶にないデータに対しては常に1と予測" pred_y = np.zeros(len(X), dtype=int) for i, x in enumerate(X): key = tuple(x) if key in self.d: pred_y[i] = self.d[key] else: pred_y[i] = np.ones(len(X), dtype=int) return pred_y model = MemorizingClassifier1() model.fit(X, y) visualize(model, "MemorizingClassifier1") ValueError: setting an array element with a sequence.
np.ones()のshapeをどのように入力すべきか分からず、ここがエラーコードにもなっています。
補足情報(FW/ツールのバージョンなど)
利用環境はGoogle Colaboratoryです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/02 12:27