【发布时间】:2018-01-27 06:31:26
【问题描述】:
我正在研究 csv 的多变量回归,基于多个因素预测作物表现。我的一些专栏是数字和有意义的。其他的是数字和分类,或字符串和分类(例如,作物品种,或情节代码或其他)。我如何教 Python 使用它们?我找到了 One Hot Encoder (http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html#sklearn.preprocessing.OneHotEncoder),但不太明白如何在这里应用它。
到目前为止我的代码:
import pandas as pd
import statsmodels.api as sm
from sklearn.preprocessing import StandardScaler
df = pd.read_csv('filepath.csv')
df.drop(df[df['LabeledDataColumn'].isnull()].index.tolist(),inplace=True)
scale = StandardScaler()
pd.options.mode.chained_assignment = None # default='warn'
X = df[['inputColumn1', 'inputColumn2', ...,'inputColumn20']]
y = df['LabeledDataColumn']
X[['inputColumn1', 'inputColumn2', ...,'inputColumn20']] = scale.fit_transform(X[['inputColumn1', 'inputColumn2', ...,'inputColumn20']].as_matrix())
#print (X)
est = sm.OLS(y, X).fit()
est.summary()
【问题讨论】:
-
对于你的分类数据,你应该试试 scikit learn 的标签编码器 (scikit-learn.org/stable/modules/generated/…)
-
@KevinK。谢谢!如果您不介意我问,我将如何将其应用于此示例?
-
创建一个新的标签编码器
le = LabelEncoder(),使其适合您的数据le.fit(df['SomeColumn'])并转换您的数据df['SomeColumn'] = le.transform(df['SomeColumn'])
标签: python pandas scikit-learn sklearn-pandas one-hot-encoding