实际应用机器学习中特征工程的方法

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

实际应用机器学习中特征选择工程的方法(一、采用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)
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值