QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2114|回复: 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 也不错
    , _8 l& W/ E) q7 P, g: I8 o4 B+ D
    可用来做人工智能建模预测的工具非常多,比如Python, R, SAS,SPSS等,其中Python由于简单易学、丰富的数据科学库、开源免费等特点备受欢迎。但是对于不太熟悉数据建模算法的程序员来说,使用Python建模还是比较复杂,很多时候拿到数据并不清楚该做怎样的处理,选择什么样的算法。其实,在做数据分析和数据建模时,SPL也是不错的选择,它比Python更简单易用,计算速度也快,交互式的界面对数据分析十分友好,同时还提供自动数据建模功能和一些数据处理以及统计学函数,用起来也很方便。. {# u8 ~: W( e1 e& O
    ' y: V; {  t# T
    下面就以一份用户贷款违约预测的数据为例,使用SPL手把手的进行数据建模预测。5 @, @/ x) ]& h" _& ^- ?
    - y5 w# [" O7 b3 l9 r
    1. 确定目标,准备数据
    # B1 R8 a: S) x* Z5 y建模预测就是从历史数据中挖掘出规律,然后使用规律对未来可能发生的事情做出预测。这个规律就是一般所说的模型。
    ) z5 e5 G% b1 `! o7 A7 k9 W; K$ \1 I; w: [. [3 b. F
    历史数据通常是一张我们俗称的宽表,比如在用户贷款违约预测的例子中历史数据是如下图这样的Excel表格:
    ( _2 s: b" w3 a2 L2 Z' V9 t& h* N
    " i% F4 x: R& t# `首先,宽表中一定要包括我们想预测的事情,通常称作预测目标,上图中的预测目标就是历史用户的违约行为,也就是图中y那一列,yes表示违约,no表示不违约。预测目标还可以是一个数值,比如产品的销量、售价……,或者是预测属于什么种类,比如预测产品质量是优、良、合格还是差。有时目标在原始数据里就有,可以直接使用,有时目标还需要人工标注。& z1 n# P$ o' d5 P7 _7 \, a

    ) Y6 `9 t) N  f& r$ n除了预测目标外,这里还需要很多信息,如表中的用户年龄、工作,房产,贷款情况……,这里的每一列称为变量,也就是和贷款人将来是否违约可能会相关的信息,原则上能收集到的变量越多越好。例如预测客户是否会购买产品,可以搜集客户的行为信息,购物偏好,以及产品的特征信息,促销力度等;预测汽车保险理赔风险,需要保单数据,车辆信息、车主交通习惯以及历史理赔情况等等,如果是预测健康险还需要一些被保人的生活习惯,身体状况,就医看病的信息;预测商场超市的销售情况,需要历史的销售订单,客户信息,商品信息;预测不良产品,需要生产的工艺参数,环境,原料情况等数据。总之,收集到的相关信息越多,预测效果也会越好。5 \& p% a) W& i2 T) H
      E' h9 I3 S- n4 Y& j
    采集数据时,通常会截取某一段时期的历史数据来制作宽表,比如我们想预测7月份用户的违约情况,可以采集1-6月份的数据来训练建立模型。数据采集的时间范围并不是固定的,可以灵活操作,例如也可以是近1年或者近3个月等等。
    # e9 @8 T6 N, j, F* S- O% L9 t9 a
    6 R. O' P# z+ ^) {$ y1 Y准备好的宽表可以是Excel格式或csv格式,第一行是标题,后面每一行都是一条历史记录。
    4 x) m5 D+ y* |8 P) Z/ ^
    8 o# |( g0 B, r& g) X3 L0 H1 q! y, I如果企业有建设好的信息系统,那可以找IT部门要这些数据,很多企业的BI系统中可以直接导出这种数据。9 o, b0 r8 y+ `' e: P9 I
    5 _- i+ [( w1 I  J* u3 {. @4 U
    2. 下载软件,配置建模外部库6 C" B3 c$ x, ?: t! K0 B( a
    SPL 在易明建模外部库的配合下可以提供全自动化的建模预测功能。+ N/ v* ~( {2 I$ ~7 s& Y
    8 `4 `4 q. H: H% \
    (1)下载安装集算器(SPL)和易明建模软件
      a  K. b3 R6 y, @集算器下载:
    / |) {& e/ F2 c# ^5 L) j“http://c.raqsoft.com.cn/article/1595816810031”
    . C! ?. A% X  U6 `% B7 O# A3 a' n3 H" a2 x
    易明建模下载: “http://www.raqsoft.com.cn/download/download-ymodel”
    - q% [! f: l* x0 x7 w+ v
    ! l2 c' i: z) v+ D) X2 J安装集算器和建模软件,并记录安装目录,比如:C:\Program Files\raqsoft\ymodel+ |3 `$ @( y' K: J. d$ Z
    9 L" d& c3 c0 a# Y: o/ v" q; G3 e2 m
    $ B" s3 m' \7 [% x9 Q* x

    # M7 S8 N8 N2 G& `(2)在SPL中配置外部库
    ( S) E4 O4 B$ W! _8 s: N/ d7 U(a)复制外部库所需要的文件/ U0 ^& f3 `  A/ B7 h
    在易明建模的安装目录下找 YModelCil 和 lib 文件夹
    / o2 K5 A* r# G
    9 u. e8 s& W* S
    8 H2 f" [; O1 E6 s$ w, {+ r! {" ?- s5 g9 B" n' G: b9 R
    然后去这两个文件夹里找到建模外部库所需要的文件,复制到集算器目录(【安装根目录】\esProc\extlib\YModelCil),比如C:\Program Files\raqsoft\esProc\extlib\YModelCli。  r& n& P" q$ y0 X( ~* A
    4 k  S) Y. x+ t) H( S2 ?
    建模外部库所需的文件有:
    8 ?+ x+ V/ @- O' e% d* G; R  y* n6 [7 I  L- S0 ^1 I) U- P
    1>易明建模目录的YModelCil中含有以下jar和xml
    . k  a& R' |* Y1 x1 @! Y9 A
    * C  |) U' A: Kant-1.8.2.jar
    $ N/ L: X  ?" Hcommons-beanutils.jar
    + G; j* ^  [( j, |commons-lang-2.6.jar& E, P% f$ G( S, m+ }
    ezmorph-1.0.2.jar
    $ @( K7 q2 J3 X1 J6 S5 h+ mjson-lib-1.1-jdk13.jar# z* Y) \& [: q/ o4 H8 Z4 y
    raq-ymodel-cli-2.10.jar- J- H! Y/ j; h' M6 |7 t
    userconfig.xml3 q. c9 H9 N4 W( P! a

    7 U9 B, ]3 H1 k9 r6 C2>易明建模的lib中含有以下jar% y. a& F% F% n& d

    9 p( c! {/ A( Y: o0 N# wcommons-io-2.4.jar
      R" J1 i6 z' Z* z7 y; n6 G7 lesproc-ext-20211104.jar
    2 K! F0 ]; S8 X7 O; }) I' rfastjson-1.2.58.jar
    ! z' v% k" A. M6 M. d1 Zgson-2.8.0.jar2 f. Y, N! `6 b
    jackson-annotations-2.9.6.jar* G8 d: O4 Q" Q0 Q
    jackson-core-2.9.6.jar" B' s1 n$ _6 }; O0 S
    jackson-databind-2.9.6.jar2 _9 W0 [/ K  g' h
    jackson-databind-2.9.6-sources.jar- c" u1 F9 ~/ {0 Q9 N: u
    jackson-dataformat-msgpack-0.8.14.jar
    & W0 l2 }% u' mmining.jar
    9 F( F) G$ g* h* i5 V' m; o( I/ zmsgpack-0.6.12.jar
    7 {  p1 O, q( _. O, F3 O% rmsgpack-core-0.8.16.jar
    - ^/ J/ t% P5 B4 ~! F- b
    2 X" p8 N# v# y  q1 S7 a+ C; z(b)设置userconfig.xml文件参数6 i$ e* q8 o7 N2 P( I6 Q, i! a
    在集算器目录esProc\extlib\YModelCil下的userconfig.xml文件中设置参数
    7 }$ _! ?7 w5 |4 ]
    & O8 N6 L! W/ C  R& n! d8 j  }8 Y名称        参数说明
    & p7 Z% j! Z5 ]( f* B: qsAppHome        易明建模的安装目录. m0 y4 z7 z  x- i1 @; B$ @9 u' r
    sPythonHome        易明建模目录的Python路径 Windows: raqsoft\ymodel\Python37 Linux: raqsoft/ymodel/Python37/bin/python3.7! W  E) h+ M: N6 `2 C
    iPythonServerPort        Python服务网络端口
    8 E" G" }3 n6 X1 [- }& uiPythonProcessNumber        Python进程数
    0 e/ k* ~& F- u, X; P% CbAutoDecideImpute        是否智能补缺" g" w% J' u: g% f1 j2 B
    iResampleMultiple        重抽样次数8 C( S* _' a! F6 \6 G
    其中必须要配置的参数为sAppHome和sPythonHome,其他参数可以采用默认值,有需要再进行修改。比如可以配置参数如下,加粗部分是必须要配置的,根据自己的安装路径。. j8 Q7 L, M0 ^% A) J
    2 X7 |* y' }9 w5 S, u2 g7 X
    <?xml version="1.0" encoding="UTF-8"?>, ]3 d; M0 y' G5 ^, Z
    <Config Version="1">3 [$ ?. I% H1 ]2 E# w1 H
        <Options>
    3 o: k5 q$ ^3 m2 O2 V        <Option Name="sAppHome" Value="C:\Program Files\raqsoft\ymodel"/>8 _: M8 R2 u' b+ @$ H
                    <Option Name="sPythonHome" Value="C:\Program Files\raqsoft\ymodel\Python37\python.exe"/>4 t' u/ Q* s$ d! {2 u% |. a, p% q1 w
                    <Option Name="iPythonServerPort" Value="8510"/>
    , E4 M- D/ _; t8 Y                <Option Name="iPythonProcessNumber" Value="2"/>4 K; u8 y- o2 E8 I/ {: c, j% q
                  <Option Name="bAutoDecideImpute" Value="true"/>& `" T% F, I& \$ Y1 m/ Q
                    <Option Name="iResampleMultiple" Value="150"/>                               
    9 Y9 i4 G% l$ d    </Options>
    ! h" z4 @; V& E1 l</Config>+ |  Q" Z! M; V# V; K, N* j
    1* F! I6 j8 y4 T+ _2 q
    2
    / M7 G" ^* I" [& I( n' p( n3
    . e( |5 A0 W' L4
    7 H  d' O: k& P& U4 c) K5
    ) _9 E8 h& }* V/ R- n; V, M6( m! _1 i. Y3 `9 h: H. c3 g
    7
    ) Y0 W; ~- h6 [8  A5 D5 c" Y8 X
    94 O' M0 Z8 u" e& U2 f; z
    10$ Y0 u, Y8 P- I, n% \- l$ [
    11
    : r" W# x- R$ B; o7 V( Y4 v其实,从这里可以看出,易明建模也是基于Python写的,但它将Python算法做了封装后,程序员就不必再理解算法的数学原理和运行细节了。4 P+ E  \- x! ?( |5 w. \6 r) ~

    ) g4 a+ ]7 U3 S6 B/ o, S! C7 w) i(c)SPL环境配置3 K8 [* x% _9 }5 o. W
    1>. 配置外部库& z' I2 C. }" j% W) ?3 p

    7 h) {9 A+ n3 q4 {: j+ a7 e1 s+ n打开SPL,在选项菜单里,外部库选择里勾选YModelCli,使其生效。外部库的路径为第(1)步骤中集算器YModelCli的安装路径。
    ( y- }9 ~; t- U# Y/ F! g: W. j) X

    - O' A. C* Z1 k7 K6 b! C
    # s# L5 ~5 S$ h) X; l在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置外部库路径和名称。
    9 R. j8 [- o6 A6 W" s: ^
    9 f# K+ o) C7 o2 T% ?) \. v! n- [5 P3 C<extLibsPath>外部库路径
    * g  X  r8 H& y# O7 W4 f; d( W7 e5 A) s+ A9 ~
    <importLibs>外部库名称(可多个)* t% X- M; c4 c' A& a" k) h

    $ F0 |, |) z# D5 O# }! R% o9 y2>. 线程数设置
    # k& W! P$ l2 m/ B1 F; R& i. y7 J4 F0 T5 e3 c
    如果有并发预测,还需要在SPL设置“最大并行数”,也就是线程数。设置多少用户根据需求和机器情况自行设定。% \! U4 v; ?( Y# [* f  A4 A* R; C

    $ U3 M* F. ^: G" \6 o. P) c0 i  p
    4 O  W& \/ \' n# e- |8 y" }0 m
    6 A+ e* ]/ N% k- A1 o, r5 W& {1 n* l在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置。
    + c' d0 F  X$ v' q) s3 o# \( p+ D/ I& Q# o, Z0 \6 ~
    <parallelNum>最大并行数' S/ a4 l  F/ Z6 |% P# d6 P4 J% G5 E

    7 ?7 ]3 _5 z, M/ h" W到此,环境配置完成。
    4 Y3 a: P7 Q6 U' h' w; \9 ^+ @5 B* N6 A6 M& S  R3 E9 ]
    3. 建模和预测
    , Z. G  j& D) f(1)加载数据0 J/ o$ P; U3 [& c6 G% v5 O, H
    SPL能支持csv,excel或数据库中的数据用于建模,这里以csv为例,其它数据源类似。" b' p1 k- g, i. a
    1 f& W1 E' H, K; I0 n- M6 x
    设有一个贷款违约数据表如下,需要建模来预测新用户是否会发生违约行为。' o* T# }, d/ B$ D9 f

    8 W; E7 e& }* U1 `4 N- [7 j  t  m  [

    2 }$ L3 \! {+ E+ E文件命名为bank-full.csv;( K2 j5 S2 a) j1 b/ z
    6 e! u$ \- n3 p, N, L! I' t0 J: y5 O
    A3 u3 x! Y0 a1 c/ j2 R
    1        =file("bank-full.csv").import@tc()
    & K3 H, l/ B4 Y8 F2        =ym_env()
    - y" Q# [; y! _# ~4 [  U3        =ym_model(A2,A1)
    6 i2 m) `9 W1 v! PA1 导入建模数据,读成序表5 k8 L# Q: e6 t9 g" Z9 Z
    % t5 ^4 o% b3 x* r; f3 T" k/ p' S

    * N; I, N; q9 f. x: N" ^! _  u6 R" s" v
    A2 初始化环境,执行A2后会在易明建模的安装目录下生成store目录及子目录用以保存数据及结果文件。
    7 S4 x- E7 l* V7 l+ S. P
      m3 i7 ]" v7 x+ lA3 加载建模文件,生成md对象
    : f( X" Q9 e5 R5 u. m7 n
    ' f; ]. n( s2 {8 v(2)目标变量设置和变量统计
    ) ~) i2 M8 z$ c" g% Z+ I数据加载进来后要设置目标变量
    0 q, l" X) V! x4 q2 P0 V" z3 X5 h, [/ @7 C$ Y7 ?/ R% I8 v3 t$ _; z
    A
    # n7 {$ b) u( w…        …6 m" O% [7 x( l9 m* [' H% c+ u
    4        =ym_target(A3,"y")
    ! Z, g) b& J8 Q" F5        =ym_statistics(A3,"age")
    $ x' ^5 I- r: M5 ~* f' `6        =A1.fname().(ym_statistics(A3,~))& u# S! Y1 Q0 }9 c' ^3 f
    A4 表示将字段“y”设置为目标变量,目标变量可以是二值变量或数值型变量。
    6 D+ v5 j. o6 ~# v" u# ~- Z( n; l4 A0 v8 l  b1 F$ a
    A5 查看某个变量的统计指标,比如 “age”,返回值中可以看到缺失率,最大最小值,异常值,数据分布图等参数。, f6 N  k, [, n

    9 |& F2 v! M, e* m: ^
    ! l0 h3 L6 d$ U8 n2 J3 x; _
    2 {. @0 m/ e  v3 T# Y" b* oA6 循环变量名查看所有字段的统计信息,返回包含所有字段的统计信息二级序列。& d- z6 ]1 I" ]; n! z+ d: r, D0 J
    8 e, u' Q- u) X  W
    ! k8 g+ R! y& R& o( m
    1 T) m" y% P. ^2 n
    (3)建立模型和模型表现  b  x' v! z6 n& y* u1 q
    A/ e  K9 |! _3 F! K& v2 ~3 b
    …        …
    8 A% y% w4 _7 R* e/ _7        =ym_build_model(A3)
    # a2 J8 P/ ?' ?8        =ym_present(A7)  Z( P4 y& Q# N5 c$ U8 _% R
    9        =ym_performance(A7)
    ; A. r& K8 c; f3 U, N2 e# ]10        =ym_importance(A7).sort@z(Importance)$ P9 L  h* T" {7 \9 E
    A7 使用建模函数建立模型,执行后在后台会进行全自动化数据预处理和建模过程,此过程会耗费一些时间,时间长短取决于数据量。结果返回pd模型对象。
    ! C9 X) m( }# ]8 O1 M$ [% R1 p) E
    * ^% t5 l- ]5 X% u模型建好后,可以调用pd模型对象查看模型信息、模型质量和重要度。
    # \: ^) i1 M. }- z" F
    # [, i, z" Z( s2 V+ n9 t, |2 OA8 返回模型AUC值及参数* ~7 i' P5 q1 ^" o9 u+ [% a. V; r* x3 P
    - r+ n8 b. I4 J; e7 w6 e
    0 o8 V# v& ]' F# A$ k" T
    / V9 M8 p2 ?' H' G: L7 Q* R$ L
    A9 返回多种模型指标和图形,诸如AUC,ROC, Lift……/ q/ J2 m5 d" \! t+ |, F

    , |& I3 }( D) f( Y# q' }
    , z; X; T4 `! ]- o
    0 l$ k% y( s9 \1 G/ q" @& U比如点击A9的第6条记录的Value,然后点击右上角“图形浏览”图标,数值字段选择“Lift”,就可以查看Lift曲线+ p$ O# h1 I5 t9 ^9 _
    # v9 L, U: _6 }! w% |8 @# @( f% Q/ M
    5 D  j: D/ d1 g* j# H( O( E& }" d% F

    5 Q4 ?7 N  H) ^* bA10 会返回每个变量对目标变量的影响程度并且按照重要度降序排列。数值越大对目标变量的影响程度越大。降序排列分析起来更加直观。6 \7 ?+ r6 a5 ?" A! Y3 E' c
      X, O$ E1 j% j0 O+ K
    $ g5 A; b! ?8 K% g% u! `3 ^
    7 L) c# }3 E% {. J! }2 k2 @
    (4)保存模型) Y# b. M; p. \, q# ~
    A
    ) v5 i) |  u8 Q9 v, W…        …; F: M5 A# ^* o
    11        =ym_save_pcf(A7,"bankfull.pcf")7 ?1 a1 d) F6 E0 N9 z: \) T3 f
    12        =ym_json(A7)% _6 U- O! V0 W
    13        >ym_close(A2)
    , w  @6 t& l* p; p# j- QA11 将模型保存为”bankfull.pcf”,默认保存路径为[sAppHome]/store/predict。
    : p5 d4 m. I. ?3 e; e* r4 I
    . X( _3 c" \" _/ EA12 将模型信息以json串形式返回。json内容详解可参考在线文档《json参数说明》% ^% f' W% O( Y* F4 U

    ; z9 L6 m' {# O6 n8 v3 l: {1 V6 S( K, P* vA13 关闭环境,释放资源。
    % o% \: p" y% L" `- X* a  m
      E6 G, l  h6 M2 X1 j. U(5)预测" f) w, q- U8 u
    预测之前需要有pcf模型文件和预测数据集
    / z3 d; x8 l  Y4 J7 @
    ) |0 ]8 H, e' F4 ]A
    3 U* Z- k9 C' {( ^1 a1        =ym_env(): i% S; M% P; p; n6 z
    2        =ym_load_pcf("bankfull.pcf")
    , G, Z0 J; Q8 w0 _, d3        =file("bank-full2.csv").import@tc()
    , _8 X" ]* k7 l4 r( D4        =ym_predict(A2,A3)+ ^* m5 l# s7 k# [9 k8 H% i5 V
    5        =ym_result(A3)9 s0 Z3 y# [; B' n
    6        =file("bank-full_result.csv").export@tc(A4)
    % R1 r. q$ [5 p8 O9 Z# [5 j7        >ym_close(A1)1 O: n+ s8 V2 e; a/ x
    A1 初始化环境
    7 _5 \+ Y/ _9 V* m) C6 L4 g( E4 W; V% W
    A2 导入pcf模型文件,生成pd模型对象。
    / @6 g$ K2 Q3 i% D: q) a* {) [0 \" o
    3 C3 u7 x  U0 `% b4 eA3 导入预测数据集,读成序表
    , g3 f, g; `% F; I, Q) ~
    : h. v) [$ l& Z% i3 }% RA4 对序表数据执行预测。除序表外,还支持游标、csv文件和mtx文件,比如A4也可以直接写成ym_predict(A2,“bankfull2.csv”)
    . \- d: t& N' j; S# n
    / L& ]3 {2 b' N+ w6 IA5 获取预测结果
    ! `' Y( a( j- ~7 Y, m0 S* U/ U0 D' l5 F! \) u
    A6 将预测结果导出,在本例中预测结果为用户发生违约行为的概率。
    ; x2 _- V' w/ }/ \+ B# y4 z  [6 U( \; Y" X" t) X- a; U3 J
    * l6 ^$ z4 q2 D5 k2 n+ U
    A7 关闭环境,释放资源1 N: |" ]! k* r  E6 G
    ; K; k) M$ e9 M/ j- g0 Y
    4. 集成调用8 z( o8 b& j0 F
    SPL还可以被上层应用集成调用,比如SPL可以嵌入到Java应用,详情请参考:http://c.raqsoft.com.cn/article/1615765346560
    1 ~/ F: Q& Q3 ~- ]! I1 _1 x
    7 G9 \* g$ ]7 T% ^8 D  }: f总结, n- [4 B7 u0 G1 O! j: Z: C
    使用SPL配合易明建模来实现数据建模预测非常简单,程序员不需要理解深奥的数学原理,只要准备好训练数据,简单几步就可以完成数据建模任务了。而且还可以轻松地把这个功能嵌入到应用程序中,高深的人工智能不再是少量数据科学家的专利。4 O" ]: y( p. c. ^

    4 C! [! u% J  U! [- G  U! XSPL本来就超强的数据处理能力,能更方便地完成人工智能算法之前的数据准备工作,同时也提供了丰富的数学函数: SPL Math 例程,有些数学基础想自己实现建模过程的同学也可以进一步研究。  Y% I: J. P6 B8 ?
    ————————————————
    5 d' c' `# x3 m2 F" u$ f( v版权声明:本文为CSDN博主「java李杨勇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    2 }0 I% F8 I5 Z& G原文链接:https://blog.csdn.net/weixin_39709134/article/details/126698462
    / q5 e) f6 u1 {2 d
    9 J& ~0 a9 ~1 ^& j4 m! E% _3 [: h5 P8 R  j, \1 a
    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-9-14 01:42 , Processed in 0.591156 second(s), 50 queries .

    回顶部