(一) KNN---异常行为检测

本文介绍了如何使用KNN进行异常行为检测,详细阐述了数据探索过程,包括查看用户操作命令文件和执行命令情况。通过模型代码演示了KNN的训练与预测步骤,并探讨了交叉验证中的`cross_val_score`,强调了其在模型评估中的作用。最后,简要介绍了KNN算法,特别是加权投票法在分类预测中的应用。
摘要由CSDN通过智能技术生成

一、项目说明

	linux系统主机安全检测。通过收集linux的bash操作日志,通过训练识别特定用户的操作习惯,然后进一步识别出异常操作行为。本次使用k近邻检测执行异常指令。本次数据使
用 http://www.schonlau.net/ 上发布的针对linux操作的训练数据。训练数据包括50个用户的操作痕迹, 每个日志包含15000条操作命令,前5千条都是正常操作,后1万条随机包含异常操作。数据集每100条操作作为一个操作序列,同时进行了标注(label.txt文件),只要有1条操作异常即认为是操作异常序列。

二、数据初步探索

1、查看用户操作命令文件(共计约3M左右)

import os
user_50_cmd_li = os.listdir("./data/MasqueradeDat/")
print("命令日志文件有:\n", user_50_cmd_li)
命令日志文件有:
 ['label.txt',
  'User36', 'User5', 'User44', 'User20', 'User13',
  'User23', 'User10', 'User30', 'User4', 'User17', 
  'User31', 'User32', 'User14', 'User2', 'User27', 
  'User11', 'User41', 'User35', 'User28', 'User37',  
  'User18', 'User34', 'User12', 'User42', 'User19', 
  'User39', 'User45', 'User9', 'User3', 'User15', 
  'User21', 'User43', 'User24', 'User26', 'User49', 
  'User16', 'User7', 'User1',  'User25', 'User8'
  'User29', 'User46', 
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
KNN(K-近邻)算法可以用于异常检测。下面是一种基本的方法来使用KNN算法进行异常检测: 1. 数据准备:首先,需要准备一个数据,其中包含正常样本和异常样本。正常样本代表了正常行为或正常状态,而异常样本代表了异常行为异常状态。 2. 特征选择:根据具体问题,选择适当的特征来描述数据。这些特征应该能够充分区分正常样本和异常样本。 3. 训练和测试划分:将数据划分为训练和测试。通常,训练包含大部分正常样本,而测试包含正常样本和少量异常样本。 4. 计算距离:对于每个测试样本,在训练中计算它与所有训练样本之间的距离。可以使用欧几里得距离或其他距离度量方法。 5. K值选择:选择一个合适的K值,即考虑最近的K个邻居。K值的选择需要根据具体问题和数据进行调优。 6. 预测异常:对于每个测试样本,找到其最近的K个邻居。如果这些邻居中有较多的异常样本,则将该测试样本标记为异常。 7. 模型评估:计算模型的性能指标,如准确率、召回率、F1值等,来评估异常检测的效果。 需要注意的是,KNN算法对于异常检测可能存在一些限制。例如,在高维数据中,KNN可能会受到维度灾难的影响。此外,KNN算法对数据的分布假设较弱,可能对噪声和离群点敏感。因此,在实际应用中,需要根据具体问题和数据的特点选择合适的异常检测方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值