# 1. 导入库import numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score# 解决中文乱码plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = False# 2. 读取数据data = np.loadtxt('logi-y.txt', delimiter=',')X = data[:, 0:2]y = data[:, 2]# 3. 划分训练集/测试集X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=42)# 4. 训练逻辑回归模型model = LogisticRegression(max_iter=1000)model.fit(X_train, y_train)# 5. 模型评估y_pred = model.predict(X_test)acc = accuracy_score(y_test, y_pred)print(f"模型准确率:{acc:.4f}")# 6. 绘制决策边界x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx, yy = np.meshgrid(np.linspace(x_min, x_max, 500), np.linspace(y_min, y_max, 500))Z = model.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)plt.figure(figsize=(8, 6))plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Pastel1, alpha=0.5)# 绘制样本点plt.scatter(X[y==0, 0], X[y==0, 1], c='blue', marker='o', label='未录取')plt.scatter(X[y==1, 0], X[y==1, 1], c='red', marker='^', label='已录取')plt.xlabel('科目1成绩')plt.ylabel('科目2成绩')plt.title('逻辑回归——招聘成绩分类')plt.legend()plt.show()