Skip to content

Use KNN and Tensorflow to classifier and determine the htru2 dataset

Notifications You must be signed in to change notification settings

Flians/HTRU2_classifier

Repository files navigation

HTRU2_classifier

Environment:Ubuntu16.04 + tensorflow1.6 + python3.5 + cuda9.0 + cuDNN7.1 (NVIDIA GeForce GTX 960M)

基于机器学习和模式识的脉冲星检测

任务一:基于固定比例的训练和测试样本集,以及固定特征,设计分类方法,检测脉冲星检测的准确率

KNN(K-Nearest Neighbor)算法, KNN算法的训练过程相对比较容易,精度也比较高,对异常值不敏感、无数据输入假定。它的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.

  1. 训练集和测试集的比例是8:2,因为一般数据量比较小(万以下)的情况下,比较合适的比例是7:3,而HTRU_2数据集共有将近1万8千条数据,故我提高了一些训练集的比例,最终选择尝试4:1的比例.

  2. 使用panda对cvs文件处理。首先计算训练样本和测试样本中每个样本点的距离,其中,我对距离的定义方式为:两个向量对应的数据相减取绝对值,最后再相加,对上面所有的距离值进行排序,然后取最近的距离。(another way: 两个向量对应的数据相减后平方,再相加)

  3. 最终运行了多遍程序,得到了准确率96%.

任务二:训练一个有效分类系统,检测训练集的正负样本比例对分类系统的影响。如,正负比例1:1,1:2,…, 1:N等,比较分类系统的有效性。

将正负样本分开,因为正样本的数量比较少,取得测试集和训练集的比例是0.15。然后为了检测训练集的正负样本比例对分类系统的影响,将正负样本的比例分别从1:1开始测试,直到1:7,探究正负样本的比例对分类系统的影响.

--------比例是1:1的时候,F1的值约为25%

--------比例是1:2的时候,F1的值约为55%

--------比例是1:3的时候,F1的值约为65%

--------比例是1:4的时候,F1的值约为71%

--------比例是1:5的时候,F1的值约为75%

--------比例是1:6的时候,F1的值约为76%

--------比例是1:7的时候,F1的值约为77%

每一个比例都跑10次,去掉最高和最低的取平均数,做成了一个对比表格,可以发现一开始比例缩小的时候,F1的值提高的很明显,但是缩小到一定程度的时候,F1的值慢慢趋于平稳,保持在77%左右

About

Use KNN and Tensorflow to classifier and determine the htru2 dataset

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages