def test_info_gain_one_target_one_feature(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, target=idadf.columns[0], features=[idadf.columns[1]]) assert (isinstance(result, float)) result2 = info_gain(idadf, target=idadf.columns[1], features=[idadf.columns[0]]) assert (round(result, 3) == round(result2, 3)) # symmetry
def test_info_gain_default(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, features = idadf.columns) assert(isinstance(result, pandas.core.frame.DataFrame)) assert(len(result.columns) == len(idadf.columns)) assert(len(result.index) == len(idadf.columns)) result2 = info_gain(idadf) assert(all(result == result2)) result = result.fillna(0) # np.nan values are not equal when compared assert(all(result == result.T)) # symmetry
def test_info_gain_default(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, features=idadf.columns) assert (isinstance(result, pandas.core.frame.DataFrame)) assert (len(result.columns) == len(idadf.columns)) assert (len(result.index) == len(idadf.columns)) result2 = info_gain(idadf) assert (all(result == result2)) result = result.fillna( 0) # np.nan values are not equal when compared assert (all(result == result.T)) # symmetry
def test_info_gain_valueError(self, idadf): if len(idadf.columns) > 0: with pytest.raises( ValueError ): # Cannot compute correlation coefficients of only one column (...), need at least 2 info_gain(idadf, features=idadf.columns[0]) with pytest.raises( ValueError ): # The correlation value of two same columns is always maximal info_gain(idadf, target=idadf.columns[0], features=idadf.columns[0])
def test_info_gain_multiple_target(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, target=[idadf.columns[0], idadf.columns[1]]) assert (isinstance(result, pandas.core.frame.DataFrame)) assert (len(result.columns) == 2) assert (len(result.index) == len(idadf.columns))
def test_info_gain_one_target_one_feature(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, target = idadf.columns[0], features=[idadf.columns[1]]) assert(isinstance(result, float)) result2 = info_gain(idadf, target = idadf.columns[1], features=[idadf.columns[0]]) assert(round(result,3) == round(result2,3)) # symmetry
def test_info_gain_multiple_target(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, target = [idadf.columns[0],idadf.columns[1]]) assert(isinstance(result, pandas.core.frame.DataFrame)) assert(len(result.columns) == 2) assert(len(result.index) == len(idadf.columns))
def test_info_gain_one_target(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, target = idadf.columns[0]) assert(isinstance(result, pandas.core.series.Series)) assert(len(result) == (len(idadf.columns)-1))
def test_info_gain_valueError(self, idadf): if len(idadf.columns) > 0: with pytest.raises(ValueError): # Cannot compute correlation coefficients of only one column (...), need at least 2 info_gain(idadf, features = idadf.columns[0]) with pytest.raises(ValueError): # The correlation value of two same columns is always maximal info_gain(idadf, target= idadf.columns[0], features = idadf.columns[0])
def apply_Model(X, Y): # X_train=X_train.iloc[:,0:1139] idadb = IdaDataBase("DASHDB") idadf = IdaDataFrame(idadb) IG = info_gain(idadb, target=Y, features=X)
def test_info_gain_one_target(self, idadf): if len(idadf.columns) > 1: result = info_gain(idadf, target=idadf.columns[0]) assert (isinstance(result, pandas.core.series.Series)) assert (len(result) == (len(idadf.columns) - 1))