import warnings
from pandas import read_csv
from pandas import concat
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
warnings.filterwarnings('ignore')
# Naive模型
# 加载数据集
data1=read_csv('E:/bryou/数据挖掘/数据挖掘/实验数据集/室内居住检测/datatest.txt',header=0,index_col=1, parse_dates=True, squeeze=True)
data2=read_csv('E:/bryou/数据挖掘/数据挖掘/实验数据集/室内居住检测/datatraining.txt',header=0, index_col=1, parse_dates=True, squeeze=True)
# 垂直堆叠和维持时间顺序
data=concat([data1,data2])
# 删除列
data.drop('no',axis=1,inplace=True)
# 将结果保存到名为“ combined.csv ” 的新文件中
data.to_csv('E:/bryou/数据挖掘/数据挖掘/实验数据集/室内居住检测/combined.csv')
# 加载数据集
data=read_csv('E:/bryou/数据挖掘/数据挖掘/实验数据集/室内居住检测/combined.csv',header=0, index_col=0, parse_dates=True, squeeze=True)
values=data.values
# 讲数据分为输入输出
X, y = values[:, :-1], values[:, -1]
# 划分数据集
trainX, testX, trainy, testy = train_test_split(X, y, test_size=0.3, shuffle=False, random_state=1)
# 预测函数
def naive_prediction(testX, value):
return [value for x in range(len(testX))]
#预测每个类值的评估
for value in [0,1]:
# 预测
yhat=naive_prediction(testX, value)
# 评估
score = accuracy_score(testy, yhat)
print('Naive=%d score=%.3f' % (value, score))
"""
评估测试集中每个示例的所有0(未占用)和全1(占用)的预测,并使用精度度量来评估方法。
运行该示例打印天真预测和相关分数。通过预测所有0,我们可以看到基线分数约为82%的准确度
"""