美文网首页
数学建模代码

数学建模代码

作者: tx桂言叶 | 来源:发表于2017-05-16 19:21 被阅读0次

导入相关库

import graphlab
import numpy
import matplotlib.pyplot as plt
%matplotlib inline
data = graphlab.SFrame('house.csv')

显示各因素与房价散点图

matplotlib无法显示中文

x,y=data['人均消费性支出(元)'],data['单位商品房房价(元/m2)']
plt.scatter(x,y,c='red',edgecolors='white')
plt.title(u'商品房均价与居民人均消费水平关系')
plt.xlabel(u'居民人均消费水平(元)')
plt.ylabel(u'商品房均价(元)')
plt.grid(True)
plt.show()
x,y=data['房地产开发投资(亿元)'],data['单位商品房房价(元/m2)']
plt.scatter(x,y,c='blue',edgecolors='white')
plt.title(u'商品房均价与房地产投资总额关系')
plt.xlabel(u'城镇居民人均可支配收入(元)')
plt.ylabel(u'商品房均价(元)')
plt.grid(True)
plt.show()
x,y=data['地区生产总值(亿元)'],data['单位商品房房价(元/m2)']
plt.scatter(x,y,c='green',edgecolors='white')
plt.title(u'商品房均价与地区生产总值关系')
plt.xlabel(u'地区生产总值')
plt.ylabel(u'商品房均价(元)')
plt.grid(True)
plt.show()
x,y=data['竣工面积(万平方米)住宅'],data['单位商品房房价(元/m2)']
plt.scatter(x,y,c='green',edgecolors='white')
plt.title(u'商品房均价与商品房竣工面积关系')
plt.xlabel(u'商品房竣工面积(万平方米)')
plt.ylabel(u'商品房均价(元)')
plt.grid(True)
plt.show()
x,y=data['人口密度(人/平方千米)'],data['单位商品房房价(元/m2)']
plt.scatter(x,y,c='green',edgecolors='white')
plt.title(u'商品房均价与人口密度关系')
plt.xlabel(u'人口密度(人/平方千米)')
plt.ylabel(u'商品房均价(元)')
plt.grid(True)
plt.show()

定义寻找最佳岭回归参数值的函数

def loo(data, l1_penalty_values):
    
    num_folds = len(data)
    folds = graphlab.cross_validation.KFold(data,num_folds) #构建K次交叉验证列表
    
    l1_penalty_mse = []
    min_mse = None
    best_l1_penalty = None
    for l1_penalty in l1_penalty_values:
        next_mse = 0.0
        for train_set, validation_set in folds:
            #构建线性回归模型
            model = graphlab.linear_regression.create(
                train_set,target='单位商品房房价(元/m2)', 
                features=['人均消费性支出(元)','房地产开发投资(亿元)',
                            '竣工面积(万平方米)住宅','地区生产总值(亿元)',
                            '人口密度(人/平方千米)'],
                l1_penalty=l1_penalty,
                validation_set=None,verbose=False)
            
            test_predicted = model.predict(validation_set)#预测房价
            next_mse += (test_predicted-validation_set['单位商品房房价(元/m2)'])[0]**2
        
        next_mse = next_mse/num_folds
        if min_mse is None or next_mse < min_mse:
            min_mse = next_mse
            best_l1_penalty = l1_penalty
            
    return best_l1_penalty #返回最小均方差以及最好系数

去除2014异常年份, 执行函数

data = data[data['年份']!=2014]
l1_penalty_values=numpy.logspace(-4, 5, num=1000)  
#l1_penalty_values = 
# [  1.00000000e-04,   1.00000000e-03,   1.00000000e-02,
#         1.00000000e-01,   1.00000000e+00,   1.00000000e+01,
#          1.00000000e+02,   1.00000000e+03,   1.00000000e+04,
#          1.00000000e+05]
best_l1_penalty = loo(data,l1_penalty_values) #best_l1_penalty=5594.32570617

构建最终模型

model = graphlab.linear_regression.create(
    data,target='单位商品房房价(元/m2)', 
    features=['人均消费性支出(元)','房地产开发投资(亿元)',
                '竣工面积(万平方米)住宅','地区生产总值(亿元)',
                '人口密度(人/平方千米)'],
    l1_penalty=best_l1_penalty,
    validation_set=None,verbose=False)

获取模型系数

model.get('coefficients')

评估模型

model.evaluate(data)

画出模型预测价格与原价格比较图

plt.plot(data['年份'],data['单位商品房房价(元/m2)'],'.',#点为实际值
        data['年份'],model.predict(data),'-')#折现为预测值
# X轴为年份   Y轴为商品房均价

相关文章

  • 数学建模代码

    导入相关库 显示各因素与房价散点图 matplotlib无法显示中文 定义寻找最佳岭回归参数值的函数 去除2014...

  • 【学习】数学建模概论

    最近在复习和学习数学建模的东西,主要是《数学建模优秀论文精选与点评(2011-2015)》和《数学建模方法及其应用...

  • 2019-07-08

    数学建模论文。

  • 2019-07-09

    数学建模培训。

  • 数学建模

    第二十五章 存贮论 定量方法最早的领域 数学模型分为两类 确定性模型 随机存贮模型 基本概念 存贮的实质是将供应和...

  • 数学建模

    惊闻好多同学建模至少国二的奖 我很羡慕 又有些嫉妒 真是看不惯干不掉 没办法 什么都做不了 真是让人崩溃 摸摸头 ...

  • 数学建模

    你用编程解决过什么有趣的事情? 和两名队友笑了四天四夜完成美赛建模。整个比赛过程,我是负责编程部分的:R语言的的d...

  • 数学建模

    人生是时间努力的函数(打破自我的标签),而且还要有周期,那该如何构造这个函数?有没有解析式?还是列举?还是不确定?

  • 数学建模📒

    一、非线性规划 非线性规划问题没有统一的解法,只能依据问题和模型特点选择适当的解法。不过,大多数解法都是数值迭代算...

  • 数学建模

    1.启发式算法 它主要包括禁忌搜索,模拟退火,遗传算法,神经网络,蚁群算法 模拟退火算法 Metropolis准则...

网友评论

      本文标题:数学建模代码

      本文链接:https://www.haomeiwen.com/subject/sgzlxxtx.html