实际应用机器学习中特征选择工程的方法(一、采用KNN分类算法)
前言:在实际应用机器学习分类过程中,通常为了提高分类的准确率从多个角度提取了多种不同的特征值。而在工程中太多的特征值向量会造成冗余,降低模型处理速度以及准确率。因此在这里就采用了特征工程去做特征选择以及降维处理,图片中的红色字体是目前楼主用到的方法。

数据集
在实际工程中选取了三十余种特征值,下面是部分特征值的目录:


数据集标签有两种,分别是用0和1来进行表示两种不同类别情况,同时由于是小样本不均衡数据,所以对数据集进行了样本均衡。
特征选择利用在KNN分类中
KNN是一种非常简单的分类算法,是指一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。首先是将所有种类的特征值导入KNN算法, 这里就没去调参,都是使用函数中默认的参数,数据集和测试集采用8:2的随机分割。然后经过两百次平均后得到了96%的准确率。(这里由于选取的两种情况差别较大,因此原始分类准确度就比较高)

# KNN原始算法
# _*_ coding: utf-8 _*_
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
from csv import reader
def load_csv(filename):
dataset = list()
with open(filename, 'r') as file:
csv_reader = reader(file)
for row in csv_reader:
if not row:
continue
dataset.append(row)

本文探讨了在实际机器学习中,如何通过特征工程提高KNN分类算法的准确率。通过数据集平衡、交叉验证调参、过滤法(卡方检验和互信息)及封装法(递归特征消除)进行特征选择,最终实现30余维特征降至3维,同时保持97%以上的分类准确率。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



