精华内容
下载资源
问答
  • 13.影响预测准确度因素

    千次阅读 2018-04-08 19:00:09
    首先,预测想达到完全准确是不可能的。然后,和随机猜测相比预测的...这篇主要谈谈影响预测准确度因素。对于机器学习来说主要是自变量和因变量如何选取。自变量应该是我能得到的全部数据,因变量是我想得到的预测...

    首先,预测想达到完全准确是不可能的。

    然后,和随机猜测相比预测的效果也不容否认,只是预测越准参考价值越大。

    重点在于预测误差可以不断减小。对于分类问题用准确率衡量,对于回归问题用误差衡量。

    我研究的轨迹预测问题应该属于回归问题,衡量的标准就是预测出的位置和实际位置的距离。


    这篇主要谈谈影响预测准确度的因素。对于机器学习来说主要是自变量和因变量如何选取。

    自变量应该是我能得到的全部数据,因变量是我想得到的预测结果。。。这是最简单的选取

    如果改进一下,把自变量和因变量归一化。。。效果会好很多

    再改进,选择有效的自变量。

    对自变量和因变量做预处理,使两者的关系更直观。

    尽量只保留几个无法计算的参数留给模型学习,其他的处理的越好预测效果越好。



    这次研究把重心放在整体架构和数据预处理上,训练使用现成的模块。以后如果继续研究可以深入建立一个专门的机器学习模型,针对具体问题定制的模型效果应该会更好。

    展开全文
  • 数学基础-模型准确度影响因素

    千次阅读 2018-06-06 11:30:13
    我们在运用数据科学解决问题时必须清楚的理解问题、理解数据、掌握一系列方法,...统计学习方法学习这种特征,将生成的模型用于数据的分类或预测。统计学习方法三要素包括:模型(模型集合,概率模型表示为条件概...

    我们在运用数据科学解决问题时必须清楚的理解问题、理解数据、掌握一系列方法,才能很好的解决问题。

    统计学习的对象是数据,数据的类型包括数字、文字、图像、音频、视频以及他们的组合。统计学习关于数据的基本假设是同类数据具有一定的统计规律性,即同类数据具有相似的特征或者具有相同的分布特性。统计学习方法学习这种特征,将生成的模型用于数据的分类或预测。

    统计学习方法三要素包括:模型(模型集合,概率模型表示为条件概率P(Y/X)、非概率模型为决策函数Y=f(X)))、策略(评价准则,损失函数:度量一次预测的好坏)、算法(模型选择)。

    模型准确度影响因素:数据质量、数据科学家的水平。

    1、数据质量对模型准确度的影响

    训练数据的质量和数量通常是决定一个模型性能的最关键因素。一旦训练数据准备好,其他的事情就顺理成章了。当数据量过少时容易出现训练不足的问题,当数据量过多时容易出现过训练的问题,对于一个模式的样本数据集来说,它应该尽可能的包含该模式的各个种类,而且每个种类的样本数量以及在全部数据中所占的比例对于模型建立和评价至关重要。所以我们要尽最大的努力获取尽可能全面的数据。

    例如,在进行车辆故障检测时,发生故障状态较少,导致故障相关数据较少,就会存在故障建模数据不足,模型就不具备对未知故障的检测能力。如果某类故障的数据特别多,其他类故障的数据比较少会导致模型对数据少的故障检测能力较差,最好是各类别故障数据均衡。数据质量的提升依赖于车厂对长期持久运行的车辆数据的搜集。

    模型训练对数据量的需求取决于模型结构和参数个数,参加点击打开链接

    2、数据科学家的水平

    数据科学家的水平体现在领域知识和数据分析能力,数据分析能力包括:数据预处理、特征选择、模型选择、模型调参、模型验证,是数据工程师基于数据和目标进行的一系列工作,这就是普通的数据工程师跟大师级数据科学家的差距所在。成为大师级数据科学家是所有从事数据科学工作的人们的梦想。

    2.1 领域知识

    领域知识可以帮助我们更好的处理数据,建立更好的特征集,对于提升建模的效率和效果至关重要,丰富的领域知识是假设生成的基础,有关假设生成的意义请参考点击打开链接

    2.2 数据分析能力

    (1)数据预处理

    数据是多种多样的,包括数字、文本、图像、音频、视频等,不同的数据处理方法不同,数字类型数据包括分类型、数值型。数据预处理包括数据异常处理和数据变换。数据中存在三大类异常,包括错误数据、空缺值、离群点。不同类型数据的处理方法将在后续的文章中介绍。

    (2)特征工程

    特征工程是从现有数据中提取更多信息,特征工程包括特征转换、特征衍生、特征选择。特征工程将在后续的文章中介绍。

    (3)模型选择

    模型选择建立在对问题的理解、对数据的理解、对各种模型的理解的基础之上,结合经验和不断的尝试,以选择最适合的模型获得更高的准确率。模型选择将在后续的文章中介绍。

    (4)模型调参

    机器学习算法是由参数驱动的。这些参数对学习的结果有明显影响。参数调整的目的是为每个参数寻找最优值,以改善模型正确率。要调整这些参数,必须对它们的意义和各自的影响有所了解,遍历参数集合,观察训练过程输出,寻找最优参数。模型调参将在后续的文章中介绍。

    (5)模型评价

    使用交叉验证的方式来检验模型的准确度,交叉验证将数据集分为训练集、验证集、测试集,各类模型有其相应的评价指标。模型评价将在后续的文章中介绍。


    写博客的目的是学习的总结和知识的共享,如有侵权,请与我联系,我将尽快处理 














    展开全文
  • 财政收入影响因素分析及预测模型。

    财政收入影响因素分析及预测模型

    背景

    在我国现行的分税制财政管理体制下,地方财政收入不仅是国家财政收入的重要组成部分,还具有其相对独立的构成内容。如何有效地利用地方财政收入,合理地分配来促进地方的发展,提高市民的收入和生活质量是每个地方政府需要考虑的首要问题。因此,对地方财政收入进行预测,不但是必要的,而且是可能的。科学、合理地预测地方财政收入,对于克服年度地方预算收支规模的随意性和盲目性,正确处理地方财政与经济的相互关系具有十分重要的意义。某市作为改革开放的前沿城市,其经济发展在全国经济中的地位举足轻重。目前,该市在财政收入规模、结构等方面与北京、深圳和上海等城市仍有一定差距,存在不断完善的空间。

    目标

    本案例旨在通过研究,发现影响该市目前以及未来地方财源建设的因素,并对其进行深入分析,提出对该市地方财源优化的具体建议,供政府决策参考,同时为其他经济发展较快的城市提供借鉴。

    考虑到数据的可得性,本案例所用的财政收入分为地方一般预算收入和政府性基金收入。

    地方一般预算收入包括:1.税收收入,主要包括企业所得税和地方所得税中中央和地方共享的40%,地方享有的25%的增值税、营业税和印花税等;2.非税收入,包括专项收入、行政事业费收入、罚没收入、国有资本经营收入和其他收入等。政府性基金收入是国家通过向社会征收以及出让土地、发行彩票等方式取得的收入,并专项用于支持特定基础设施建设和社会事业发展的收入。由于1994年财政体制重大改革,所以1994年前后不具有可比性,仅对1994年后的进行分析,本案例数据来自《某市统计年鉴》(1995-2014)

    挖掘目标

    梳理影响地方财政收入的关键特征,分析、识别影响地方财政收入的关键特征的选择模型。结合目标1的因素分析,对某市2015年的财政总收入及各个类别收入进行预测。

    分析

    在以往的文献中,对影响财政收入的因素的分析大多采用普通最小二乘法来对回归模型的系数进行估计,预测变量的选取采用的则是逐步回归。然而,不论是最小二乘法还是逐步回归,都有其不足之处。它们一般都局限于局部最优解而不是全局最优解。如果预测变量过多,子集选择的计算过程具有不可实行性,且子集选择具有内在的不连续性,从而导致子集选择极度多变。

    Lasso是近年来被广泛使用于参数估计和变量选择的方法之一,并且在确定的条件下,使用Lasso方法进行变量选择已经被证明是一致的。案例选用Adaptive-Lasso方法来探究地方财政收入与各因素之间的关系。(该方法不在数学上具体叙述)

    在Adaptive-Lasso变量选择的基础上,鉴于灰色预测对小数据量数据预测的优良性能,对单个选定的影响因素建立灰色预测模型,得到它们在2014年及2015年的预测值。由于神经网络较强的适用性和容错能力,对历史数据建立训练模型,把灰色预测的数据结果代入训练好的模型中,就得到了充分考虑历史信息的预测结果,即2015年某市财政收入及各个类别的收入。

    下面是基于数据挖掘技术的财政收入分析预测模型流程

    1. 从某市统计局网站以及各统计年鉴搜集到该市财政收入以及各类别收入相关数据。
    2. 利用步骤1)形成的已完成数据预处理的建模数据,建立Adaptive-Lasso变量选择模型。
    3. 在步骤2)的基础上建立单变量的灰色预测模型以及人工神经网络预测模型。
    4. 利用步骤3)的预测值代入构建好的人工神经网络模型中,从而得到2014/2015年某市财政收入及各个类别的收入。

    处理过程

    • 数据获取
      • 已提供。
    • 数据探索
      • 描述分析
      • 相关分析
    • 数据预处理
      • 处理好的数据给出了。
    • 数据挖掘建模
      • Adaptive-Lasso变量选择模型
        • sklearn中Adaptive-Lasso模型已经删除了。
      • 财政收入及各类别收入预测模型
        • 某市财政收入预测模型
          • 真实值与预测值对比
        • 增值税预测模型
          • 真实值与预测值对比
        • 营业税预测模型
          • 真实值与预测值对比
        • 企业所得税预测模型
          • 真实值与预测值对比
        • 个人所得税预测模型
          • 真实值与预测值对比
        • 政府性基金收入预测模型
          • 真实值与预测值对比

    代码

    import pandas as pd
    import numpy as np
    from GM11 import GM11
    
    
    def adaptiveLasso():
        '''
        Adaptive-Lasso变量选择模型
        :return:
        '''
        inputfile = 'data/data1.csv'
        data = pd.read_csv(inputfile)
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import LassoLars
        model = LassoLars()
        model.fit(data.iloc[:, 0:13], data['y'])
        print(model.coef_)
    
    
    def huise():
        '''
        地方财政收入灰色预测
        :return:
        '''
        inputfile = 'data/data1.csv'
        outputfile = 'data/data1_GM11.xls'
        data = pd.read_csv(inputfile)
        data.index = range(1994, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']
        for i in l:
            f = GM11(data[i][np.arange(1994, 2014)].values)[0]
            # 2014年预测结果
            data[i][2014] = f(len(data) - 1)
            # 2015年预测结果
            data[i][2015] = f(len(data))
            data[i] = data[i].round(2)
    
        data[l + ['y']].to_excel(outputfile)
        print(data)
    
    
    def yuce():
        '''
        地方财政收入神经网络预测模型
        :return:
        '''
        inputfile = 'data/data1_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/revenue.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/1-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)
        feature = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']  # 特征所在列
    
        data_train = data.loc[range(1994, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=6, units=12))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=12, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso2():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
    
        inputfile = 'data/data2.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
        # 导入AdaptiveLasso算法,新版本已经删除
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:6], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise2():
        '''
        增值税灰色预测
        :return:
        '''
        inputfile = 'data/data2.csv'  # 输入的数据文件
        outputfile = 'data/data2_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(1999, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x3', 'x5']
        for i in l:
            f = GM11(data[i][np.arange(1999, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round(6)  # 保留六位小数
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce2():
        '''
        增值税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data2_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/VAT.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/2-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x3', 'x5']  # 特征所在列
    
        data_train = data.loc[np.arange(1999, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=3, units=6))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=6, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round(2)
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    
    def adaptiveLasso3():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data3.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:10], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise3():
        '''
        营业税灰色预测
        :return:
        '''
        inputfile = 'data/data3.csv'  # 输入的数据文件
        outputfile = 'data/data3_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(1999, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x3', 'x4', 'x6', 'x8']
        for i in l:
            f = GM11(data[i][np.arange(1999, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round()  # 取整
    
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce3():
        '''
        营业税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data3_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/sales_tax.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/3-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x3', 'x4', 'x6', 'x8']  # 特征所在列
    
        data_train = data.loc[range(1999, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=4, units=8))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=8, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round(2)
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso4():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data4.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:10], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise4():
        '''
        企业所得税灰色预测
        :return:
        '''
        inputfile = 'data/data4.csv'  # 输入的数据文件
        outputfile = 'data/data4_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(2002, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x2', 'x3', 'x4', 'x6', 'x7', 'x9', 'x10']
        for i in l:
            f = GM11(data[i][np.arange(2002, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round(2)  # 保留两位小数
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce4():
        '''
        企业所得税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data4_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/enterprise_income.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/4-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x2', 'x3', 'x4', 'x6', 'x7', 'x9', 'x10']  # 特征所在列
    
        data_train = data.loc[range(2002, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=8, units=6))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=6, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=5000, batch_size=16)  # 训练模型,学习五千次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round()
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso5():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data5.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:7], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise5():
        '''
        个人所得税灰色预测
        :return:
        '''
        inputfile = 'data/data5.csv'  # 输入的数据文件
        outputfile = 'data/data5_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(2000, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x4', 'x5', 'x7']
        for i in l:
            f = GM11(data[i][np.arange(2000, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round()  # 取整
    
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce5():
        '''
        个人所得税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data5_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/personal_Income.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/5-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x4', 'x5', 'x7']  # 特征所在列
    
        data_train = data.loc[range(2000, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=4, units=8))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=8, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=15000, batch_size=16)  # 训练模型,学习一万五千次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round()
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def huise6():
        '''
        政府性基金收入灰色预测
        :return:
        '''
        x0 = np.array([3152063, 2213050, 4050122, 5265142, 5556619, 4772843, 9463330])
        f, a, b, x00, C, P = GM11(x0)
        print(u'2014年、2015年的预测结果分别为:\n%0.2f万元和%0.2f万元' % (f(8), f(9)))
        print(u'后验差比值为:%0.4f' % C)
        p = pd.DataFrame(x0, columns=['y'], index=range(2007, 2014))
        p.loc[2014] = None
        p.loc[2015] = None
        p['y_pred'] = [f(i) for i in range(1, 10)]
        p['y_pred'] = p['y_pred'].round(2)
        p.index = pd.to_datetime(p.index, format='%Y')
    
        import matplotlib.pylab as plt
        p.plot(style=['b-o', 'r-*'], xticks=p.index)
        plt.show()
    
    
    if __name__ == '__main__':
        # adaptiveLasso()
        # huise()
        # yuce()
        # adaptiveLasso2()
        # huise2()
        # yuce2()
        # adaptiveLasso3()
        # huise3()
        # yuce3()
        # adaptiveLasso4()
        # huise4()
        # yuce4()
        # adaptiveLasso5()
        # huise5()
        # yuce5()
        huise6()
    
    

    后续处理

    应用模型进行推理。

    补充说明

    案例参考书《Python数据分析与挖掘实战》,与原书有借鉴,但是较大改动代码,修复了原书一些旧版本代码错误,具体数据集和代码可以查看我的Github,欢迎star或者fork。再次补充,相关数据集的获取直接clone整个仓库即可。

    展开全文
  • 财政收入影响因素分析和预测模型

    千次阅读 2018-04-30 21:40:34
    描述:采用数据挖掘算法中人工神经网络算法,首先用Adaptive—Lasso方法找出相关性最大的因素,根据现有的数据建立神经网络模型,然后对未知属性做出预测。代码:import pandas as pd def Data_pro(feature,data): ...

    描述:采用数据挖掘算法中人工神经网络算法,首先用Adaptive—Lasso方法找出相关性最大的因素,根据现有的数据建立神经网络模型,然后对未知属性做出预测。

    代码:

    import pandas as pd
    
    def Data_pro(feature,data):
        data_train = data.loc[range(1994, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].as_matrix()  # 特征数据
        y_train = data_train['y'].as_matrix()  # 标签数据
        return data_mean,data_std,x_train,y_train
    
    def Build_Net(data,data_mean,data_std,x_train,y_train,feature):
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=6, output_dim=12))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=12, output_dim=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        #model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).as_matrix()
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        print(data[u'y_pred'])
        return data
        #data.to_excel(outputfile)
        
    def Draw_result(data):
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    def main():
        inputfile = 'F:/Python/IDLE--python/BigDataAnalyze/chapter13-data/data1_GM11.xls'  # 灰色预测后保存的路径
        outputfile = '../data/revenue.xls'  # 神经网络预测后保存的结果
        modelfile = '../tmp/1-net.model'  # 模型保存路径
        feature = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']  # 特征所在列
        data = pd.read_excel(inputfile)  # 读取数据
        
        #数据处理,标准化,训练数据集
        data_mean, data_std, x_train, y_train = Data_pro(feature,data)
        
        #预测模型建立
        data = Build_Net(data,data_mean,data_std,x_train,y_train,feature)
        
        #画出预测结果图
        Draw_result(data)
    
    if __name__ == '__main__':
        main()

    展开全文
  • 这是有原因的,CSO Insights一项调查显示只有48%的预测最终会被关闭。在你的销售管道中的业务机会关闭几率比仍硬币的几率还低,这非常恐怖。 我们如何解释并解决这个问题?预测是几个不同因素的组合。 √ 销售...
  • 蛋白质结构预测准确率与发展情况

    千次阅读 2018-10-09 12:01:32
    因此,进行二级结构预测需要通过统计和分析发现这些倾向或者规律,二级结构预测问题自然就成为模式分类和识别问题。蛋白质二级结构的组成规律性比较强,所有蛋白质中约85%的氨基酸残基处于三种基本二级结构状态(a...
  • 财政收入影响因素分析及预测模型

    千次阅读 2019-06-29 14:35:28
    model.add(Activation('relu')) #用relu函数作为激活函数,能够大幅提供准确度 model.add(Dense(12, 1)) model.compile(loss='mean_squared_error', optimizer='adam') #编译模型 model.fit(x_train, y_train, nb_...
  • 财政因素影响分析及预测模型
  • 分类器的准确度评估方法

    千次阅读 2019-06-19 13:48:04
    1 影响一个分类器错误率的因素  (1)、训练集的记录数量。生成器要利用训练集进行学习,因而训练集越大,分类器也就越可靠。然而,训练集越大,生成器构造分类器的时间也就越长。错误率改善情况随训练集规模的增大而...
  • 这时如果不能从现有的数据中获取可行的洞察,可能会做出错误的业绩预测,基于此制定的战略决策也会给销售团队带来误导,从而影响该零售企业的市场表现。 推荐阅读:AI特别企划(二):零售需求预测与价值变现 “销售...
  • DeepAR 会结合多个相似的时间序列,例如是不同方便面口味的销量数据,通过深度递归神经网络学习不同时间序列内部的关联特性,使用多元或多重的目标个数来提升整体的预测准确度。DeepAR 最后产生一个可选时间跨度的...
  • 全基因组选择中准确性的影响因素

    千次阅读 2018-09-02 12:29:33
    文章目的: 比较全基因组选择中准确性的影响因素 https://www.researchgate.net/publication/326489349_Prediction_accuracies_of_genomic_selection_in_American_mink_a_simulation_study 主要考虑的因素有: ...
  • 分类准确度问题 对数据极度偏斜,只使用分类准确度远远不够 癌症的预测准确度为99.99%,但是只有0.01%的发病率,则对大多数人基本上不用预测都是健康的,预测机制几乎失灵 混淆矩阵 Confusion Matrix 行代表真实值,...
  • model.add(Activation('relu')) #用relu函数作为激活函数,能够大幅提供准确度 # model.add(Dense(12, 1)) model.add(Dense(input_dim=12, output_dim=1)) model.compile(loss='mean_squared_error', optimizer='...
  • 预测准确率比较低。 一阶马尔科夫模型只考虑当前轨迹点对未来轨迹点的影响,不能充分地利用历史轨迹点数据。 高阶马尔科夫预测模型增加了模型计算复杂度,不适用于海量轨迹数据的训练学习。 对车辆轨迹的波动比较...
  • 8个提高机器学习模型准确度的方法

    千次阅读 2016-01-19 14:54:47
    8个经过证实的方法:提高机器学习模型的准确率 2016-01-18 Sunil Ray 数据挖掘与数据分析 点击上方“数据工匠”可以订阅哦! 导语 提升一个模型的表现有时很困难。如果你们曾经纠结于相似的问题...
  • 现在开始说说在yolo之后的第二代版本,这个第二代在第一代的基础上做了很多的优化。原来的版本在准确度,速度,容错率上都有所欠缺。下面来说说为了在这方面有所提高作者采用了那些方法。
  • 这两天照着tflearn官网的VGGNet的demo,用tensorflow实现了VGGNet,然而在用17flowers训练集进行训练的时候,发现不管迭代多少次,准确率和loss函数始终维持在相对不变的值,也就是网络不收敛。一开始很懵逼,毕竟是...
  • 预测天气是一个非常非常困难的主题,因为影 响天气的因素太多,而Kaggle的这份数据也不负众望,是一份非常难也非常难得的数据集,难到用一般的机器学习算法(如SVM,LR)在这个数据集上都不会太好的结果。...
  • 本文是基于《Python数据分析与挖掘实战》的实战部分的第13章的数据——《财政收入影响因素分析及预测模型》做的分析。 旨在补充原文中的细节代码,并给出文中涉及到的内容的完整代码。 在作者所给代码的基础上增加的...
  • 问题简述: 使用相同模型 https://github.com/keras-team/keras/issues/6977 上面github上的讨论主要说明了model.fit和model
  • 北京时间2019年3月29日消息,根据国外媒体报道研究显示,人工智能将可以预测慢性...通过研究人员称,该人工智能系统在测试中的测试结果“非常精确”,准确度比现有的机器学习系统的估测高百分之十。 此项研究由英国...
  • 京东预测系统核心介绍

    千次阅读 2018-08-23 16:11:50
    1. 京东预测系统 1.1 预测系统介绍 预测系统在整个供应链体系...目前,预测系统主要支持三大业务:销量预测、单量预测和GMV预测。其中销量预测主要支持商品补货、商品调拨;单量预测主要支持仓库、站点的运营管...
  • 对于一个非深度学习神经网络,主要影响其模型准确度因素就是数据表达和特征提取。同样的一组数据,在欧式空间和非欧空间,就会有着不同的分布。时候换一种思考问题的思路就会使得问题变得简单。所以选择合适的...
  • 预测系统

    千次阅读 2019-07-08 12:19:31
    预测系统在整个供应链体系中处在最底层并且起到一个支撑的作用,支持上层的多个决策优化系统,而这些决策优化系统利用精准的预测数据结合运筹学技术得出最优的决策,并将结果提供给更上层的业务执行系统...
  • 功率预测发展趋势之概率预测

    千次阅读 2020-07-12 16:47:46
    之所以这种说法,其中一个重要原因是受气象因素影响,风电和光伏的出力具有间歇性和随机性,会对电网造成冲击,电力潮流时大时小,对于电网调控较为不利。说的直白一点,就是给电网添堵了,给调度添麻烦了。 ...
  • 预测性分析及常用预测方法

    千次阅读 2020-11-06 14:43:18
    预测性分析及常用的预测方法 预测的目的 数据分析最重要的目的就是从数据中寻找规律,找到能够指导我们未来实践的原则和方法,是...商业也是如此,我们能够知道影响销售的因素,并能够掌握这些因素的数据,就能够对市场

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,380
精华内容 25,752
关键字:

影响预测准确度的因素主要有