QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2017|回复: 0
打印 上一主题 下一主题

搞 AI 建模预测都在用 Python,其实入门用 SPL 也不错

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2022-9-7 15:33 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    搞 AI 建模预测都在用 Python,其实入门用 SPL 也不错+ x2 n/ U6 D6 c. ^9 x% _0 _; y

    : q6 U. q1 N, ?2 L# U可用来做人工智能建模预测的工具非常多,比如Python, R, SAS,SPSS等,其中Python由于简单易学、丰富的数据科学库、开源免费等特点备受欢迎。但是对于不太熟悉数据建模算法的程序员来说,使用Python建模还是比较复杂,很多时候拿到数据并不清楚该做怎样的处理,选择什么样的算法。其实,在做数据分析和数据建模时,SPL也是不错的选择,它比Python更简单易用,计算速度也快,交互式的界面对数据分析十分友好,同时还提供自动数据建模功能和一些数据处理以及统计学函数,用起来也很方便。
    " U6 d) O% X* V; Y  C) o  t
    - L" P5 |! f" q6 E0 _+ D下面就以一份用户贷款违约预测的数据为例,使用SPL手把手的进行数据建模预测。
    ' p" s) {% T, |% R) a& s" R% ^0 B4 D8 Z
    1. 确定目标,准备数据/ H* ?7 X* Y  x' Q% V# p* V
    建模预测就是从历史数据中挖掘出规律,然后使用规律对未来可能发生的事情做出预测。这个规律就是一般所说的模型。% h% M! h6 s1 W0 ~4 O# s/ p1 H
    & f% x" m* V. q6 c; [- ~
    历史数据通常是一张我们俗称的宽表,比如在用户贷款违约预测的例子中历史数据是如下图这样的Excel表格:
    . ]5 ]; U' W) x2 h: f- h+ J1 F
    ) I- ?2 O0 L5 {2 g: w9 [首先,宽表中一定要包括我们想预测的事情,通常称作预测目标,上图中的预测目标就是历史用户的违约行为,也就是图中y那一列,yes表示违约,no表示不违约。预测目标还可以是一个数值,比如产品的销量、售价……,或者是预测属于什么种类,比如预测产品质量是优、良、合格还是差。有时目标在原始数据里就有,可以直接使用,有时目标还需要人工标注。5 ~" {$ b6 ~: ~: D' G% {1 t
    % Y2 S5 T3 [; n
    除了预测目标外,这里还需要很多信息,如表中的用户年龄、工作,房产,贷款情况……,这里的每一列称为变量,也就是和贷款人将来是否违约可能会相关的信息,原则上能收集到的变量越多越好。例如预测客户是否会购买产品,可以搜集客户的行为信息,购物偏好,以及产品的特征信息,促销力度等;预测汽车保险理赔风险,需要保单数据,车辆信息、车主交通习惯以及历史理赔情况等等,如果是预测健康险还需要一些被保人的生活习惯,身体状况,就医看病的信息;预测商场超市的销售情况,需要历史的销售订单,客户信息,商品信息;预测不良产品,需要生产的工艺参数,环境,原料情况等数据。总之,收集到的相关信息越多,预测效果也会越好。! j3 N% K& m: ^# Z: k( Z3 a

      c/ r3 ]+ R5 i* M采集数据时,通常会截取某一段时期的历史数据来制作宽表,比如我们想预测7月份用户的违约情况,可以采集1-6月份的数据来训练建立模型。数据采集的时间范围并不是固定的,可以灵活操作,例如也可以是近1年或者近3个月等等。% N$ ]9 a% X7 \. t" u. e

    % v& g- E! H# g6 C' o0 y! H准备好的宽表可以是Excel格式或csv格式,第一行是标题,后面每一行都是一条历史记录。
    2 L; ~  r# z* e9 ]3 z5 F9 x/ U2 _* v" J; |8 Z0 a& W
    如果企业有建设好的信息系统,那可以找IT部门要这些数据,很多企业的BI系统中可以直接导出这种数据。
    : `4 Y* S3 d0 v. L" o/ q9 w0 h; s1 r' w7 u$ d) q
    2. 下载软件,配置建模外部库( A5 u$ a$ X& `1 i! Q) @' ^
    SPL 在易明建模外部库的配合下可以提供全自动化的建模预测功能。0 S: m+ T5 `& B$ z* [! s( }( H* c3 ?
    3 u: K; R; O3 W7 Z2 A, w0 @* l" ]9 L
    (1)下载安装集算器(SPL)和易明建模软件
    8 K' q" B- _+ s7 A3 a6 ?: v$ E$ _! t集算器下载:
    , T  i7 ?$ P) M+ j9 D# k“http://c.raqsoft.com.cn/article/1595816810031”+ l5 I( `7 Q3 ?6 I- S  j

    5 q* H% r2 o- k& V易明建模下载: “http://www.raqsoft.com.cn/download/download-ymodel”/ n# J- R9 {3 B, W7 P. t: Y7 a* H

    * R5 V" z. \6 y, w: j) U- f0 q安装集算器和建模软件,并记录安装目录,比如:C:\Program Files\raqsoft\ymodel
    ! e' q& n2 j/ p/ F; I% P/ M2 F
    * d# O: T+ T: ~' [( M2 X

    - I- L0 a3 m' V" X/ n: ](2)在SPL中配置外部库  w! ]) P3 D$ w  u6 H3 F6 Y; g
    (a)复制外部库所需要的文件. B* H) c7 ~. V; E% ~* K
    在易明建模的安装目录下找 YModelCil 和 lib 文件夹. _; r. n: T; d

    % n8 _; m4 M' l0 S% G3 _9 P" v
    5 S  {, f4 N5 |' @# {0 d% ]1 b( J1 O* x4 [/ _
    然后去这两个文件夹里找到建模外部库所需要的文件,复制到集算器目录(【安装根目录】\esProc\extlib\YModelCil),比如C:\Program Files\raqsoft\esProc\extlib\YModelCli。# a5 }$ }. b$ f- `1 p4 D7 l

    - G4 K" s$ Q* P3 Z  {8 F7 q  W+ y建模外部库所需的文件有:1 _% o* t, F2 M7 b5 b' ]7 W# c
    & ]* S* [6 C$ g. s" d( U! w, p
    1>易明建模目录的YModelCil中含有以下jar和xml
    4 R' w) H& [# {" v, l# ~1 f- y4 @: M3 t  m
    ant-1.8.2.jar& m6 [! }( W; z( \# p, w6 b
    commons-beanutils.jar$ ^1 l: t1 @/ p% r
    commons-lang-2.6.jar  ]; R  n& }+ E! b" T
    ezmorph-1.0.2.jar
    $ b( ^8 E/ g! ^' k$ Njson-lib-1.1-jdk13.jar& f2 {) x7 z( O: k: N5 s$ T+ o
    raq-ymodel-cli-2.10.jar
    6 ^3 b- U# D$ ^# N8 Auserconfig.xml, ?- l+ F7 ?, d1 O+ [
    * q; u1 R! j( U+ C
    2>易明建模的lib中含有以下jar
    * V5 K7 N" Z; j3 K( f2 W% u, Z5 G+ t% h& U. }4 R* \
    commons-io-2.4.jar2 k" H. v5 a* e
    esproc-ext-20211104.jar
    8 O* n! k4 }4 m  j2 ^fastjson-1.2.58.jar
    # j  }5 Q6 S/ k- U! tgson-2.8.0.jar8 i' ~: V' }* S% g3 V
    jackson-annotations-2.9.6.jar
    4 i, Q, v! C! yjackson-core-2.9.6.jar
    & e7 M5 Y0 P2 Yjackson-databind-2.9.6.jar# z" S  ~; Q7 v3 s3 G$ I  ]
    jackson-databind-2.9.6-sources.jar
    1 W% F  _- Q* n; q& ojackson-dataformat-msgpack-0.8.14.jar
    # _1 P$ q# ?( n# l) fmining.jar# t" H4 o& N( ^% V5 ?
    msgpack-0.6.12.jar
    / G: ~1 t: h, R8 O! lmsgpack-core-0.8.16.jar: a- f1 @7 L$ g( z; j: I

    * \2 l  p/ g3 `1 z- T1 I(b)设置userconfig.xml文件参数
    6 \& m4 s$ c. G在集算器目录esProc\extlib\YModelCil下的userconfig.xml文件中设置参数
    5 T* y' z/ a0 N/ Q- J/ D1 X- [) a" |  H$ H7 `  R0 N+ o# I9 p4 T
    名称        参数说明
      V+ h% r: @6 @& o4 {5 ~$ a, zsAppHome        易明建模的安装目录3 F. {& h: ~0 K. t: \
    sPythonHome        易明建模目录的Python路径 Windows: raqsoft\ymodel\Python37 Linux: raqsoft/ymodel/Python37/bin/python3.7
    9 P3 M8 e( ^% I0 N! u& I1 AiPythonServerPort        Python服务网络端口
    $ \+ v7 K% v5 Y$ n) k) `8 Y5 p# LiPythonProcessNumber        Python进程数
    , K. i3 @6 H! s8 P, I" XbAutoDecideImpute        是否智能补缺
    ' v& I* R6 g" o% Z$ Y1 x% t' e6 fiResampleMultiple        重抽样次数9 N  M) W; T& G
    其中必须要配置的参数为sAppHome和sPythonHome,其他参数可以采用默认值,有需要再进行修改。比如可以配置参数如下,加粗部分是必须要配置的,根据自己的安装路径。
    2 ^# G% J6 c+ V! _" ~! K( a( ^! Q+ K8 H% I
    <?xml version="1.0" encoding="UTF-8"?># p9 m/ _: s) g
    <Config Version="1">
    # ~4 c& G  c% V3 Y1 \  g+ X' F    <Options>
    5 A! W! H+ L5 J: N' ]" h9 Q        <Option Name="sAppHome" Value="C:\Program Files\raqsoft\ymodel"/>. S! p2 f; Z, A/ U+ |& b" W# h
                    <Option Name="sPythonHome" Value="C:\Program Files\raqsoft\ymodel\Python37\python.exe"/>
    ; G! |" Y& U! P* z7 M, y# X, d                <Option Name="iPythonServerPort" Value="8510"/>
    ) Z: g9 V5 ~3 S) M% N  |4 X3 G' U; S                <Option Name="iPythonProcessNumber" Value="2"/>
    ! V+ z  q. K1 H  K' v2 @) F- K              <Option Name="bAutoDecideImpute" Value="true"/>: ?  j  t" \; \5 Z, J1 R& a
                    <Option Name="iResampleMultiple" Value="150"/>                               
    9 d4 U3 d/ [6 P1 F8 y    </Options>7 Z  T5 `5 s% `, i
    </Config>, O0 r9 v! a( |, n' f2 v* ^; ^
    18 ?$ q) z5 P: I8 v
    2
    ( d) a8 ]4 v" \1 w% j+ ~% f3& Y  D0 r  [, c
    4: x' _( O2 u+ G3 _
    5
    8 t. x/ D: b4 u, |- @6: y& T/ @; z; c) q# \+ S3 ^: D
    7
    : Q! K! k; z) X2 n$ h3 i- W87 S/ v: b' z3 s  _
    91 b  v4 _7 W9 E
    10
    : j4 U8 \- l6 m3 l' T. _( f11
    : V" j! A( B' t% t$ T其实,从这里可以看出,易明建模也是基于Python写的,但它将Python算法做了封装后,程序员就不必再理解算法的数学原理和运行细节了。/ \& ^# R& S, f
    " ?+ }* v, U: M9 V4 }
    (c)SPL环境配置+ v+ ~5 x! z9 \: N7 ~
    1>. 配置外部库4 C2 D/ A7 H: O' t: c! b

    8 h) `# _. M1 a7 g( T% g打开SPL,在选项菜单里,外部库选择里勾选YModelCli,使其生效。外部库的路径为第(1)步骤中集算器YModelCli的安装路径。
    " C$ W0 q9 }! N. ?! [2 T- v& w; z- n/ C) Y- J5 J. ]

    , o. K. t4 i0 J4 S- _/ h' R# j9 e+ a5 y' D% v+ X& K
    在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置外部库路径和名称。( p5 I1 e& d' g
    8 X/ s* D# [" W0 E( q: B0 H
    <extLibsPath>外部库路径, q; u% o9 X% l2 w2 `* W8 d3 L
    / z* O( v9 r' y+ ?6 b) P
    <importLibs>外部库名称(可多个)' P4 u: `) P# q

    8 Z0 V3 {) [6 v8 f3 P4 X2>. 线程数设置( O1 H2 A1 y4 Y5 z, {- i+ L
    ! G4 |- o' t' N/ |9 u! O9 p
    如果有并发预测,还需要在SPL设置“最大并行数”,也就是线程数。设置多少用户根据需求和机器情况自行设定。
    $ T: B7 @) r$ c/ X% |* f$ ~
    * _2 _% A; N$ w/ p5 F
    0 \1 d. ^: @( ?+ b7 L; ^! }: V' D2 g
    在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置。% n6 B) @- K2 f5 i

    8 B. R+ ~9 S# o* W0 y' x% G3 }2 P% g<parallelNum>最大并行数
    2 C  c' ]3 f3 X: }" x
    - K. n  ]2 m: U2 G' |到此,环境配置完成。
    2 a5 N2 w- t8 ?' ]$ q% a4 x+ ?, T2 X; O7 z5 _% @2 a
    3. 建模和预测
    + \9 W- [" o9 o0 N" p(1)加载数据+ h- w9 @% ]3 G5 V3 X8 s) N! d5 S% {
    SPL能支持csv,excel或数据库中的数据用于建模,这里以csv为例,其它数据源类似。5 Z( f' L: Y; [/ e. ]  M: i
    4 x, q7 y/ ], r3 P4 U! `
    设有一个贷款违约数据表如下,需要建模来预测新用户是否会发生违约行为。
    8 \: B% f' G0 G- b
    , k' M% ~0 P% p6 A0 O0 t2 y( R1 f8 I5 B* ~* D

    4 a2 q% {: k: a! D& x1 [, y4 z2 [* n文件命名为bank-full.csv;
    4 Q4 s- G2 ~% o7 l# T: W
    % X" ?7 D# O. ~& H/ G% i$ E1 wA' O, u$ F6 i6 G. q1 @/ w
    1        =file("bank-full.csv").import@tc()8 ?+ m4 q5 C1 z
    2        =ym_env()4 o' M% L- F7 V" Q  }
    3        =ym_model(A2,A1)* s6 O0 P- ]+ }! N; W
    A1 导入建模数据,读成序表
    ; f9 o2 @4 c. w( Y4 c4 n9 B
    ) h, p. i- W9 R2 Y: k8 w9 {; ]2 u+ x! c+ Z3 p

    4 l6 v7 `5 D2 ?. S' YA2 初始化环境,执行A2后会在易明建模的安装目录下生成store目录及子目录用以保存数据及结果文件。
    + V! h8 D4 S4 p: v; U8 Q7 x9 G0 D2 l- e; j4 A' q. u0 W
    A3 加载建模文件,生成md对象/ T5 V9 R' X, }8 t: C) j

    9 I9 |& {; S  Y! m(2)目标变量设置和变量统计0 b  [7 ^9 u$ ?
    数据加载进来后要设置目标变量
    6 z( f8 k+ H2 z* V7 `7 p" Q- s% L1 A3 X8 {- R8 K
    A
    0 \9 D+ R4 ~% `5 J) P…        …
    0 ?; e$ f7 l3 k+ I$ T+ J4        =ym_target(A3,"y")
    4 Q* n) v. n8 g9 M5        =ym_statistics(A3,"age")! b) W& R* P) ?1 c
    6        =A1.fname().(ym_statistics(A3,~)); S$ ^& }" j$ h, P
    A4 表示将字段“y”设置为目标变量,目标变量可以是二值变量或数值型变量。
    ! P9 a7 w: g9 p3 c3 }
    # j" P& H+ g6 c( U+ g8 vA5 查看某个变量的统计指标,比如 “age”,返回值中可以看到缺失率,最大最小值,异常值,数据分布图等参数。
    $ d, d5 U7 N* B6 i! M) B( y( z9 ]; y
    : f: ]: I: k- }2 d$ j: a% e* q

    & a" |  M5 R& k( z: Z( bA6 循环变量名查看所有字段的统计信息,返回包含所有字段的统计信息二级序列。
    % ?" b5 W$ w" B/ ?5 G+ }( m) l# _8 ^, W' @' i9 h1 H! G

    . K* E; T" C  }3 R  J, I/ b, p
    (3)建立模型和模型表现4 h- V3 `! p5 j# b4 u+ ?
    A5 X5 d. |, z  Q+ u% M& W6 S
    …        …& D. t7 f: D" z  T
    7        =ym_build_model(A3)! C: y" D8 i$ x
    8        =ym_present(A7)( h, O! ~, H7 S1 j
    9        =ym_performance(A7)
    / s4 x% v5 l  v6 h10        =ym_importance(A7).sort@z(Importance)
    8 S2 c/ f8 @5 }. _8 o7 j( O8 ~0 rA7 使用建模函数建立模型,执行后在后台会进行全自动化数据预处理和建模过程,此过程会耗费一些时间,时间长短取决于数据量。结果返回pd模型对象。
    % v0 U( T8 \0 i* l! L' q( t8 L
    ) L/ c% {" ]* R4 [模型建好后,可以调用pd模型对象查看模型信息、模型质量和重要度。  a7 d  f/ q4 e. N. z( Z
    7 [" Y5 |1 L, d" R6 x4 M  g
    A8 返回模型AUC值及参数
    1 n8 ?! ^* J8 S- X8 \, `( p: N. w( W$ C+ H& k) o- c
    . l3 S) O* L1 b8 T
    $ w$ \7 n( w( ^5 ~) C$ p
    A9 返回多种模型指标和图形,诸如AUC,ROC, Lift……
    & V1 g+ I& f0 w- d  Q  @% a% r* ]* X$ M$ j2 f

    1 X5 v# {* ]* n- c3 S1 R# ~! L3 J% L4 |2 Z( V
    比如点击A9的第6条记录的Value,然后点击右上角“图形浏览”图标,数值字段选择“Lift”,就可以查看Lift曲线
    2 A$ i- `6 R- p2 C9 e# N0 a
    7 R5 ~/ F: Q5 q! A( y( X: ~; d  J) M: ?. Z- T  [+ g! u
    0 ^) z) n8 |" k5 U# I3 t+ _" \
    A10 会返回每个变量对目标变量的影响程度并且按照重要度降序排列。数值越大对目标变量的影响程度越大。降序排列分析起来更加直观。% x9 y% k& c! W5 G6 n. l
    4 O) [. g+ g3 _: n2 `

    2 T! u' v( {% e5 `
    1 t2 }( R/ W9 g4 j* x* P) ](4)保存模型
    1 Q/ M3 J2 [0 \, D, uA
    4 @: x- \( O6 D5 r9 B4 ?- Y…        …7 v8 w. A1 {( `( d
    11        =ym_save_pcf(A7,"bankfull.pcf")* @6 ^6 A  @4 f8 b
    12        =ym_json(A7)
    ; a: j! a& H6 ?* c13        >ym_close(A2)$ b  G4 V- I9 m8 u" z
    A11 将模型保存为”bankfull.pcf”,默认保存路径为[sAppHome]/store/predict。
    . H) E3 P6 `& F0 p8 j' d; I6 M; f  D. d) v, m
    A12 将模型信息以json串形式返回。json内容详解可参考在线文档《json参数说明》5 w1 _7 h% {- T/ c
    2 T& |- \6 c: X3 J
    A13 关闭环境,释放资源。( T" u8 S( P8 F

    1 r# w1 R$ L7 E: q(5)预测/ N9 z5 ?$ h9 I0 p$ L! ?$ z: B1 X
    预测之前需要有pcf模型文件和预测数据集6 K3 X" u8 j( \) W# E5 H+ k

      j- A2 K7 Y- {1 U- ^A1 {" a! t- i( k
    1        =ym_env()  p3 l7 {+ `/ O$ t& M% K; J: c
    2        =ym_load_pcf("bankfull.pcf")
    " k+ z6 @/ c6 G0 c9 K, m3        =file("bank-full2.csv").import@tc()
    * L" A8 d" g$ M: n5 }, L4        =ym_predict(A2,A3)
    : ?8 W4 ?& v/ W3 V! ]' H5        =ym_result(A3)
    ; D' Y7 F. @) Q2 ]4 F( x6        =file("bank-full_result.csv").export@tc(A4)
    ) Q( c5 O9 p7 h1 ?  ]" v7 Z* i7        >ym_close(A1)& a, e; b; l! J3 G3 ]# {1 Q# m
    A1 初始化环境
    & u2 G9 i2 M0 h1 x/ x/ q
    6 x& H' w* w0 l4 U0 c  F% L8 QA2 导入pcf模型文件,生成pd模型对象。
    0 G7 T' y" T7 x/ o7 }4 `$ k/ p& a. I" J- {9 [+ u9 [  q, J
    A3 导入预测数据集,读成序表; C$ |$ _5 c8 p

    : Y: {! G5 a& U- `A4 对序表数据执行预测。除序表外,还支持游标、csv文件和mtx文件,比如A4也可以直接写成ym_predict(A2,“bankfull2.csv”)1 u5 z9 `; `+ l; X

    % p4 `- b! s  d9 KA5 获取预测结果
    9 p" S4 v* P3 n6 o! f, r- r+ \. \9 P  l
    ) c+ y0 Q- o# _0 T( T- c) n  w( G/ t* DA6 将预测结果导出,在本例中预测结果为用户发生违约行为的概率。
      H7 x) ~2 @( Z0 }1 D
    . |9 {; q; h2 u3 v/ i% g; G1 h
    8 K9 D. j8 Y- f$ d! l& F! [' T: a% hA7 关闭环境,释放资源
    5 E! l" l( C* `2 [
    9 @3 Z+ @$ g! @; D2 e+ v+ ?/ ^; r4. 集成调用
    " U/ y6 M, B8 T* S( b+ r$ _, [; \SPL还可以被上层应用集成调用,比如SPL可以嵌入到Java应用,详情请参考:http://c.raqsoft.com.cn/article/1615765346560
    ' o1 w: L" m8 e# e
    3 |4 y# v9 v' v. [$ N8 L: {总结
      W" p4 Y4 ~* V9 P. Y$ Q6 p使用SPL配合易明建模来实现数据建模预测非常简单,程序员不需要理解深奥的数学原理,只要准备好训练数据,简单几步就可以完成数据建模任务了。而且还可以轻松地把这个功能嵌入到应用程序中,高深的人工智能不再是少量数据科学家的专利。! H2 r. i# t& u, z/ N4 m
    ; C+ j2 r* n9 F6 n: C: o+ s$ e' N5 l
    SPL本来就超强的数据处理能力,能更方便地完成人工智能算法之前的数据准备工作,同时也提供了丰富的数学函数: SPL Math 例程,有些数学基础想自己实现建模过程的同学也可以进一步研究。% ]4 d3 y$ ]: b
    ————————————————7 a; Q- T+ d3 R7 j% c$ y! @( s
    版权声明:本文为CSDN博主「java李杨勇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    # a- G7 F9 @( W9 o8 w* b原文链接:https://blog.csdn.net/weixin_39709134/article/details/126698462
    6 S; r+ `1 O2 h' K
    0 k4 O* C, ]$ B5 w8 ]% F5 H$ C1 D8 D; ~; S0 g' P% I5 h* [! \
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-5-30 17:58 , Processed in 0.615617 second(s), 51 queries .

    回顶部