基于RSS时间序列的室内定位(机器学习)

本文介绍了一种基于RSS时间序列数据的室内定位方法,利用PyTorch搭建简单神经网络模型进行训练和测试。在训练集上处理异常值后,模型在测试集上实现了约95%的正确率。

前言:

如果你看过我的前两篇博客,就对我的前期数据处理工作有所了解,在前期工作中,我们已经得到了基于时间序列求均值归一化之后的RSS数据和相应label,而这篇博客主要讲述了,搭建简单神经网络模型,进行训练测试等环节。(训练集已经在上个博客中得到,测试集是直接随机从原始数据中提取,并进行归一化操作,细节部分在下文中会提到。)

1.导入模块和训练集和测试集

1.1导入模块

import torch
from torch import nn
import torch.utils.data as Data
from torch.utils.data import DataLoader
from torch.autograd import Variable
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

1.2导入训练集和测试集

train_file = pd.read_csv('H:/average_train_data/train_data.csv', header=None,
                         usecols=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20))
test_file = pd.read_csv("H:/2-12/test_data_ann_1.csv", header=None, usecols=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20))

导入之前处理好的训练集和测试集,训练集是5040×21的数据,其中0-19 列为0-1的数据,第20列为label列,有21个label,所有每个label有240行数据(5040=240*21),测试集是从原始数据中随机取得的,每个label20个,总计420行数据,所以测试集就是420×20的数据。

1.3测试集中的异常值处理
因为不同于训练集由取均值的方法得到,测试集是直接随机提取并归一化的,会出现不少的异常值,即存在不在[0,1]区间内的数,这些异常值会大大降低测试的准确度,所以接下来用numpy的方法处理这些异常值。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值