发现影响净收入的特征

我想使用机器学习来识别影响净收入的特征,并基于这些数据得出结论。数据集来自一家类似于Turo的汽车共享公司。数据集包含约80000行,14列。

我很难构建一个探索性数据分析(EDA),特别是使用机器学习算法来找出影响net_revenue的特征。

enter image description here

#我目前所做的

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

  2. 我想验证这种相关性是否在一些机器学习算法中,如Logistic regressionRandomforest,具有相关性。为了进一步应用RandomForest机器学习验证这种相关性,我将分类变量(payment_type, returning_guest和returning_host)转换为虚拟变量(0和1)

所以我尝试按照这个帖子应用这两个模型

LogisticRegression

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_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)from sklearn.linear_model import LogisticRegressionfrom sklearn import metricslogreg = 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, penalty=’l2′, random_state=None, solver=’liblinear’, tol=0.0001, verbose=0, warm_start=False)

**在执行上述代码后,IPython笔记本会冻结,看起来像是永远不会输出结果。所以我不得不重启内核。

RandomForest

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

同样的问题!

我的问题:

  1. 如何为发现影响净收入的特征构建一个机器学习模型?是否有解决相同问题资源?Kaggle竞赛绝对可以,或者可能是medium上的帖子。

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

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

  2. 你是否知道Kaggle上有什么类似的数据集?因为我找不到任何与此相似的机器学习流程!


回答:

几点说明。

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

你正在为回归问题使用RandomForestClassifier,这不是你想要的。应该使用sklearn.ensemble.RandomForestRegressor

如果没有抛出错误,你的机器学习模型可能正在运行。由于你有80,000行数据,这可能需要一些时间。当你定义模型时,定义它们为

logreg = LogisticRegression(verbose=1)

rf = RandomForestRegressor(verbose=1)

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

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中创建了一个多类分类项目。该项目可以对…

发表回复

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