我将包含各种功能的pandas DataFrame传递给sklearn,我不希望估算器将dataframe索引用作功能之一。 sklearn是否将索引用作功能之一?
df_features = pd.DataFrame(columns=["feat1", "feat2", "target"])
# Populate the dataframe (not shown here)
y = df_features["target"]
X = df_features.drop(columns=["target"])
estimator = RandomForestClassifier()
estimator.fit(X, y)
答案 0 :(得分:3)
否,sklearn
不会将索引用作您的功能之一。它实际上发生在here上,当您调用fit方法时,将应用check_array
函数。现在,如果您深入研究check_array
function,您会发现您正在使用np.array
函数将输入转换为数组,该函数实际上从数据帧中删除了索引,如下所示:< / p>
import pandas as pd
import numpy as np
data = [['tom', 10], ['nick', 15], ['juli', 14]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])
df
Name Age
0 tom 10
1 nick 15
2 juli 14
np.array(df)
array([['tom', 10],
['nick', 15],
['juli', 14]], dtype=object)
希望这会有所帮助!