QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2026|回复: 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 也不错
    * j9 L: j6 J# x) o1 f. r8 ^" H- }  |
    + ]/ X, T5 r3 A, h; c$ b$ k+ Q可用来做人工智能建模预测的工具非常多,比如Python, R, SAS,SPSS等,其中Python由于简单易学、丰富的数据科学库、开源免费等特点备受欢迎。但是对于不太熟悉数据建模算法的程序员来说,使用Python建模还是比较复杂,很多时候拿到数据并不清楚该做怎样的处理,选择什么样的算法。其实,在做数据分析和数据建模时,SPL也是不错的选择,它比Python更简单易用,计算速度也快,交互式的界面对数据分析十分友好,同时还提供自动数据建模功能和一些数据处理以及统计学函数,用起来也很方便。
    " T5 v- ~4 V6 s  A  U- i7 y  X9 e0 B5 \% t5 P
    下面就以一份用户贷款违约预测的数据为例,使用SPL手把手的进行数据建模预测。' J0 p$ g& S( v  @/ ?; v
    6 s, e% L* u3 t* t( b
    1. 确定目标,准备数据
    5 T( t: I: T$ x3 `# Q1 L4 u* a8 e9 m建模预测就是从历史数据中挖掘出规律,然后使用规律对未来可能发生的事情做出预测。这个规律就是一般所说的模型。0 Y# _( E& ?- B% a7 Z5 Q6 @

    # ]' u, v) I3 t! T历史数据通常是一张我们俗称的宽表,比如在用户贷款违约预测的例子中历史数据是如下图这样的Excel表格:6 I  q4 i  }1 ]  Z1 x. _2 H) P
    ) T1 f1 U+ G4 U  U9 W
    首先,宽表中一定要包括我们想预测的事情,通常称作预测目标,上图中的预测目标就是历史用户的违约行为,也就是图中y那一列,yes表示违约,no表示不违约。预测目标还可以是一个数值,比如产品的销量、售价……,或者是预测属于什么种类,比如预测产品质量是优、良、合格还是差。有时目标在原始数据里就有,可以直接使用,有时目标还需要人工标注。2 U& N. [) V) A/ I& M) M- o+ [

      Q1 |: Z' ~5 o除了预测目标外,这里还需要很多信息,如表中的用户年龄、工作,房产,贷款情况……,这里的每一列称为变量,也就是和贷款人将来是否违约可能会相关的信息,原则上能收集到的变量越多越好。例如预测客户是否会购买产品,可以搜集客户的行为信息,购物偏好,以及产品的特征信息,促销力度等;预测汽车保险理赔风险,需要保单数据,车辆信息、车主交通习惯以及历史理赔情况等等,如果是预测健康险还需要一些被保人的生活习惯,身体状况,就医看病的信息;预测商场超市的销售情况,需要历史的销售订单,客户信息,商品信息;预测不良产品,需要生产的工艺参数,环境,原料情况等数据。总之,收集到的相关信息越多,预测效果也会越好。
    9 B; |0 w' i' v6 r" K! \' ?) F7 G2 L+ a6 ~+ A: I' V9 F: p6 l$ H
    采集数据时,通常会截取某一段时期的历史数据来制作宽表,比如我们想预测7月份用户的违约情况,可以采集1-6月份的数据来训练建立模型。数据采集的时间范围并不是固定的,可以灵活操作,例如也可以是近1年或者近3个月等等。& i) K. S. M7 p2 a$ f
    & X2 e" |# K$ A
    准备好的宽表可以是Excel格式或csv格式,第一行是标题,后面每一行都是一条历史记录。
    ) ~* ]0 `$ X! k2 X; V1 ]8 Q5 g; E" B% F3 ~  j; `
    如果企业有建设好的信息系统,那可以找IT部门要这些数据,很多企业的BI系统中可以直接导出这种数据。  u8 m5 \9 y/ G3 X1 _& y5 A- W2 Y

    4 G7 ?1 p6 a9 l- |5 s- }2. 下载软件,配置建模外部库' ?" A1 b# i8 h- ]* X- b
    SPL 在易明建模外部库的配合下可以提供全自动化的建模预测功能。8 w! e, N7 |" Y" m

    ( k) K! \8 q7 O/ \' G& P2 P  U' j7 c(1)下载安装集算器(SPL)和易明建模软件
    0 q7 B4 L5 _' E* I, a集算器下载:! V/ z7 V0 u# f) I/ Y- n6 ?
    “http://c.raqsoft.com.cn/article/1595816810031”
    7 n4 K* ?! ?4 ~5 [2 O, `
    2 Z; J8 A( O, r5 ]+ ~2 `! m易明建模下载: “http://www.raqsoft.com.cn/download/download-ymodel”5 U6 u, S3 ?9 l" ~

    - i$ h% h: f' C4 @安装集算器和建模软件,并记录安装目录,比如:C:\Program Files\raqsoft\ymodel7 V. y% m% ], X' d% K4 `

    4 `( M) A6 v0 G9 h  c5 V( T; d" r8 r8 l3 N
    % C8 O) K9 n- j* D: b1 E
    (2)在SPL中配置外部库( N" K6 A4 {) B% [" ]$ V. [
    (a)复制外部库所需要的文件
    * f* }0 U; R' ~# @7 I, F4 k" R在易明建模的安装目录下找 YModelCil 和 lib 文件夹, C& v, _  O; c+ V; g. C

    4 m  k1 D6 E  g  h# e
    6 B% y4 {8 s9 A+ N8 a) n- ^7 A. K0 W- @5 {% e
    然后去这两个文件夹里找到建模外部库所需要的文件,复制到集算器目录(【安装根目录】\esProc\extlib\YModelCil),比如C:\Program Files\raqsoft\esProc\extlib\YModelCli。
    6 |' T. B; {' J+ \
      S2 V  N4 T) V建模外部库所需的文件有:, h" e# C  P% S% b: O! c
    4 @# L1 o# d9 _, \
    1>易明建模目录的YModelCil中含有以下jar和xml* e+ q" t! X2 d5 K  O) {
    % w2 K6 C1 c5 ?1 j! R& a
    ant-1.8.2.jar
    " i2 A8 g# t) e! Vcommons-beanutils.jar
    ! s2 U3 L  j7 ^+ U" [commons-lang-2.6.jar/ x1 N1 P0 @: W% G2 g* C0 Y
    ezmorph-1.0.2.jar! q1 Z8 n3 ~5 w; P& P3 Q
    json-lib-1.1-jdk13.jar
    ' p- T1 a' P: r5 ~  ~! lraq-ymodel-cli-2.10.jar
      q- O2 j5 ]$ s4 Juserconfig.xml, r, D8 f. W1 I. Y" [% j
    3 J# B9 s" H! h1 d5 K! [
    2>易明建模的lib中含有以下jar5 K/ S7 h$ l6 w- ]/ O
    " v! K5 G% t  N0 y% K! Y5 \
    commons-io-2.4.jar
    * o. A, f2 s  S0 P9 k" Y$ @6 m& Qesproc-ext-20211104.jar
      \9 R$ c6 i0 B, R7 g0 k, m4 kfastjson-1.2.58.jar3 |' u) T# c8 o3 a
    gson-2.8.0.jar
    8 w9 z; G+ F* ~) h+ ^& Pjackson-annotations-2.9.6.jar+ D) U/ x- g9 M+ c  Q9 \$ \
    jackson-core-2.9.6.jar7 t% b) i( ]& r5 t( G4 V. j0 |
    jackson-databind-2.9.6.jar
    $ i! ]' p4 b; p- bjackson-databind-2.9.6-sources.jar( Q5 v# z2 z& g5 J! h7 k4 K2 g0 Y
    jackson-dataformat-msgpack-0.8.14.jar
    # a+ d! |( _* u) q  o& z2 q' cmining.jar
    : z7 O! Z! }/ g7 u( |3 W8 _" Hmsgpack-0.6.12.jar. x4 X( o' y, @& I
    msgpack-core-0.8.16.jar: d: J" ]2 I; s" T+ n/ [' u
      W+ B7 ^$ |9 h- a, b/ G0 b
    (b)设置userconfig.xml文件参数* ^5 G1 C' j' ?- N# E
    在集算器目录esProc\extlib\YModelCil下的userconfig.xml文件中设置参数
    8 }, `- T6 l" {! a  @; j6 M
    ; v6 M9 [, A, ], j' A# Y名称        参数说明6 K0 r- r' @. q& V: |" N$ H
    sAppHome        易明建模的安装目录
    ) p. }- r/ E* j$ h; osPythonHome        易明建模目录的Python路径 Windows: raqsoft\ymodel\Python37 Linux: raqsoft/ymodel/Python37/bin/python3.7
    " T6 w4 d- l3 L5 L* q! }iPythonServerPort        Python服务网络端口3 U% j. r: S/ B% H9 J
    iPythonProcessNumber        Python进程数; C6 Q& K: t6 N
    bAutoDecideImpute        是否智能补缺
      p# o& W4 T- {# X) D( f1 biResampleMultiple        重抽样次数( h6 W' c: u% {
    其中必须要配置的参数为sAppHome和sPythonHome,其他参数可以采用默认值,有需要再进行修改。比如可以配置参数如下,加粗部分是必须要配置的,根据自己的安装路径。
    9 ?. `1 O; f+ }) Q2 m  n2 q; I8 r) X5 W9 J% M0 A* a3 X) A- a: b
    <?xml version="1.0" encoding="UTF-8"?>0 c4 V! q6 |9 n9 C* y  Z+ n' D9 \
    <Config Version="1">
    0 g, ~# }5 {, A1 m- w5 w7 X    <Options>
    ! X5 v( I+ r! z+ c3 n& y$ a        <Option Name="sAppHome" Value="C:\Program Files\raqsoft\ymodel"/>+ n: V( o* _0 ^- {
                    <Option Name="sPythonHome" Value="C:\Program Files\raqsoft\ymodel\Python37\python.exe"/>
    ) `% I) ]( m' H! U& x: F                <Option Name="iPythonServerPort" Value="8510"/>9 l3 @& F; V$ d7 h
                    <Option Name="iPythonProcessNumber" Value="2"/>7 m8 ]; }, P& o1 Z! C1 B& _
                  <Option Name="bAutoDecideImpute" Value="true"/>
    $ y4 T' Q9 t, j                <Option Name="iResampleMultiple" Value="150"/>                               
    " T  U& K. a* C& Q- h; k    </Options>
    1 T0 {3 M  e+ I1 l3 ]9 e</Config># q; @! Q0 l3 Q1 C4 N
    1
      ]! x# o6 {% {% K2
    ( E4 Y3 l1 I0 j+ `3
    * z2 [" c5 o2 j( K42 \# Q& q( H3 p: }! m
    5$ D9 ~' K. O# B( U9 |! s$ Q% U
    6' a% d  G% S. B2 J
    7
    7 }- G6 Z% f( j2 M& Q# E. R82 I1 T. n1 [6 d: ~6 c
    9# ^& j  i; G2 e1 x. q7 S9 l
    10
      Y7 m, m3 w8 i1 G; [, u  F3 \119 ?( ?' E7 V+ A# v, }" Q
    其实,从这里可以看出,易明建模也是基于Python写的,但它将Python算法做了封装后,程序员就不必再理解算法的数学原理和运行细节了。' w- X6 `1 S. E' _0 x/ R6 M5 n1 `

    3 R' |9 X( W1 s0 r' i; V$ x(c)SPL环境配置6 B! c8 d, e" L4 i
    1>. 配置外部库: A  O; p" Z1 y: I  `

    ( S1 {" A( T1 l: z3 `% I打开SPL,在选项菜单里,外部库选择里勾选YModelCli,使其生效。外部库的路径为第(1)步骤中集算器YModelCli的安装路径。
    ! V, p) k! r/ ?! [6 E4 S# V2 k) K) s+ z/ g- k$ v, A
    ) N! @: _2 Y8 a3 A" B- |
    $ A; h+ ~( l5 k& f5 ^  S- U
    在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置外部库路径和名称。
    $ g& \1 |1 a  w
    " r6 u) m; Q3 a; {1 ^7 z<extLibsPath>外部库路径) i+ u( {6 h. A5 l/ w1 C

    0 E% l  @. A  y: D& M' m) V- q<importLibs>外部库名称(可多个)& c# i8 i8 L( k2 B$ k4 Y) ~, r4 R1 s
    , n1 S9 u! R$ D# O) A& f6 [
    2>. 线程数设置/ H5 j5 p& Y( [
    " e% _$ E8 ^% z8 ]) Z
    如果有并发预测,还需要在SPL设置“最大并行数”,也就是线程数。设置多少用户根据需求和机器情况自行设定。( ^- q' m; ^. ~8 `# b4 T

    5 C0 `. }% v& E  U% t
    8 U& L* i9 k8 P& C: M& N! Y1 S
    7 b( ?7 |  B" Q* R在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置。
    : u9 K/ i7 U; L
    / y) f  d, [1 i, X9 X<parallelNum>最大并行数
    0 Z: O2 n; g. F) B% v- c3 x  h! c# [. ^( U: p
    到此,环境配置完成。
    ! O! u- H$ \% X1 c0 w3 q' n
    * o) E* [) }+ ~( [& z, Z9 v3. 建模和预测. N7 p% j; C. H. K, V/ q! ]9 n
    (1)加载数据9 m! V' D* L) z1 q  a
    SPL能支持csv,excel或数据库中的数据用于建模,这里以csv为例,其它数据源类似。* g. S) o% m# J5 c5 }- Q
    ; ~- v4 i4 d8 C8 Q3 V: f7 s9 S
    设有一个贷款违约数据表如下,需要建模来预测新用户是否会发生违约行为。
      b" w7 E' z/ v; n( q* r- A8 R0 w  \  r. ~" l4 ^- e
      u% f+ @; h, t& x' T* n8 l

    / Z2 s! N+ l5 ]文件命名为bank-full.csv;, R6 K! X# P$ T/ @5 d
    + V9 _7 S. f7 P4 O. H7 x" i
    A
    $ n4 O, b6 }$ R. ?4 V1        =file("bank-full.csv").import@tc()
    * c& d4 J" h1 P" s3 @2        =ym_env()
    6 g0 j% O* m2 M) J4 m3        =ym_model(A2,A1)) i. ^+ D+ N+ c
    A1 导入建模数据,读成序表/ F1 F2 ^  @2 `

    : ?" o  J7 Y% d
    0 x/ J" V& I- M% ~1 O) j
    % L7 `) i% i: }: i* mA2 初始化环境,执行A2后会在易明建模的安装目录下生成store目录及子目录用以保存数据及结果文件。
    4 M- R6 \$ V: h$ e$ a3 C5 i8 n" b" g* @* ]9 H' k5 a
    A3 加载建模文件,生成md对象9 B( U7 V  m% [4 o* t- W2 p# P0 M

    4 l) H5 i: Q1 @" @8 r(2)目标变量设置和变量统计
    - d" P  a' `+ x数据加载进来后要设置目标变量; \3 Z) y. I' L& ^
    # e8 A6 U- N( T" l* Z
    A) ^, p+ K' E& Y4 ^. b9 Z
    …        …
    5 r- H; P& q( x4        =ym_target(A3,"y")3 m  M7 z. b* O1 F0 i+ k5 G
    5        =ym_statistics(A3,"age")8 h& Z! Q2 l# ?$ z# R6 L
    6        =A1.fname().(ym_statistics(A3,~))9 x6 t1 A8 X5 T" c7 E" U
    A4 表示将字段“y”设置为目标变量,目标变量可以是二值变量或数值型变量。8 M: g( H6 [- P1 [

    0 L  `7 p( A3 U* o& d7 dA5 查看某个变量的统计指标,比如 “age”,返回值中可以看到缺失率,最大最小值,异常值,数据分布图等参数。
    * q( B: T# K. q" V9 y9 G% F1 x( \+ Q; u: J
    ' z" h  D; F1 t- x) e# P; w& D8 j; O
    ( r) P7 X0 [* @: `& ^# @
    A6 循环变量名查看所有字段的统计信息,返回包含所有字段的统计信息二级序列。
    $ D4 K; f( Q3 E! C1 x0 Y$ B/ R1 y, o. V) B  ]; O  S
    , g( H: h* i; I+ e2 g# A
    ' M. j. O6 C7 s  N$ H+ o
    (3)建立模型和模型表现
    6 ?& [( G, q% r' N9 R9 KA: x# x: b; }' z9 X
    …        …
    ) o+ @' m! J7 ]8 X8 W( s7        =ym_build_model(A3); e( N; p7 B* Z$ s8 t5 [1 i
    8        =ym_present(A7), h3 Y* s$ J3 ~. E6 A" b/ ]
    9        =ym_performance(A7)
    . |4 h. }7 y+ d6 L% I5 `10        =ym_importance(A7).sort@z(Importance)$ y+ w& v1 _) I2 c
    A7 使用建模函数建立模型,执行后在后台会进行全自动化数据预处理和建模过程,此过程会耗费一些时间,时间长短取决于数据量。结果返回pd模型对象。
    ) Z% D8 H+ \8 T% c4 }4 b- e- u) O: \6 T* w, }8 I1 }/ ~
    模型建好后,可以调用pd模型对象查看模型信息、模型质量和重要度。7 \5 R. G5 ^4 d
    0 f/ w2 x, c) m: h
    A8 返回模型AUC值及参数
    + D0 X1 ?" n/ i: |+ L0 Y
    ) d) J) T; Z" y, n4 ?/ `
    / L  Y3 P1 c4 A  ?5 [! V8 E2 s; A9 L3 e4 S* c
    A9 返回多种模型指标和图形,诸如AUC,ROC, Lift……, \3 K1 Y+ \( N- f
    1 m/ e0 R, _  |0 W5 ?* n, x" M. i
    3 C; w! H" N: n' J& j- P$ D; c

    6 E2 i, W$ m" ^比如点击A9的第6条记录的Value,然后点击右上角“图形浏览”图标,数值字段选择“Lift”,就可以查看Lift曲线6 ]# S  S, P# S& j. C7 }" u, x4 m

    2 n4 K$ R& F! c% v! j! P7 j6 ?0 W
    % b9 J" T1 v8 X  q  s# C. p  E8 L! X9 m% d1 E( H$ a; v$ r
    A10 会返回每个变量对目标变量的影响程度并且按照重要度降序排列。数值越大对目标变量的影响程度越大。降序排列分析起来更加直观。
    6 c5 o) O9 g  M: i
      t3 d* a. j! h2 t% j0 g
    ! `' g0 ]: @  {+ n, G8 z9 `0 k( j( e  c8 X$ U- h: ]0 S/ |2 l% u
    (4)保存模型% N5 ~" j% h. q2 T( @
    A6 |. K/ e* y! O, p% q
    …        …. Z6 R$ O( S6 v/ O0 |- E- Q+ h
    11        =ym_save_pcf(A7,"bankfull.pcf")3 y% ?9 e1 b% a! Q  N  @
    12        =ym_json(A7)
    " f6 U, ?, q0 G3 ~2 G5 I9 B2 f13        >ym_close(A2)2 R+ l. ^" ]* U, l  S7 A
    A11 将模型保存为”bankfull.pcf”,默认保存路径为[sAppHome]/store/predict。+ p: R4 j* p- R& @' _% a+ N0 a3 P
    ) h. ]( [: _7 K( c
    A12 将模型信息以json串形式返回。json内容详解可参考在线文档《json参数说明》! Y  C; f% I3 B  O# y& D& x- O
    6 G! V  U6 c/ ^$ \6 d; J
    A13 关闭环境,释放资源。
    2 w6 d# L9 Z& F; b# a& g
    2 t6 w/ n% B9 j. V/ ~1 j* j(5)预测
    " V# n; }2 w! s8 J& I4 n+ H% e预测之前需要有pcf模型文件和预测数据集
    # w* o( k/ t+ q- w- X
    ' e9 E$ @: z7 ~) O1 ]9 f( iA& t7 m" P) Z% ]' Y
    1        =ym_env()6 G. S. c: B6 U
    2        =ym_load_pcf("bankfull.pcf")5 X. c, |  s! o  y) F
    3        =file("bank-full2.csv").import@tc()
    5 l$ Q: ~+ b2 x) {0 L# ]4        =ym_predict(A2,A3)
    " v8 `0 n  }% d: w* D5        =ym_result(A3): a9 e8 k0 _( j( r8 R
    6        =file("bank-full_result.csv").export@tc(A4)1 s, _  b9 \9 t' c. A% x" n% [/ i
    7        >ym_close(A1)  k! V) p/ _! N9 ?
    A1 初始化环境
    5 R0 ]. ^1 I- K) C. u& a" V6 j  i0 Z2 G3 k
    A2 导入pcf模型文件,生成pd模型对象。7 I" _& a; ~# Q% L" T
    8 O  _. q  G1 B) e  q* N( ?2 w( |
    A3 导入预测数据集,读成序表& Z: O% N: a' C% b2 |7 |7 A

    , G. K  h" x& \A4 对序表数据执行预测。除序表外,还支持游标、csv文件和mtx文件,比如A4也可以直接写成ym_predict(A2,“bankfull2.csv”)" o; i* E0 k) }- E

    : x6 q3 X5 h$ |7 E5 t# A; w1 [A5 获取预测结果
    2 ~6 ]' o# b0 C* e4 g; V( b
    2 H' x" i4 P4 y, \A6 将预测结果导出,在本例中预测结果为用户发生违约行为的概率。2 Q, m: h0 t( _# n: ~3 e
    # g1 F/ l* B0 R8 k% K" O6 a

    : f( B/ `9 z7 _3 c  i0 KA7 关闭环境,释放资源* u/ F, b: ~5 ~- k" B' c
    ' ]) K6 K% g( @0 K0 ?( Z; E  ~. B+ }' m2 ~$ [
    4. 集成调用
    " c0 _* p9 U9 a; f& `. Z+ @SPL还可以被上层应用集成调用,比如SPL可以嵌入到Java应用,详情请参考:http://c.raqsoft.com.cn/article/1615765346560
    1 E' K  ?* W* M- M, \6 g: a) {0 t  o4 w9 U4 Q4 Z" x+ x0 D
    总结. W0 `! G, x2 d6 d' f
    使用SPL配合易明建模来实现数据建模预测非常简单,程序员不需要理解深奥的数学原理,只要准备好训练数据,简单几步就可以完成数据建模任务了。而且还可以轻松地把这个功能嵌入到应用程序中,高深的人工智能不再是少量数据科学家的专利。, y' z* V. \$ v% ~" a8 S: p4 c% r
      _$ N2 o9 S: S7 r" R6 g$ H
    SPL本来就超强的数据处理能力,能更方便地完成人工智能算法之前的数据准备工作,同时也提供了丰富的数学函数: SPL Math 例程,有些数学基础想自己实现建模过程的同学也可以进一步研究。
    8 B0 g. j% A& H& x  T* Y————————————————
    ( N/ S; j# I( S' w/ p( E9 R版权声明:本文为CSDN博主「java李杨勇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。& C) G0 V( [. l5 V8 F
    原文链接:https://blog.csdn.net/weixin_39709134/article/details/126698462, @, i4 l' e* m; X( G

    2 e" Y/ T8 _5 K# g, B4 Z
    # N5 g$ l, n5 E( M% C/ [
    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-6-17 21:17 , Processed in 0.472404 second(s), 51 queries .

    回顶部