from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn import metrics #题目比较奇怪,计算出来的准确率是1.0结果比0.95大,但还是通过不了 def transform_three2two_cate (): datasets = load_iris() datas = datasets.data targets = datasets.target new_feat = [] new_label = [] for index,target in enumerate(targets): if target != 2: new_feat.append(datas[index]) new_label.append(targets[index]) return new_feat,new_label def train_and_evaluate(new_feat,new_label): x_train, x_test, y_train, y_test = train_test_split(new_feat,new_label,train_size=0.8,shuffle=True,random_state=0) model = LogisticRegression() model.fit(x_train,y_train) y_predict = model.predict(x_test) if y_predict is not None: acc = metrics.accuracy_score(y_test,y_predict) print(acc) new_feat,new_label = transform_three2two_cate() train_and_evaluate(new_feat,new_label) # print(datasets) # x_train,x_test,y_train,y_test = train_test_split(datasets.data,datasets.target,train_size=0.7,random_state=0) # # results = transform_three2two_cate (x_train,y_train,x_test) # print(results) # # if results is not None: # acc = metrics.accuracy_score(y_test,results) # print(round(acc,1))