机器学习——数据清洗和特征选择

数据读取和处理

pandas读取数据
Python提供了强大的包,直接用于各种数据读取,比如pandas。
在这里插入图片描述

import numpy as np
import pandas as pd

pd.set_option('display.width', 200)
data = pd.read_excel('sales.xlsx', sheet_name='sheet1', header=0)
print ('data.head() = \n', data.head())
print ('data.dtypes = \n', data.dtypes)
print ('data.columns = \n', data.columns)

# 运行结果
data.head() = 
    account                         name  ...     Feb    Mar
0   211829   Kerluke, Koepp and Hilpert  ...   62000  35000
1   320563               Walter-Trantow  ...   45000  35000
2   648336   Bashirian, Kunde and Price  ...  120000  35000
3   109996  D'Amore, Gleichner and Bode  ...  120000  10000
4   121213                Bauch-Goldner  ...  120000  35000
[5 rows x 9 columns]
data.dtypes = 
 account         int64
name           object
street         object
city           object
state          object
postal-code     int64
Jan             int64
Feb             int64
Mar             int64
dtype: object
data.columns = 
 Index(['account', 'name', 'street', 'city', 'state', 'postal-code', 'Jan', 'Feb', 'Mar'], dtype='object')

模糊查询和替换
Python还提供了Fuzzywuzzy,可用于模糊查询和替换。如果提供对应的字符串库,则通过Fuzzywuzzy用于查找和替换给定文本中错误的字符串。比如直接计算两个字符串的编辑距离:
安装

pip install fuzzywuzzy
from fuzzywuzzy import fuzz
from fuzzywuzzy import process

print (fuzz.ratio('Python Package', 'PythonPackage'))

# 运行结果
96

数据清洗

机器学习的基本流程:数据读取–>数据清理–>特征选择–>模型选择–>模型调优。
数据清理:

  • 将时间、日期、数值等转为统一格式
  • 去除文本中不需要的特殊字符等
  • 去除内容与字段不对应的情况,如:字段为性别,描述为姓名
  • 数据去重
  • 替换不合理值
  • 核验多数据源数据关联时是否正确

例:一般数据中不可避免的有噪声,需要想办法对数据进行清洗,比如下图。
在这里插入图片描述

主成分分析PCA

PCA是一种常用的数据分析方法,通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。
具体思路:寻找样本的主方向u。将m个样本投影到直线l上,得到m个位于直线l上的点,计算m个投影点的方差,认为方差最大的直线方向就是主方向(若m个样本投影到一个点上,则信息基本全部损失;差距越大,损失越小,越接近原始值)。
降维求解的过程:

  1. 归一化:也即中心化,处理后的均值为0
  2. 求出协方差矩阵 A T A A^TA ATA
  3. 求出协方差矩阵的特征值及对应的特征向量
  4. 将特征向量按对应特征值从大到小按行排列成矩阵,取前k行组成矩阵P
  5. Y=PX即为降维到k维后的数据
# 鸢尾花数据集
   sepal_length  sepal_width  petal_length  petal_width  type
0           5.1          3.5           1.4          0.2     0
1           4.9          3.0           1.4          0.2     0
2           4.7          3.2           1.3          0.2     0
3           4.6          3.1           1.5          0.2     0
4           5.0          3.6           1.4          0.2     0
···

在这里插入图片描述

one-hot编码

在机器学习问题中我们经常会遇到分类特征,这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。
One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

祖国特征:[“中国”,"美国,“法国”](这里N=3):
中国 => 100
美国 => 010
日本 => 001

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值