我正在做一个基于机器学习(Python)的项目,并在我的数据上尝试所有模型。真的很迷茫
分类和回归
def normalize(df):
from sklearn.preprocessing import MaxAbsScaler
scaler = MaxAbsScaler()
scaler.fit(df)
scaled = scaler.transform(df)
scaled_df = pd.DataFrame(scaled, columns=df.columns)
return scaled_df
data=normalize(data)
X=data.drop['col']
y=data['col']
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
X=data.drop['col']
y=data['col']
def normalize(df):
from sklearn.preprocessing import MaxAbsScaler
scaler = MaxAbsScaler()
scaler.fit(df)
scaled = scaler.transform(df)
scaled_df = pd.DataFrame(scaled, columns=df.columns)
return scaled_df
X=normalize(X)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
TLDR;对输入数据进行标准化,但不要对输出进行标准化。
从逻辑上讲,归一化既取决于算法,也取决于特征。
有些算法不需要任何规范化(如决策树)。
对数据集应用归一化:如果数据集中有多个特征,则应该对每个特征执行归一化,但对整个数据集中存在的所有示例进行归一化。
例如,假设您有两个特征 X 和 Y。特征 X 始终是 [0,10] 范围内的小数。另一方面,您的 Y 在 [100K,1M] 范围内。如果您对 X 和 Y 进行一次归一化,并对 X 和 Y 组合进行一次归一化,您会看到特征 X 的值如何变得微不足道。
对于输出(标签):
通常,不需要对任何回归或分类任务的输出或标签进行归一化。但是,请确保在训练时间和推理时间对训练数据进行归一化。
如果任务是分类,常见的方法就是对类别编号进行编码(如果您有狗和猫类别。您将 0 分配给一个,将 1 分配给另一个)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句