zoukankan      html  css  js  c++  java
  • python的学习02之数据处理

      1、选择建模数据

          我们的数据集有太多的变量,很难处理,我们需要将这些海量的数据减少到我们能理解的程度。

          我们肯定要选择变量的一列来进行分析,故我们需要查看数据集中所有列的列表名,这是通过数据框架的Columns属性完成的。

        以之前的墨尔本房价为例

    import pandas as pd
    
    # 将文件路径保存到变量以便于访问
    melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
    #读取数据并将数据存储在名为墨尔本数据的数据框中
    melbourne_data = pd.read_csv(melbourne_file_path)
    print(melbourne_data.columns)

        输出结果为:

        2、选择数据子集的两种方法

            1)、点表示法,用于选择预测目标。

            2)、用列列表选择,我们用它来选择功能(特性)

          选择预测目标:

               我们可以用点标记法拉出一个变量。把这个单列存储在一个系列中,这个系列大体上就像一个只有单列数据的数据框架。

             我们将使用点表示法来选择要预测的列,这称为预测目标。根据惯例,预测目标称为Y

    y =   melbourne_data.Price

          选择功能(特性):

              输入到我们的模型中的列(稍后用于预测)称为“功能”。在我们的例子中,这些列将是用于确定房价的列。

              有时,您将使用除目标之外的所有列作为功能。其他时候,你会因为功能更少而过得更好。

              现在,我们将构建一个只有几个特性的模型,稍后你将看到如何使用迭代和比较使用不同特性构建的模型。

              我们通过在括号内提供列名列表来选择多个特性。列表中的每一项都应该是一个字符(带引号)

    melbourne_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longtitude']
    X = melbourne_data[melbourne_features]
    print(X.describe())
    print(X.head())

            输出结果为:

                

                

         构建模型:

            我们将使用scikit-learn库创建模型,编写代码时,这个库编写为sklearn,Scikit-learn主要用于存储在数据流中的数据类型。

              建立和使用模型的步骤如下:

                1)定义:它将是什么类型的模型?一个决策树吗?其他类型的模型?还指定了模型类型的其他一些参数。

                2)、匹配:从提供的数据捕获模式。这是建模的核心

                3)、预言:就像它听起来的那样

                4)、评估:确定模型的预测有多准确。

        下面是一个用scikit-learn定义决策树模型并将其与特性和目标变量相匹配的例子:

    from sklearn.tree import DecisionTreeRegressor
    # 定义模型。为random_state指定一个数字,以确保每次运行的结果相同
    melbourne_model = DecisionTreeRegressor(random_state=1)
    #合适的模型
    melbourne_model.fit(X, y)

         许多机器学习模型在模型训练中允许一定的随机性。为random_state指定一个数字可以确保每次运行得到相同的结果。这被认为是一种很好的做法。

         我们使用任何数字,而模型的质量并不完全取决于我们所选择的值。

         我们现在有了一个拟合的模型,可以用来进行预测。

         在实践中,你会想要预测即将上市的新房子,而不是我们已经有价格的房子。但我们将对训练数据的前几行进行预测。

         以了解predict函数是如何工作的:  

    print("Making predictions for the following 5 houses:")
    print(X.head())
    print("The predictions are")
    print(melbourne_model.predict(X.head()))

         输出结果为:

            

        模型验证:

            

  • 相关阅读:
    java中使用MD5加密的算法
    [转]自定义注释@interface的用法
    [转]Spring IOC详解
    [转]sed命令详解
    SimpleDateFormat线程不安全问题处理
    Unable to locate the Javac Compiler 解决办法
    MySQL ERROR 1045错误解决办法
    Python装饰器学习(九步入门)
    python 可变参数函数定义* args和**kwargs的用法
    如何更好的利用Node.js的性能极限
  • 原文地址:https://www.cnblogs.com/fb1704011013/p/11148122.html
Copyright © 2011-2022 走看看