【问题标题】:Finding features that influence net revenue寻找影响净收入的特征
【发布时间】:2020-01-10 08:48:12
【问题描述】:

使用机器学习,我想识别影响net revenue 的特征,并据此从数据中得出结论。数据集是汽车共享公司数据(如Turo)。数据集包含约 80000 行 14 列。

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

到目前为止我做了什么

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

  2. 我希望看到这种相关性与一些 ML 算法相关,例如 Logistic regressionRandomforest。为了进一步应用 RandomForest ML 来验证这种相关性,我将分类变量(payment_type、returning_guest 和 return_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 的默认设置

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

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

随机森林

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

**同样的问题!

我的问题

  1. 如何使用 ML 模型来查找影响净收入的特征?是否有任何资源可以解决相同的问题? Kaggle 比赛绝对没问题,或者可能是中等职位。

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

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

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

任何建议将不胜感激!

谢谢

【问题讨论】:

    标签: python algorithm machine-learning data-science


    【解决方案1】:

    一些事情。

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

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

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

    logreg = LogisticRegression(verbose=1)
    

    rf = RandomForestRegressor(verbose=1)
    

    如果模型正在运行,它们将打印出它们的进度,以便您查看发生了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 2017-07-19
      • 2018-12-11
      • 2019-08-07
      • 1970-01-01
      相关资源
      最近更新 更多