python数据处理——使用dataframe传入sklearn模型的常用操作

本文探讨了数据预处理中归一化的重要性和具体操作,包括使用MinMaxScaler和Binarizer对数据进行归一化,以及如何在金融数据集中生成标签。通过实例展示了归一化对不同模型性能的影响,并提供了多个数据预处理教程的链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先确定x_all和y_all,x_all经常涉及的问题就是归一化的问题,统一各个features的量纲,这是非常有必要的,

对于数据x_all进行归一化有几种常见的操作,比如我要对某一列进行归一化,就可以这样:


t = pd.DataFrame({
    'A': [1, 1, 2, 2, 3],
    'B': [4, 5, 5, 6, 6]
})
t.A =  MinMaxScaler().fit_transform(t.A.astype('float').values.reshape((-1, 1)))
print t.A
t.A = Binarizer(2).fit_transform(t.A.astype('float').values.reshape((-1, 1)))
print t.A

另外有一个操作就是对X整体进行一个归一化,如这样

import numpy as np
from sklearn import preprocessing


# 定义array
a = np.array([-10, 2.3, 13.7, 56, 108])
print a

# 对array进行归一化(normalization)
# scale进行的操作是按列减去均值, 除以方差, 因此数据的均值为0, 方差为1
print preprocessing.scale(a)

结果是这样的:

[ -10.     2.3   13.7   56.   108. ]
[-1.01951435 -0.73451375 -0.47036685  0.50975718  1.71463777]

上面的两段代码来自这里,博主还给了在svm模型下效果的测试,不得不说对于一些模型而言,进行归一化对模型的提升很有帮助,而在这篇在金融数据集给出的测试则表明,归一化对模型的提升并不是一颗银弹,如在树模型下,归一化的效果就很一般般

而y_all就是打标签,一般是要自己来处理的,对于金融数据的话,最常见的标签就是涨跌,一般是利用这一时刻的收益率来判断的,涉及到的操作就是对dataframe进行列的生成像是这样,对Data中‘ret’这列进行处理,这列代表的含义就是收益率,如果收益率大于0.01就是代表行情利多,否则就是利空,这样就可以了

import numpy as np 
import pandas as pd 
  

def function(a):
    if a>0.01:
        return 1
    elif a<0.01:
        return -1
    else:
        return 0


def deal_data(Data):
    Data['label'] =Data.apply(lambda x: function(x.ret), axis=1)

此外对于模型数据的预处理是一门很重要的学问,这里还给出了博主找到的几个还不错的csdn博主的教程,希望可以帮到大家:

数据归一化和其在sklearn中的处理

关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化

待续,有对这方面感兴趣的老铁,可以私信聊一下,或者评论区讨论分享

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化橙同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值