如何使用自己的特征矩阵来训练模型

来源:11-4 scikit-learn中的SVM

儒将肚甫

2019-12-23

波波老师好,参照http://coding.imooc.com/learn/questiondetail/158175.html
“关于SVM模型训练的结果”中的第3个问题.我还是搞不明白。。

您能不能大致说一下,怎么用自己的数据替换掉:
iris = datasets.load_iris()
X = iris.data
y = iris.target
就是我有自己的 data,有自己的target了,怎么利用您教的方法来为我自己的实际应用服务??
看了您给的链接,还是不太清楚怎么直接处理自己的数据。
比如如果我有一个40013的特征矩阵,400是样本数,13是每个样本中提取的特征数。(一共四类,四分类);还有一个4001的矩阵,是标记了每个样本的标签。我应该以什么形式保存他们??(您能直接用一行给我举个例子么)。然后比如我最后生成了俩 .csv文件。我应该怎么训练一个模型,又该怎么用这个模型处理新的位置的数据的分类问题?(怎么具体使用predict函数)。谢谢啦。我的要求就很简单,我有一个13*400特征矩阵,我也知道这400个对应的标签(比如是A类,B类,C类,D类,每个100个训练样本,共同组成了400个)。我现在想训练一个四分类的模型。然后再输入一个未知标签(种类)的13维的特征向量,我能直观的看到训练好的模型得predict的结果。我现在就是有自己的特征矩阵了,不知道下一步咋处理。。希望您能直接给举个例子说一下。。

比如A类100个训练样本中的其中一个,它的13维特征矩阵如下:
-2.692881174
2.233883954
-3.710580465
0.842407988
1.589427545
1.876178279
1.676918198
1.264089474
0.288831208
1.61459498
1.906924966
1.674927895
-60.55249462

写回答

1回答

liuyubobobo

2019-12-23

抱歉,我无法做到根据每个同学的需求,给同学写出代码。如果那样的话,我就不能干别的,光给同学们写代码了。请谅解。这是课程问答区,我会针对同学们的提问,给出回答。


如果我没有理解错,你现在有两个 csv 文件,一个里面包含 400 行,每行 13 个数据,是样本;另一个文件里包含 400 个元素,是 y


第一步,读取 400 * 13 的文件,将这 400 * 13 个元素存成 python 中的二维列表。请自行搜索"Pyton3 csv读取",学习如何使用 python 处理 csv 文件;同理,你可以将第二个 csv 文件,读出来,存成 python 的一个一维列表;


第二步,将 python 的二维列表,转换成 numpy 的二维数组;将 python 的一维列表转换成 numpy 的一维数组。转换的方式,直接使用 np.array 就好。可以再参考一下 3-3 小节的内容。


第三步,此时,你转换出的 numpy 的二维数组,就是 X,一维数组,就是 y。X 应该是 400 * 13 的,y 里应该有 400 个元素。后续具体机器学习的处理方式,是和课程中介绍一致的。你可以根据自己的需要,组建自己的 pipeline(是否需要标准化?是否需要分割训练测试数据集?或者训练验证测试数据集?或者使用交叉验证?具体是用什么算法?是否需要使用网格搜索?等等)


训练好模型以后,使用 predict 的方式,也和课程中介绍的是一致的。我不确定你对课程中使用的 predict 方式哪里存在疑问,可以后续继续追加提问。


继续加油!:)

1
1
儒将肚甫
嗯嗯,了解了,感谢~~
2019-12-24
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5896 学习 · 2455 问题

查看课程