from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
'''
cross_val_score函数 用于评估机器学习模型的性能,执行交叉验证,并返回每次迭代的得分
'''
# 加载鸢尾花数据集 典
iris = load_iris()#调用函数
X = iris.data#(150, 4) 150个样本 四个特征
y = iris.target#(150,)
# 初始化逻辑回归模型
model = LogisticRegression(solver='lbfgs', multi_class='auto', max_iter=1000)
'''
solver : lbfgs是拟牛顿法的一种 收敛的很快
multi_class:auto 自动选择最优的算法
(eg:若数据是二分类的,将使用一对一或逻辑回归 如果是多分类的 可能使用一对一或一对多策略)
max_iter 最优化算法最大迭代次数 若算法的收敛速度较慢或数据集较大 增加该值可以更好的拟合数据
'''
# 使用5折交叉验证评估模型
scores = cross_val_score(model, X, y, cv=5)
'''
特征X 标签y
cv=5表示使用5折交叉验证评估模型:将数据分成5部分 4个用于训练 1个用于测试 重复五次 并计算均值
'''
# 输出每次迭代的得分 返回的是一个数组
print("Scores:", scores)
# 输出平均得分
print("Mean cross-validation score: {:.2f}".format(scores.mean()))