题目要求我们训练一个线性支持向量机 (SVM) 模型,并根据模型的 coef_
属性获取每个特征的权重。然后输出权重最大的特征的索引。
主要步骤如下:
某公司计划对其产品销售策略进行优化,计划使用基于支持向量机(SVM)的机器学习模型来预测产品的销售量。为此,需要计算每个特征的权重。请根据输入描述和输出描述中的要求,编程实现特征权重的计算。
提示:首先需要根据输入的数据集和对应的标签训练一个线性 SVM 模型,然后可以通过模型的 coef_ 属性获取到每个特征的权重。
输入的数据集为一个二维 list ,该二维 list 中每一个子 list 的最后一个元素表示当前样本的销售量 (label) ,其余的元素表示特征的值,每一列都表示一个固定的特征,例如,第一列特征可以表示产品价格,第二列特征可以表示产品的广告投放量等,形如 [[100,200,300],[200,300,500]] 。标签以 float 的数据形式进行存储。为了便于使用,所有案例都以单行的形式传入,因此形如 sys.stdin 等方法结合 for 循环和 eval 函数即可读取并还原数据。
要求给出在既定数据集下,权重最大的特征对应的索引值,数据类型为 int 类型。如果权重最大的特征是第一列特征,则返回值为 0 ,如果权重最大的特征是第二列特征,则返回值为 1 ,以此类推。
假设所有的特征中,权重最大的特征是唯一的,也就是不存在权重相同的特征,这样可以保证返回值是唯一的。可以使用形如 numpy、pandas 和 sklearn 等自带代码库。为保持输出一致,请使用线性核。
输入
[[100,200,300,5000],[200,300,500,7000],[150,250,350,6000]]
输出
1