利索能及
我要发布
收藏
专利号: 2020114678383
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-07-29
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于K‑means聚类与XGBoost算法的心理预判方法,其特征在于,包括以下步骤:采集学生的在校行为数据,以学生行为数据作为分类标签,记录数据,并对学生行为数据进行包括做重复值、缺失值、噪声值处理以及类型变换在内的数据预处理;

对于离散性特征,使用one‑hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点;

采用K‑means算法聚类分割成三类数据集,分别为label1:较大可能存在心理隐患;

label2:存在心理隐患,但可能性不明显;label3:不存在心理隐患;

选取label1为‘较大可能存在心理隐患’的样本类,采用XGBoost算法进行有监督学习的分类得出XGBoost预测模型,将新个体的行为数据输入建立的XGBoost预测模型得出心理预判结果,并对参数进行调节,进行XGBoost预测模型测试,得出模型的准确度;

所述个体在校行为数据包括:

基本信息数据、成绩数据、课堂数据、一卡通数据、宿舍出入数据、图书馆出入与借阅数据和校园活动数据;

所述个体在校行为数据包括:

基本信息数据、成绩数据、课堂数据、一卡通数据、宿舍出入数据、图书馆出入与借阅数据和校园活动数据;

所述预处理步骤具体为:重复值处理、缺失值处理、噪声值处理以及类别变换;

重复值处理包括:用duplicates函数进行重复值删除,参数解释如下:subset:列名,默认所有的列;

keep:是否保留{‘first’,‘last’,False},keep='first'表示去重时每组重复数据保留第一条数据,其余数据丢弃;keep='last'表示去重时每组重复数据保留最后一条数据,其余数据丢弃;keep=False表示去重时每组重复数据全部丢弃,不保留;

inplace:是否替换{False,True},inplace=False表示去重之后不覆盖原表格数据,inplace=True表示去重之后原表格数据被覆盖;

缺失值处理包括:查看缺失情况、以指定值填补缺失值;

噪声值处理包括:同时采用盖帽法处理噪声值、分箱法处理噪声值;

类型变换包括:通过LabelEncoder来进行快速的转换:通过mapping方式,将类别映射为数值;不过这种方法适用范围有限;通过get_dummies方法来转换;

所述缺失值处理步骤中,查看缺失情况、以指定值填补缺失值,具体步骤为:通过在Python中构造一个lambda函数来查看缺失值,lambda函数中,sum(col.isnull())表示当前列有多少缺失,col.size表示当前列总共多少行数据;通过用fillna填充缺失值的方法完成对缺失值的填补:用于填充缺失值的fillna方法的语法为:

fillna(value=None,method=None,axis=None,inplace=False,limit=None,**downcast=None, kwargs)

其中,参数value用来指定要替换的值,是标量、字典、Series或DataFrame;参数method用来指定填充缺失值的方式,值为'pad'或'ffill'时表示使用扫描过程中遇到的最后一个有效值一直填充到下一个有效值,值为'backfill'或'bfill'时表示使用缺失值之后遇到的第一个有效值填充前面遇到的所有连续缺失值;参数limit用来指定设置了参数method时最多填充多少个连续的缺失值;参数inplace=True时表示原地替换;

所述盖帽法是指将连续变量均值上下三倍标准差范围外的记录替换为均值上下三倍标准差值,参数x表示一个pd.Series列,quantile指盖帽的范围区间,默认凡小于百分之1分位数和大于百分之99分位数的值将会被百分之1分位数和百分之99分位数替代,通过直方图对比出数据频数的变化;

分箱法是指用等宽分箱,用cut函数直接进行等宽分箱;cut函数自动选择小于列最小值一个数值作为下限,最大值为上限,等分为五分,结果产生一个Categories类的列,类似于R中的factor,表示分类变量列;

所述调节参数的步骤具体为:

首先查看数据情况,然后进行训练参数的设置;

max_depth设置树的最大深度,缺省值为6,取值范围为:[1,+∞];

使用min_child_weight,在每次提升计算之后,算法会直接获得新特征的权重,同时也是为了防止过拟合,当它的值较大时,避免模型学习到局部的特殊样本;

定义学习任务以及相应的学习目标,“binary:logistic”表示二分类的逻辑回归问题,输出为概率;

其他参数取默认值,下面开始训练模型;

设置boosting迭代计算次数为60次;

将字典dit以列表返回可遍历的(键,值)元组数组;

输出值是样本为第一类的概率,将概率值转换为0或1;

以上调参步骤完成。

2.根据权利要求1所述的基于K‑means聚类与XGBoost算法的心理预判方法,其特征在于,所述基本信息数据包括:性别、专业、年龄、籍贯和兴趣爱好;所述成绩数据包括:必修课/选修课成绩和课程平时成绩;所述课堂数据包括:课堂出勤情况和作业完成情况;所述一卡通数据包括:食堂消费金额,食堂消费类目和食堂消费时间;打水时间;淋浴消费金额和淋浴消费时间;超市消费金额,超市消费类目和超市消费时间;一卡通卡内余额;所述宿舍出入数据包括:宿舍出入时间和宿舍出入地点;所述图书馆出入与借阅数据包括:图书馆出入时间,图书借阅名称,图书借阅时间和图书归还时间;所述校园活动数据包括:班级任职情况,校内组织任职情况;勤工俭学时间,勤工俭学工资;每学期奖惩情况和课外活动积分值。

3.根据权利要求1‑2任一项所述的基于K‑means聚类与XGBoost算法的心理预判方法,其特征在于,所述采用Kmeans算法分割三类数据集,包括以下子步骤:在数据集中随机选取K个样本为聚类初始中心点;

计算其余所有样本与K样本点的欧氏距离;

比较样本点与K个中心点的K个距离值,离哪个中心点距离最近就归为哪一类;

重新计算簇中心点,并且一直重复前面的步骤,直到簇中心点位置收敛时结束;

至此,K‑means算法分割三类数据集结束。

4.根据权利要求1任一项所述的基于K‑means聚类与XGBoost算法的心理预判方法,其特征在于,所述采用XGBoost算法进行有监督学习的分类得出XGBoost预测模型,具体包括:XGBoost算法目标函数:

其中,J(ft)表示共进行t次迭代的学习模型的目标函数、i表示第i次迭代、 表示前t‑1棵树对样本xi的预测结果、xi表示样本输入特征、ft表示第t棵回归树、Ω(ft)表示对第t棵树所采用的正则项;

根据泰勒公式展开:

同时令一阶导数gi与二阶导数hi:

决策树复杂度计算公式:

上式中叶子节点数为T,γ是T的系数,第t棵树第j个叶子节点的分值为wj,λ和w的构成了惩罚,这些参数的取值采用网格搜索算法来完成;

将(2)、(3)、(4)代入公式(1),求得目标函数:

对式(5)求解,用目标函数对wj求导可得最优的 为:

其对应的目标函数最小值为:

上式对应着打分函数,函数值越小则树结构越好;

将离散化过后的数据集以测试集和训练集比例7:3分割,将3个任务相应的测试样本输入训练好的XGboost模型,同时得到估计值,最后从中选择需要的估计值,选取需要的估计值之后,与实测数据进行对比。

5.一种基于权利要求1‑4任一项所述的基于K‑means聚类与XGBoost算法的心理预判系统,其特征在于,包括:采集及预处理模块:用于采集学生的在校行为数据,以学生行为数据作为分类标签,记录数据,并对学生行为数据进行包括做重复值、缺失值、噪声值处理以及类型变换在内的数据预处理;

聚类模块:对于离散性特征,使用one‑hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点;采用K‑means算法聚类分割成三类数据集,分别为label1:较大可能存在心理隐患;label2:存在心理隐患,但可能性不明显;label3:不存在心理隐患;

预测模块:选取label1为‘较大可能存在心理隐患’的样本类,采用XGBoost算法进行有监督学习的分类得出XGBoost预测模型,将新个体的行为数据输入建立的XGBoost预测模型得出心理预判结果,并对参数进行调节,进行XGBoost预测模型测试,得出模型的准确度。