【发布时间】:2018-09-06 22:46:37
【问题描述】:
我不确定该方法的确切名称是什么,但我会描述它,希望有人可以标记它并相应地修改问题。这是创建数据集的代码。
import numpy as np
import pandas as pd
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=300,
n_features=6,
n_informative=4,
n_classes=2,
random_state=0,
shuffle=True,
shift = 5,
scale = 10)
# Creating a dataFrame
df = pd.DataFrame({'Feature 1':X[:,0],
'Feature 2':X[:,1],
'Feature 3':X[:,2],
'Feature 4':X[:,3],
'Feature 5':X[:,4],
'Feature 6':X[:,5],
'Class':y})
df.describe()
我们以feature 2和feature 4的输出为例来解释我的观点。
假设我们只有正值,如何使特征2和特征4根据它们的列值的范围在0到1之间。
让我进一步说明。 特征 2 和特征 4 的最小值将变为 0,最大值将变为 1。但是,从上面我们可以看到,特征 2 的最大值在 73 左右,特征 4 的最大值为 91。这个想法是为了表示变化在特征 2 上,73 到 71 是 0 到 1 值中较大的数字,然后是 91 到 89。虽然两者的变化差异相同,都是“2”,但由于它们的范围,特征的变化更显着2 与功能 4 相比,由于总体变化。
完成以下操作后,我们将创建一个表示新数据的新数据集。
这个想法是稍后根据值相对于列范围的变化来移除特征,而不是相对于整个数据集的变化幅度。
我希望这不会令人困惑。
【问题讨论】:
标签: python pandas numpy scikit-learn