我的数据格式如下:
Class Feature set list classlabel1 - [size,time] example:[6780.3,350.00] classlabel2 - [size,time] classlabel3 - [size,time] classlabel4 - [size,time]
如何将这些数据保存到Excel表格中,以及如何使用这个特征集来训练模型?我目前正在使用SVM分类器进行工作。
我尝试将特征集列表保存到数据框中,并将这个数据框保存为CSV文件。但大小和时间被分成了两个不同的列。
数据框在CSV文件中保存的方式如下:
col 0 col1 col262309 396.5099154 label1
我想在组合的特征向量[size,time]上进行训练和测试。这是否可行?这样做是否正确?如果可行,我该如何操作?
回答:
首先回答您的问题:
我想在组合的特征向量[size,time]上进行训练和测试。这是否可行?这样做是否正确?如果可行,我该如何操作?
将这两个特征结合起来并不是正确的做法,因为它们处于不同的量纲(如果它们确实如名字所示),而且结合它们会导致信息的损失,这两个特征是完全独立的,对于任何监督学习的机器学习算法都是如此。因此,我建议将这两个特征分别处理,而不是合并成一个。
现在让我们进入下一部分:
如何将这些数据保存到Excel表格中,以及如何使用这个特征集来训练模型?我目前正在使用SVM分类器进行工作。
- 存储数据:在我看来,您可以以任何您喜欢的格式存储数据,但我更倾向于使用CSV格式,因为它方便且数据文件的加载速度更快。
sample_data.csv
size,time,class_label100,150,label1200,250,label2240,180,label1
以下是读取CSV数据并训练SVM的代码:
import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn import preprocessingfrom sklearn.svm import SVCfrom sklearn.metrics import accuracy_score# loading datadata = pd.read_csv("sample_data.csv", error_bad_lines=True, warn_bad_lines=True)# Dividing into dependent and independent featuresY = data.class_label_col.valuesX = data.drop("class_label_col", axis=1).values# encode the class column valueslabel_encoded_Y = preprocessing.LabelEncoder().fit_transform(list(Y))# split training and testing datax_train,x_test,y_train,y_test=train_test_split(X,label_encoded_Y,train_size=0.8,test_size=0.2)# Now use the whichever trainig algo you wantclf = SVC(gamma='auto')clf.fit(x_train, y_train) # Using the predictory_pred = clf.predict(x_test)