def main(): #Simple argument consistency check #Exit if arguments not specified if len(sys.argv) != 3: print("usage: python3 nblearn.py TRAININGFILE MODELFILE") sys.exit(0) #Create an instance of Naive Bayes class in training mode naive_bayes = NB('TRAIN') #Fit the data with the training file naive_bayes.fit(sys.argv[1]) #Train the classifier naive_bayes.train() #Output a model file to the file specified naive_bayes.generate_model(sys.argv[2])
zr = ZeroR() zr.train(t, rows) print("\ndiabetes") zr.dump() # NB print("\n\n#--- Nbok ---------------------") tbl = Tbl("weathernon.csv") rows = [] for lst in tbl.fromString(False, "file"): rows.append(lst) c = Col() tbl.cols = c.colNum(tbl.rows) nb = NB(tbl, 3) nb.train(tbl, rows) print("\nweathernon") nb.dump() print() tbl = Tbl("diabetes.csv") rows = [] for lst in tbl.fromString(False, "file"): rows.append(lst) c = Col() tbl.cols = c.colNum(tbl.rows) nb = NB(tbl, 19) nb.train(tbl, rows) print("\ndiabetes") nb.dump()
print('\n所有平均交叉结果:\n', round(sum(loss01)/len(loss01), 3)) if Global_V.SCHEME.upper() == 'KDB': pass if Global_V.SCHEME.upper() == 'AODE': pass if Global_V.SCHEME.upper() == 'NB': result = [] fold_count = 0 for CrossTest_count in range(0, data_len, data_len // 10): # 交叉验证 p_c_fold = [] loss01_fold = 0 NB_data = NB(data_initial, 0.9, CrossTest_count) NB_data.train() p_c_fold, result_fold = NB_data.classify() result.append(result_fold) # print('\n第', fold_count, '次交叉结果:\n') print('\n第', fold_count, '次交叉') loss01_fold = estimate_Output(NB_data.testData, p_c_fold, result_fold, 1) loss01.append(loss01_fold) fold_count += 1 # 每个分类的过程,必须保存:1. 每一个testdata里的instance分类到每个Ci的概率p_y 2. 分类结果:result # output(result, TAN_car.testData,1) # output 函数的输入为: # output的输出,应该要有:1.每个testdata分到每个类的概率 2.分类结果result 3.testData,(以及参数1,2,3;不同的参数,输出不同) # compare the prediction results with the real results if Global_V.PRINTPAR == 3: print('testset:\n', NB_data.testData, '\n') print('p_ci= \n', p_c_fold, '\n', 'result:\n', result) print('the first element is the result of prediction, second is real result!\n')