机器学习相关模板
本页面的演示基于diabetes
数据集。
import pandas as pd
from sklearn.datasets import load_diabetes
data = load_diabetes()
df = pd.DataFrame(data.data, columns=data.feature_names)
df["target"] = data.target
数据集处理
去重、去空、填充空值
去重
df = df.drop_duplicates(subset=["COLUMN"])
去空
df = df.dropna(axis=0, how="any", subset=None)
axis
确定是删除包含缺失值的行还是列。0或'index':删除包含缺失值的行。1或'columns':删除包含缺失值的列。
how
'any':如果存在任何NA值,则删除该行或列。'all':如果所有值都是NA,则删除该行或列。
subset
列标签或标签的序列, 可选
另一个轴上需要关注的标签,举例,如果在去掉空行,那么这里需要填入一个列的列表。
填充空值
df = df.fillna(value=VALUE, method=None)
value
用于填补的值。
method
指定填补方法,ffill使用前一个有效值填补,bfill是使用下一个有效值填补。
基于插值的空值填补参见特征工程部分的代码。
划分训练集测试集
基于sklearn中已有的train_test_split
函数。
from sklearn.model_selection import train_test_split
实际使用时
X_train, X_test, y_train, y_test = train_test_split(
df.drop("target", axis=1), df["target"], test_size=0.2, random_state=42
)
模型训练及评估
以随机森林回归为例
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
训练及评估代码为
regr = RandomForestRegressor(n_estimators=100, random_state=42)
regr.fit(X_train, y_train)
y_pred = regr.predict(X_test)
mse = mean_squared_error(y_test, y_pred)