【问题标题】:Data Analytics Approach [closed]数据分析方法[关闭]
【发布时间】:2017-12-08 07:26:51
【问题描述】:

我有一个应届毕业生的数据集,其中包含他们的 GPA 分数,以及他们在试用期后是被雇用还是被解雇。老板让我分析一下大学GPA对被录用或被解雇有没有显着影响。有时还可以包括其他功能,例如大学排名等。Boss 现在对数据科学和机器学习很感兴趣。但是我之前在数据分析方面没有任何经验所以请告诉我如何解决这个问题以及我应该学习什么来做到这一点?我有编程背景(知道 python),所以欢迎使用技术术语。

【问题讨论】:

    标签: python machine-learning data-analysis data-science


    【解决方案1】:

    在这些中,您基本上是在尝试预测大学GPA,大学排名等是否对试用期后被雇用或解雇有任何显着影响。基本上它是二进制分类问题(有关这些Binary Classification Best Tutorial 的完整教程)。 @janu777 给出的方法是正确的,我想在其中添加一些额外的信息。 解决这些问题的步骤是,

    Data Exploration(include variable identifications)
    Data Cleaning
    Feature Engineering(Watching correlations kind of property among features)
    Model Building and Training 
    Doing Predictions
    

    基本上从 python 方面你将使用这些库

    Pandas
    Scikit Learn
    Matplotlib
    numpy
    Sklearn
    Statsmodelapi
    

    数据探索: 首先,您应该将前几年的数据(以前的员工是被雇用还是被解雇)作为训练集。

    import pandas as pd
    import numpy as np
    import matplotlib as plt
    
    df = pd.read_csv("../trainset.csv") #Reading the dataset in a dataframe 
    df.describe()
    

    数据清理

    现在在这些阶段你应该看到缺失值和所有数据,你可以根据你的选择进行处理,最著名的是删除所有缺失值,这样你就可以使用这些了,

    df.dropna(axis=0, how='all')
    

    我假设您的训练集有 3 个变量,其中大学 GPA 和大学排名是特征变量。并且您的目标变量是hired/fired(1 or 0)。您应该使用预测变量和目标变量之间的相关性,并且可视化也会有所帮助。

    trainingdata['GPA'].astype('float64').corr(trainingdata['target'].astype('float64'))
    

    # importing the required module
    import matplotlib.pyplot as plt
    
    # x axis values
    x = [1,2,3] # your feature variable
    # corresponding y axis values
    y = [2,4,1] # your target variable
    
    # plotting the points 
    plt.plot(x, y)
    
    # naming the x axis
    plt.xlabel('x - axis')
    # naming the y axis
    plt.ylabel('y - axis')
    
    # giving a title to my graph
    plt.title('My first graph!')
    
    # function to show the plot
    plt.show()
    

    模型构建、预测和拟合 这是非常重要的阶段,现在您需要为您的问题创建模型,您可以使用这些算法Sklearn algo(您应该应用各种算法,如 Randomforest、lineardiscriminate、decisiontree、knn、svm 等,并且只选择给出好分数的算法) 这些示例代码是,

    from sklearn.ensemble import RandomForestClassifier
    #Building random forest classifier model
    def random_forest_classifier(features, target):
        """
        To train the random forest classifier with features and target data
        :param features:
        :param target:
        :return: trained random forest classifier
        """
        clf = RandomForestClassifier()
        clf.fit(features, target)
        return clf
    

    做预测 现在您可以对您的测试数据进行预测,相同的示例代码是,

       predictions = randomforestmodelis.predict(test_x)
        for i in range(0, 5):
            print("Actual outcome :: {} and Predicted outcome :: {}".format(list(test_y)[i], predictions[i]))
            #print("Train Accuracy :: ", accuracy_score(train_y, randomforestmodelis.predict(train_x)))
        print("Test Accuracy  :: ", accuracy_score(test_y, predictions))
    

    这应该可以解决您的问题。

    【讨论】:

    • 感谢您抽出宝贵时间回答这个问题。我得到的关于这个问题的新信息很少。这样做的真正目的是向管理层证明是否可以通过将 GPA 保持为招聘基准来节省成本,这表明 GPA 高的人在试用期后被绝大多数人录用。那么这不只是一个统计可视化问题,与预测(机器学习)无关吗?
    • 在这种情况下,您应该使用相关类型的方法进行特征分析,并且可以使用 matplotlib 中的可视化。
    • 如果你能分享任何链接或其他资源来学习特征分析和相关性,对我学习有帮助。
    • 当然你可以看这里datascience.com/blog/…analyticsvidhya.com/blog/2016/02/… 和很多你一定会找到的教程,比如kaggle、analyticsvidhya 和udacity、courseera、datascienceacademy 等
    【解决方案2】:

    您正试图根据 GPA、大学排名等特征来预测应届毕业生的就业状况。

    您的问题可以被视为“二元分类问题”,因为您的输出应该被触发/雇用为(0 或 1)

    Training_set:首先,您需要创建一个包含特征及其实际输出的训练集。

    特征分析:尝试使用以下方法分析数据如何影响输出:

    train = pd.read_csv('../input/train.csv')
    print (train[["GPA", "Employment_status"]].groupby(['GPA'], as_index=False).mean())
    

    训练算法: 有许多机器学习算法可用于解决二元分类问题,例如 SVM、决策树、KNN。 您还可以进行异常检测,您可以在其中使用其中一个输出拟合分布。 使用 sklearn 库,因为它们易于使用并且还提供多种算法。

    查看this 了解更多关于 sklearn 的信息。

    测试:最后使用测试集测试您的模型并计算准确度以查看模型如何拟合数据。

    查看 andrew ng 的讲座,因为它们对于开始机器学习的任何人来说都很容易理解。找到它here

    数据可视化:

    Kaggle 是学习新方法和算法的最佳平台之一,请查看this 链接,因为它提供了有关如何在 Iris 数据集上使用不同数据可视化工具的信息。

    查看this MOOC 了解有关数据可视化的更多信息。

    因此,数据可视化将帮助您了解您的特征是如何相互关联的。

    【讨论】:

    • 感谢您抽出宝贵时间回答这个问题。我得到的关于这个问题的新信息很少。这样做的真正目的是向管理层证明,通过显示 GPA 高的人在试用期后绝大多数被聘用,以 GPA 作为招聘的基准是否可以节省成本。那么这不只是一个统计可视化问题,与预测(机器学习)无关吗?
    • 那么您应该只进行特征分析步骤。将高于某个阈值的 GPA 归类为高,低于该阈值的值归为低,并检查影响百分比,您也可以通过绘图将其可视化。
    • 如果您可以分享任何链接或其他资源来学习特征分析和相关性,这将有助于我学习。
    • 我已经编辑了答案。请务必查看 Kaggle 平台,因为它对初学者非常有用。
    【解决方案3】:

    随机森林可能是最流行的分类算法,能够进行分类和回归。它可以准确地对大量数据进行分类。 “随机森林”这个名称源于该算法是决策树的组合

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 2019-04-26
      • 1970-01-01
      • 2012-03-06
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      相关资源
      最近更新 更多