CCF2020-室内用户运动时序数据分类
机器学习和深度学习分类方法
我用sk-learn尝试了机器学习分类方法,用pytorch尝试了神经网络分类方法。结果是深度学习过拟合了,数据集太小。机器学习方法达到了88%的正确率。
机器学习方法
数据处理
废话不多说,直接nunpy、pands。
import numpy as np
import pandas as pd
train_file = r"*\*\*\train.csv"
test_file = r"*\*\*\test.csv"
def data_precess(filename):
df = pd.read_csv(filename)
data = []
for i in df:
data.append(df[i].astype(np.float32))
if 'CLASS' in df:
label = np.array(df['CLASS'].astype(np.long))
#去掉前面的序号和后面的标签
data = np.array(data)[1:-1].T
else:
label = np.array([])
#去掉前面的序号
data = np.array(data)[1:].T
return data,label
train_data,train_labels = data_precess(train_file)
test_data,_ = data_precess(test_file)
到此实现了训练集和测试集的提取。
经过我的观察发现训练集和测试集的最大值和最小值都是1和-1。这就很容易实现归一化。我就直接
train_data = (train_data+1)/2
test_data = (test_data+1)/2
我的数据处理到处为止,但我想肯定还不够,好的数据处理手段是机器学习的基础。我也在尝试,也希望读者自己尝试不同的数据处理手段。
机器学习方法比较
SVC
from sklearn.model_selection import cross_val_score
from sklearn import svm
clf = svm.SVC(C=1, kernel='poly', degree=2, gamma='scale', coef0=0.0, shrinking=True, probability=True,
tol=0.001, cache_size=200, class_weight=None, verbose=<