python - 寻找影响净收入的特征

标签 python algorithm machine-learning data-science

我想使用机器学习来确定影响净收入 的特征,并根据这些特征从数据中得出结论。数据集是一个汽车共享公司的数据(比如Turo)。数据集包含约 80000 行 14 列。

我很难构建一个 EDA,尤其是使用 ML 算法来找出影响 net_revenue 的特征。

enter image description here

到目前为止我做了什么

  1. 我对这些数据做了相关矩阵分析,找出了'youth driver fee''net_revenue' 具有最相关的特征( 我将 makemodel 列排除在分析之外,因为品牌和型号太多,很难预测它们对 net_revenue 的影响)

  2. 我想看看这种相关性与某些 ML 算法相关,例如 Logistic 回归Randomforest。为了进一步应用 RandomForest ML 来验证这种相关性,我将分类变量(payment_type、returning_guest 和 returning_host)转换为虚拟变量(0 和 1)

所以我尝试按照这个 post 来应用这两个模型

逻辑回归

cols=['driver_age', 'completed_trips', 'vehicle_price', 'lead_time', 'trip_length', 
              'trip_revenue', 'youth_driver_fee', 'insurance_fee', 'delivery_fee', 'returning_quest_First_time','returning_quest_Repeat','returning_host_First_time','returning_host_repeat']

            X=data[cols]
            y=data['net_revenue']

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
logreg = LogisticRegression()
logreg.fit(X_train, y_train)

*逻辑回归的默认设置

LogisticRegression(C=1.0,class_weight=None,dual=False,fit_intercept=True,intercept_scaling=1,max_iter=100,multi_class='ovr',n_jobs=1,penalty='l2',random_state=无,solver='liblinear',tol=0.0001,verbose=0,warm_start=False)

** IPython notebook 在执行上面的代码后死机了,看起来它永远不会输出任何东西。所以我必须重新启动内核。

随机森林

from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
rf.fit(X_train, y_train)

**同样的问题!

我的问题

  1. 如何建立机器学习模型来寻找影响净收入的特征?是否有解决相同问题的任何资源? Kaggle 比赛绝对不错,或者可能是中等职位。

我找到了一个数据集来预测目标值的特征,但目标值看起来像分类我的是连续的。 来自 https://www.kaggle.com/prasadkevin/prediction-of-quality-of-wine

  1. 要使用 LogisticRegressionRandomForestnet_revenue 是否必须是分类变量?

  2. 你碰巧知道 Kaggle 上的类似数据集:)?因为我找不到任何像这样的相关 ML 流程!

如有任何建议,我们将不胜感激!

谢谢

最佳答案

一些事情。

使用任何机器学习模型时,您必须将每个分类变量转换为虚拟变量,而不仅仅是随机森林。

您正在使用 RandomForestClassifier 解决回归问题,这不是您想要的。而是使用 sklearn.ensemble.RandomForestRegressor

如果没有出现错误,您的机器学习模型可能正在运行。由于您有 80,000 行,因此可能只需要一段时间。定义模型时,将它们定义为

logreg = LogisticRegression(verbose=1)

rf = RandomForestRegressor(verbose=1)

如果模型正在运行,它们会打印出它们的进度,这样您就可以看到发生了什么。

关于python - 寻找影响净收入的特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57839546/

相关文章:

python - pandas 在奇数行取平均值

python - 如何在sklearn中使用自定义评分函数 cross_val_score

algorithm - 并行计算总和

c++ - Double 或 float - 优化例程

javascript - 2D 网格删除/操作算法 - 元素的组织及其在数组中的位置

r - randomForest R 包的奇怪结果

machine-learning - 可以使用哪些算法来匹配句子?

Python 日志记录和子进程输出和错误流

python - pylint导入和动态路径修改

Python azure 模块: how to create a new deployment