11.14日报
完成机器学习B的实验,以下为实验内容:
上机实验二:逻辑回归算法实现与测试 1、实验目的 深入理解对数几率回归(即逻辑回归的)的算法原理,能够使用 Python 语言实现对数 几率回归的训练与测试,并且使用五折交叉验证算法进行模型训练与评估。 2、实验内容 推荐参考书:[1] 范淼, 李超. Python 机器学习及实践, 清华大学出版社. [2] Peter Harrington. 机器学习实战, 人民邮电出版社。 (1)从 scikit-learn 库中加载 iris 数据集,使用留出法留出 1/3 的样本作为测试集(注 意同分布取样); (2)使用训练集训练对数几率回归(逻辑回归)分类算法; (3)使用五折交叉验证对模型性能(准确度、精度、召回率和 F1 值)进行评估和选 择; (4)使用测试集,测试模型的性能,对测试结果进行分析,完成实验报告中实验二的 部分。
# 导入必要的库 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report, accuracy_score # 加载iris数据集 iris = load_iris() X, y = iris.data, iris.target # 使用留出法留出1/3的样本作为测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1/3, random_state=42) # 创建逻辑回归模型实例 logreg = LogisticRegression(max_iter=200) # 训练模型 logreg.fit(X_train, y_train) # 在训练集上进行预测 y_train_pred = logreg.predict(X_train) # 打印训练集的性能报告 print("Training set performance:") print(classification_report(y_train, y_train_pred)) print("Training Accuracy:", accuracy_score(y_train, y_train_pred)) # 在测试集上进行预测 y_test_pred = logreg.predict(X_test) # 打印测试集的性能报告 print("\nTest set performance:") print(classification_report(y_test, y_test_pred)) print("Test Accuracy:", accuracy_score(y_test, y_test_pred))