绘制的图表如下:

我们所绘制的图表越多,我们对数据的懂得也越深,对数据的┞符体分布情况懂得也越深。今朝我们手上的数据集维度很低,那么问题来了,如不雅我们的数据集是高维度的,我们该若何处理?有很多技巧可以降低数据集的维度,使“重要”特点更为凸起。比如PCA和t-SNE算法可以将数据集绘制成三维甚至二维图像。
前面我们已经做了足够多的统计工作,但在机械进修方面我们只做了一部分工作,如收集数据、清理及预备练习数据。在开端机械进修前,我们先要完成以下工作。
1、起首,我们须要将两部分数据集(Dataset)并为一个数据框(DataFrame)。
2、其次,我们须要数据框分为两部分,第一部分用于练习,第二部分用于测试。
3、接下来,我们将应用几个机械进修算法,看一下结不雅若何。
(一)数据集预备
- import pandas as pd
- dataset = pd.read_csv('malware-dataset.csv')
- """
- Add this points dataset holds our data
- Great let's split it into train/test and fix a random seed to keep our predictions constant
- """
- import numpy as np
- from sklearn.model_selection import train_test_split
- from sklearn.metrics import confusion_matrix
- #let's import 4 algorithms we would like to test
- #neural networks
- from sklearn.preprocessing import StandardScaler
- from sklearn.neural_network import MLPClassifier
- #random forests
- from sklearn.ensemble import RandomForestClassifier
- """
- Let's prepare our data
- """
- state = np.random.randint(100)
- X = dataset.drop('clean',axis = 1)
- y = dataset['clean']
- X = np.asarray(X)
- y = np.asarray(y)
- X = X[:,1:]
- X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.1,random_state=0)
如今我们手上有了4个大年夜型矩阵,个中X_train和y_train将用于练习不合的分类器,X_test用于标签猜测,y_test用于指标衡量。事实上,我们将比较X_test和y_test的猜测值,以便分析算法的具体实现。
(二)算法选择
起首来看看“Random Forests”(随机丛林)算法,该算法是“决定计划树”(Decision Trees)算法的一种集成算法,核心思惟是在练习时代内创建大年夜量分类决定计划树,输出的分类即为样本分类的基本模型。随机丛林算法在解决二进制文件分类问题上异常有效。
- #let's start with random forests
推荐阅读
众所周知,Python的并行处理才能很不睬想。我认为如不雅不推敲线程和GIL的标准参数(它们大年夜多是合法的),其原因不是因为技巧不到位,而是我们的应用办法不恰当。大年夜多半关于Python线>>>详细阅读
本文标题:机器学习在恶意软件检测中的应用
地址:http://www.17bianji.com/lsqh/34783.html
1/2 1