随机森林分类 – 最接近改变类别的点

我目前正在处理一个关于人力资源分析的Kaggle数据集。

我已经清理了数据集,并对一些模型进行了基准测试。表现最佳的是RandomForestClassifier,它能够以较高的准确率(约99%)预测员工是否已离职。

现在,我想找出公司中最有可能离职的员工。我在训练模型上使用了predict_proba方法,但这只是给出了员工是否已离职的概率,而不是员工将来离职的概率。此外,用于训练的数据集也是同样的数据集。

我不知道如何预测这类信息。例如,在线性回归中,我会寻找最接近估计器的点,但在使用集成方法时,我不知道该怎么做。

如果你想尝试的话,我在下面附上了一段代码:

dataset = pd.read_csv("HR.csv")# Cleanup/Preparation datasconvert_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)# Evaleval_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方法来预测他们是否已经离职。从这个意义上说,你可以将此作为将来是否会离职的简单代理,因为这是你目前最好的选择。

不过,我会给你一个快速的假设来测试。假设员工的所有情况保持不变,但时间继续流逝。你可以更新员工在公司的工作时间,看看他们离职的概率如何随时间变化。当然,这种方法不适合预测几年后的情况(因为希望人们会成长,其他参数也会发生变化),但它可以让你很好地了解一个人在当前状态下能忍受多久,这是基于从训练数据中学到的知识得出的结论。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注