Julia劳动力市场经济数学模型价值策略选择

18 篇文章 0 订阅
5 篇文章 0 订阅

🎯要点

  1. 🎯数据元素:
    1. 🖊变量处理 | 🖊代码多重调用 | 🖊集合:数组、字典、元组和命名元组 | 🖊矢量化代码:广播 | 🖊字符串处理 | 🖊提取HTTP查询,解析JSON数据,丢失值绘图和插值 | 🖊处理压缩文件,CSV文件,Apache Arrow数据,SQLite数据库,计算和可视化汇总统计数据 | 🖊数据帧处理,创建本地线性回归模型,可视化模型预测 | 🖊交互R语言,绘制矩阵相关性 | 🖊转换数据帧为其他类型 | 🖊提取压缩归档文件,分割整合变换数据帧,图形分析数据 | 🖊构建资产预测模型​ | 🖊蒙特卡罗模拟期权定价。
  2. 🎯经济学几何级数学模型:
    1. 🖊资产负债表现金流价值估算,对比投资和政府支出对收益的影响 | 🖊马尔可夫链计算个人雇佣和失业的矩阵数据,确定信息:失业持续时间,何时失业,可能失业的概率 | 🖊帕累托分布模型计算财富分布不平等:洛伦兹曲线和基尼系数测量,工资收入和资产回报影响 | 🖊人才市场建模,推断求职者市场价值最大化策略 | 🖊个人跳槽预期建模,​判断在职和离职状态下,对新工作机会的跳槽或选择预期 | 🖊失业人员重新就职建模,评估条件:薪资下降、失业补偿金、薪资构成分布 | 🖊职业选择建模,最大化预期工资流 | 🖊在职人员择业建模,评估投资目前职业与选择新职业资本回报 | 🖊制造业增长型贴现投资建模,价值迭代和时间迭代评估价值最大化策略 。
  3. 🎯机器学习:
    1. 🖊马尔可夫决策 | 🖊生成对抗网络

🍇Julia建立预测模型

我们将构建一个预测机器学习模型。

 julia> Pkg.add(“ScikitLearn.jl”)

这个包是 Python scikit-learn 包的接口。使用这个包的有趣之处在于,您可以使用与 Python 中使用的相同的模型和功能。Sklearn 要求所有数据都是数字类型,所以让我们对数据进行标签编码,

 using ScikitLearn 
 @sk_import preprocessing: LabelEncoder 
 labelencoder = LabelEncoder() 
 categories = [2 3 4 5 6 12 13] 

 for col in categories 
     train[col] = fit_transform!(labelencoder, train[col]) 
 end

以前用过sklearn的人会发现这段代码很熟悉,我们使用LabelEncoder对类别进行编码。我使用了带有分类数据的列索引。

接下来,我们将导入所需的模块。 然后我们将定义一个通用分类函数,它以模型作为输入并确定准确性和交叉验证分数。

using ScikitLearn: fit!, predict, @sk_import, fit_transform! 
 @sk_import preprocessing: LabelEncoder 
 @sk_import model_selection: cross_val_score  
 @sk_import metrics: accuracy_score 
 @sk_import linear_model: LogisticRegression 
 @sk_import ensemble: RandomForestClassifier 
 @sk_import tree: DecisionTreeClassifier 

 function classification_model(model, predictors) 
     y = convert(Array, train[:13]) 
     X = convert(Array, train[predictors]) 
     X2 = convert(Array, test[predictors])                  
      
     fit!(model, X, y) 
     predictions = predict(model, X) 
     accuracy = accuracy_score(predictions, y) 
     println("\naccuracy: ",accuracy) 
     cross_score = cross_val_score(model, X, y, cv=5)    
     println("cross_validation_score: ", mean(cross_score)) 
     fit!(model, X, y) 
     pred = predict(model, X2) 
     return pred 
 end

让我们制作第一个逻辑回归模型。 一种方法是将所有变量纳入模型,但这可能会导致过度拟合。 简而言之,采用所有变量可能会导致模型理解特定于数据的复杂关系,并且不能很好地概括。

因此,让我们用“Credit_History”制作第一个模型。

model = LogisticRegression()
predictor_var = [:Credit_History]
classification_model(model, predictor_var)

准确度:80.945% 交叉验证分数:80.957%。

决策树是建立预测模型的另一种方法。众所周知,它比逻辑回归模型提供更高的准确性。

model = DecisionTreeClassifier()
predictor_var = [:Credit_History, :Gender, :Married, :Education]
classification_model(model, predictor_var)

准确度:80.945% 交叉验证分数:76.656%

在这里,基于分类变量的模型无法产生影响,因为信用记录对它们起着主导作用。让我们尝试一些数值变量:

#We can try different combinations of variables:
predictor_var = [:Credit_History, :Loan_Amount_Term]
classification_model(model, predictor_var)

准确度:99.345% 交叉验证分数:72.009%。

随机森林是解决分类问题的另一种算法。随机森林的一个优点是我们可以使其适用于所有特征,并且它返回一个可用于选择特征的特征重要性矩阵。

model = RandomForestClassifier(n_estimators=100)
predictors =[:Gender, :Married, :Dependents, :Education,
 :Self_Employed, :Loan_Amount_Term, :Credit_History, :Property_Area,
 :LoanAmount]
classification_model(model, predictors)

准确度:100.000% 交叉验证分数:78.179%。

在这里我们看到训练集的准确率是 100%。这是过度拟合的最终情况,可以通过两种方式解决:

  1. 减少预测变量的数量
  2. 调整模型参数

更新后的代码现在是

model = RandomForestClassifier(n_estimators=100, min_samples_split=25, max_depth=8, n_jobs=-1)
predictors = [:ApplicantIncome, :CoapplicantIncome, :LoanAmount, :Credit_History, :Loan_Amoun_Term, :Gender, :Dependents]
classification_model(model, predictors)

准确度:82.410% 交叉验证分数:80.635%。

参阅一:计算思维

参阅二:亚图跨际

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值