摘 要
Otto Group是世界上最大的电子商务公司之一,在全世界范围内,它每天会卖出数百万件商品。每件商品所属的类别分别是Class_1~ Class_9。对于这家公司的来说,货物供给和需求分析是非常重要的信息。现给定一些商品的多个特征,设计一个算法模型判断一个商品所属的类别。SVM(support vector machines)支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;当训练样本近似线性可分时,通过软间隔最大化,也就是加入松弛变量和惩罚因子已达到允许系统错分的情况,学习一个线性支持向量机;当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机,核函数通常会使用高斯核函数。对支持向量的求解通常比较复杂,所以这里使用求解对偶函数的方法来求解原问题的解。
该实验的数据有93个特征,一个类别标签,分为9类,显然是一个多分类问题。根据分析,特征类型是非线性的。按照SVM的解决方法会将数据映射到高维,映射到高维无疑会增加计算的复杂度,而且是指数式增加。回了解决这一问题,如果映射正好是核函数则会改善计算的复杂度。根据核函数的性质,核函数的内积等于内积再做核函数运算。利用这一性质就可以在不增加运算复杂度的情况下对数据进行高维分类。本次数据分类中采用高斯核函数,在该实验中,高斯核函数具有最优的效率。除了svm方法,后面还提供了决策树和神经网络两种方法。
关键词: 多分类,SVM,决策树,随机森林,神经网络
目录
摘 要 1
方法一: SVM(支持向量机) 2
一. 题目简介 2
二. 整体解决方案 3
2.1 方案设计 3
2.2 方案分析 3
三. 数据处理 4
3.1 数据提取 4
3.2 代码实现: 5
3.3 数据预处理 5
3.4 数据结果处理 5
四. SVM预测模型 6
4.1 线性SVM 6
4.1.1 线性可分的二分类问题: 6
4.1.2 选择决策面 6
4.1.3 线性不可分的二分类问题 8
4.2 非线性分类器(核函数问题) 8
4.3 算法实现 10
4.3.1 加载数据 10
4.3.2 训练模型 10
4.3.3 得出结果 11
五. 测试结果和结果分析 12
方法二:决策树与随机森林 13
一 决策树 13
1 概述 13
2 简介 13
2.1 信息增益 13
2.2 增益率 14
二 随机森林 15
三 决策树与随机森林的区别 16
四 实验过程与结果 16
4.1决策树实验 17
4.2 随机森林实验 18
4.2.2 经过实验,当n_estimators=300时,效果最好 18
方法三:BP神经网络 19
1.概述 19
2. 实验过程 20
2.1 原理图 20
2.2 构建模型 20
2.3预测概率结果 20
总 结 22