我目前正在处理有关Human Resources Analytics的Kaggle数据集。
我清理了数据集,对一些模型进行了基准测试。最好的是RandomForestClassifier,它可以预测员工是否以良好的准确性(大约99%)离开公司。
现在,我想找到公司中最有可能离职的员工。我在火车模型上使用了predict_proba
方法,但这给了我员工离开或不离开的可能性。这不是员工离开的可能性。此外,数据集是用于训练的数据集。
我不知道如何预测此类信息。例如,在线性回归中,我会寻找最接近估计量的点,但是有一个整体,我不知道。
如果您想尝试一下,我在下面附上了一段代码:
dataset = pd.read_csv("HR.csv")
# Cleanup/Preparation datas
convert_dict = {"high" : 3, "medium": 2, "low": 1}
dataset = dataset.replace({"salary": convert_dict})
dataset = pd.get_dummies(dataset)
X = dataset.drop("left", axis=1)
y = dataset["left"]
scaler = MinMaxScaler()
X = scaler.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# training best model (I pass the benchmark part)
model = RandomForestClassifier(bootstrap=False, n_estimators=50)
model.fit(X_train, y_train)
acc = model.score(X_test, y_test)
print(acc)
# Eval
eval_dataset = dataset[dataset["left"] == 0]
X = eval_dataset.drop("left", axis=1)
y = eval_dataset["left"]
X = scaler.transform(X)
y_pred = model.predict_proba(X) # => This is wrong
谢谢你的支持,
最佳答案
您说您的模型准确度约为99%,但这在测试中吗?如果太棒了!现在,如果您要输入包含所有数据字段的新数据,则可以在每个观察对象上使用predict_proba
方法来预测它们是否离开。从这个意义上讲,您可以将其用作将要离开的简单代理,因为这是您目前拥有的最好的。
我会给你一个快速的假设进行测试。假设员工的所有情况都一样,但是时间仍在过去。您可以更新员工在公司度过的时间,并查看他们随时间离开的可能性如何变化。当然,这并不是预测未来几年的好方法(希望人们会成长,而其他参数也会发生变化),但是它可以使您很好地了解某人将忍受多久的现状,基于从训练数据中学到的知识。
关于python - RandomForest分类-更改类的最接近点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46833744/