def test_build_ps_owa_factory(): import os csv_file = os.path.join(os.path.dirname(__file__), "iris.csv") data = np.genfromtxt(csv_file, dtype=float, delimiter=',', names=True) X = np.array([data["sepallength"], data["sepalwidth"], data["petallength"], data["petalwidth"]]).T y = data["class"] from sklearn.preprocessing import MinMaxScaler X = MinMaxScaler().fit_transform(X) l = nfpc.FuzzyPatternClassifier( membership_factory=t_factory, aggregation_factory=nfpc.GAOWAFactory(optimizer=nfpc.ps_owa_optimizer()) ) from sklearn.model_selection import cross_val_score scores = cross_val_score(l, X, y, cv=10) mean = np.mean(scores) print("mean", mean) assert 0.92 < mean
def test_simple_fpc(): iris = datasets.load_iris() X = iris.data y = iris.target c = nfpc.FuzzyPatternClassifier() c.fit(X, y) mu = nfpc.predict_protos(X, c.protos_, c.aggregation_) pro = c.predict_proba(X) pro_sum = pro.sum(axis=1) assert np.all(pro_sum > 0.)
def test_build_meowa_factory(): iris = datasets.load_iris() X = iris.data y = iris.target from sklearn.preprocessing import MinMaxScaler X = MinMaxScaler().fit_transform(X) l = nfpc.FuzzyPatternClassifier(membership_factory=t_factory, aggregation_factory=nfpc.MEOWAFactory()) from sklearn.model_selection import cross_val_score scores = cross_val_score(l, X, y, cv=10) mean = np.mean(scores) assert 0.80 < mean