小工具知识网

当前位置: 首页 > 行业知识 > 【python】利用 GridSearchCV 和 SVM 进行学生成绩预测

行业知识

【python】利用 GridSearchCV 和 SVM 进行学生成绩预测

2026-11-01 06:48:57 来源:互联网转载

在机器学习领域,寻找最优模型参数是一个重要的步骤,它直接影响模型的泛化能力和预测准确性。本文将通过一个具体案例介绍如何使用支持向量机(SVM)和网格搜索(GridSearchCV)来预测学生的成绩,并通过调整参数来优化模型性能。

数据集:公众号“码银学编程”后台回复:学生成绩-SVM

引言

学生的成绩预测对于教育领域来说是一个重要的问题,它可以帮助教师更好地了解学生的学习情况,从而进行针对性的教学改进。在本案例中,我们将使用 SVM 作为分类器,并利用 GridSearchCV 对模型参数进行调优,以期获得更好的预测效果。

正文 

1. 数据准备

首先,我们从 CSV 文件中加载学生成绩数据集。数据集包含了多门课程的成绩,我们将这些成绩转换为等级,并使用 LabelEncoder 将分类数据转换为数值形式,以便 SVM 模型能够处理。

stu_grade = pd.read_csv('student-mat.csv')print(stu_grade.head())
  1. age-学生年龄(数字:从15岁到22岁)
  2. Medu - 母亲教育(数字:0 -无,1 -小学教育(四年级),2 -" 5 - 9年级,3 -"中等教育或,4 -"高等教育)
  3. Fedu - 父亲教育(数字:0 -无,1 -小学教育(4年级),2 â€" 5 - 9年级,3 â€"中等教育或4 â€"高等教育)
  4. traveltime - 从家到学校的旅行时间(数字:1 - 1小时)
  5. studytime - 每周学习时间(数字:1 - 10小时)
  6. failures - 过去班级失败的次数(数值:如果1= 10 and x

    结果: 

       age  Medu  Fedu  traveltime  studytime  ...  health  absences  G1  G2  G30   18     4     4           2          2  ...       3         6   5   6   61   17     1     1           1          2  ...       3         4   5   5   62   15     1     1           1          2  ...       3        10   7   8  103   15     4     2           1          3  ...       5         2  15  14  154   16     3     3           1          2  ...       5         4   6  10  10[5 rows x 16 columns]   age  Medu  Fedu  traveltime  studytime  ...  health  absences  G1  G2  G30   18     4     4           2          2  ...       3         6   5   6   61   17     1     1           1          2  ...       3         4   5   5   62   15     1     1           1          2  ...       3        10   7   8  103   15     4     2           1          3  ...       5         2  15  14  154   16     3     3           1          2  ...       5         4   6  10  10[5 rows x 16 columns]   age  Medu  Fedu  traveltime  ...  absences         G1      G2         G30   18     4     4           2  ...         6     medium  medium     medium1   17     1     1           1  ...         4     medium  medium     medium2   15     1     1           1  ...        10     medium  medium       good3   15     4     2           1  ...         2  excellent    good  excellent4   16     3     3           1  ...         4     medium    good       good[5 rows x 16 columns][2 0 2 2 2 2 3 2 2 2 2 0 2 1 2 1 2 2 2 2 2 2 2 2 2 2 1 2 2 2 0 3 2 2 1 3 2 2 1 2 2 1 2 2 2 3 2 3 2 2 1 2 2 2 2 2 2 3 3 3 2 2 3 2 2 2 1 2 2 2 2 2 2 2 3 2 2 1 3 1 2 1 3 0 1 0 3 2 2 2 0 2 2 2 2 1 2 3 2 3 2 2 2 2 0 2 2 2 3 2 2 2 2 2 2 3 2 1 3]训练集准确度: 0.927536231884058测试集准确度: 0.6218487394957983Scores:  MAE=0.4957983193277311, MSE=0.7983193277310925最佳参数: {'C': 0.3, 'gamma': 0.01, 'kernel': 'poly'}最佳分数: 0.8115942028985508优化后测试集准确度: 0.8235294117647058优化后Scores:  MAE=0.2857142857142857, MSE=0.5882352941176471Process finished with exit code 0

     

     

上一篇:OPPO手机无法开机?快速解决教程!

下一篇:WeiTalk下载指南,一键获取应用安装教程,轻松上手!