注意题目要求设置随机种子42,参数max_iter=200即可。
要求使用LogisticRegression(逻辑回归)。

代码如下:

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
import numpy as np

import random
# 设置随机种子,保证结果一致
random.seed(42)

iris = load_iris()
X = iris.data
y = iris.target
i = list(range(len(X)))

random.shuffle(i)
X_shuffled = X[i]
y_shuffled = y[i]

n = int(input())

# 直接截取最后n个样本作为测试集
X_train = X_shuffled[:-n]
y_train = y_shuffled[:-n]
X_test = X_shuffled[-n:]
y_test = y_shuffled[-n:]

model = LogisticRegression(max_iter=200)  # 增加max_iter以避免收敛
model.fit(X_train, y_train) 

y_pred = model.predict(X_test)
y_prob = model.predict_proba(X_test)

for i in range(n):
    print(f'{iris.target_names[y_pred[i]]} {np.max(y_prob[i]):.2f}')