python pyplot accuracy cost曲线绘制

本文主要内容是使用python matplotlib绘制accuracy, cost曲线。在使用机器学习算法训练时往往需要输出训练的accuracy以及cost,但是最直观的方法还是绘制对应的曲线(根据训练的迭代期n),本文给出简要的绘制方法。

代码如下,也可见stackoverflow


import numpy as np
import matplotlib.pyplot as plt


def draw_result(lst_iter, lst_loss, lst_acc, title):
    plt.plot(lst_iter, lst_loss, 
### 调整支持向量机 (SVM) 中的 C 参数 C 参数是 SVM 的一个重要超参数,在控制模型复杂度方面起着关键作用。较低的 C 值意味着更大的容错空间,这可能导致更简单的决策边界并减少过拟合的风险;而较高的 C 值会使模型更加关注于正确分类每一个样本,可能会导致过拟合。 #### 使用网格搜索进行 C 参数调优 为了有效地调整 C 参数,可以采用网格搜索的方法来遍历一系列可能的取值组合,并评估不同配置下的模型表现: ```python from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC import numpy as np # 定义要测试的不同 C 值范围 param_grid = {'C': [0.1, 1, 10, 100], 'kernel': ['linear']} # 创建 SVM 分类器对象 svc = SVC() # 初始化 GridSearchCV 对象 grid_search = GridSearchCV(estimator=svc, param_grid=param_grid, cv=5) # 执行交叉验证寻找最佳参数 X_train, y_train = ... # 加载训练数据 grid_search.fit(X_train, y_train) print(f"Best parameters found: {grid_search.best_params_}") ``` 这段代码展示了如何利用 `GridSearchCV` 来自动执行 C 参数的选择过程[^2]。通过指定多个候选值组成的列表作为输入给定到 `param_grid` 字典中,程序会依次尝试这些选项并与实际标签对比以找出最优解。 #### 验证曲线展示 C 参数的影响 除了上述方法外,还可以绘制验证曲线直观地观察 C 参数变化对于泛化能力的影响: ```python from sklearn.model_selection import validation_curve import matplotlib.pyplot as plt def plot_validation_curve(): train_scores, test_scores = validation_curve( estimator=SVC(kernel='linear'), X=X_train, y=y_train, param_name="C", param_range=np.logspace(-2, 3, num=6), scoring="accuracy" ) mean_test_score = np.mean(test_scores, axis=1) std_test_score = np.std(test_scores, axis=1) plt.semilogx(np.logspace(-2, 3, num=6), mean_test_score, label="Cross-validation score", color="g") plt.fill_between(np.logspace(- std_test_score, mean_test_score + std_test_score, alpha=0.15, color="g") plot_validation_curve() plt.xlabel('Parameter C') plt.ylabel('Score') plt.legend(loc="best") plt.grid(True) plt.show() ``` 此图有助于理解随着 C 取值增加时模型性能的变化趋势,进而辅助决定合适的 C 值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值