寻找影响净收益的特征

2024-04-29 01:50:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

enter image description here

到目前为止我做了什么

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

  2. 我想看看这种关联与一些ML算法相关,比如Logistic regressionRandomforest。为了进一步应用RandomForest ML来验证这种相关性,我将分类变量(payment\u type、returning\u guest和returning\u 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)

*逻辑回归的默认设置

逻辑回归(C=1.0,class\u weight=None,dual=False,fit\u intercept=True,intercept\u scaling=1,max\u iter=100,multi\u class='ovr',n\u jobs=1,penal='l2',random\u state=None,solver='liblinear',tol=0.0001,verbose=0,warm\u start=False)

**执行上述代码后,IPython笔记本会冻结,看起来它永远不会输出任何东西。因此我必须重新启动内核

随机森林

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

**同样的问题

我的问题

  1. 如何使用ML模型来查找影响净收入的功能?是否有任何资源可以解决相同的问题?卡格尔的比赛肯定很好,也许是一个中等职位

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

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

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

任何建议都将不胜感激

泰铢


Tags: 数据from模型testimporthostnetdriver
1条回答
网友
1楼 · 发布于 2024-04-29 01:50:53

一些事情

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

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

如果没有抛出错误,您的机器学习模型可能正在运行。因为您有80000行,所以可能需要一段时间。当您定义模型时,请将它们定义为

logreg = LogisticRegression(verbose=1)

以及

rf = RandomForestRegressor(verbose=1)

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

相关问题 更多 >