QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2075|回复: 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 也不错
    3 Y2 R$ A" v6 {& g/ f
    . x, [" {$ e3 z2 Y% Z$ [可用来做人工智能建模预测的工具非常多,比如Python, R, SAS,SPSS等,其中Python由于简单易学、丰富的数据科学库、开源免费等特点备受欢迎。但是对于不太熟悉数据建模算法的程序员来说,使用Python建模还是比较复杂,很多时候拿到数据并不清楚该做怎样的处理,选择什么样的算法。其实,在做数据分析和数据建模时,SPL也是不错的选择,它比Python更简单易用,计算速度也快,交互式的界面对数据分析十分友好,同时还提供自动数据建模功能和一些数据处理以及统计学函数,用起来也很方便。* D7 [5 ?- G! a% m6 ?

    ' k9 W( v9 l' {% i  j* ?9 |) D下面就以一份用户贷款违约预测的数据为例,使用SPL手把手的进行数据建模预测。
    ( X: A( V7 n4 Q+ L7 k. L7 U
    8 P( I2 X: ^& u" O& p1. 确定目标,准备数据1 S/ K# o+ J, u8 o5 z
    建模预测就是从历史数据中挖掘出规律,然后使用规律对未来可能发生的事情做出预测。这个规律就是一般所说的模型。% z. |1 g9 n3 p0 d/ R6 v+ |
    ; e+ c; U6 _4 Y% ^
    历史数据通常是一张我们俗称的宽表,比如在用户贷款违约预测的例子中历史数据是如下图这样的Excel表格:; o  U# o- G( `& j$ N: n
    " Z* ?0 ~5 B5 a  M0 V, H
    首先,宽表中一定要包括我们想预测的事情,通常称作预测目标,上图中的预测目标就是历史用户的违约行为,也就是图中y那一列,yes表示违约,no表示不违约。预测目标还可以是一个数值,比如产品的销量、售价……,或者是预测属于什么种类,比如预测产品质量是优、良、合格还是差。有时目标在原始数据里就有,可以直接使用,有时目标还需要人工标注。
    9 y  j) ~  o- T3 f2 K
    - |- @. p2 G, Y, K. E9 H除了预测目标外,这里还需要很多信息,如表中的用户年龄、工作,房产,贷款情况……,这里的每一列称为变量,也就是和贷款人将来是否违约可能会相关的信息,原则上能收集到的变量越多越好。例如预测客户是否会购买产品,可以搜集客户的行为信息,购物偏好,以及产品的特征信息,促销力度等;预测汽车保险理赔风险,需要保单数据,车辆信息、车主交通习惯以及历史理赔情况等等,如果是预测健康险还需要一些被保人的生活习惯,身体状况,就医看病的信息;预测商场超市的销售情况,需要历史的销售订单,客户信息,商品信息;预测不良产品,需要生产的工艺参数,环境,原料情况等数据。总之,收集到的相关信息越多,预测效果也会越好。
    * w* a& q# k( ^6 \! A- u. h$ }& W% o( z) a
    采集数据时,通常会截取某一段时期的历史数据来制作宽表,比如我们想预测7月份用户的违约情况,可以采集1-6月份的数据来训练建立模型。数据采集的时间范围并不是固定的,可以灵活操作,例如也可以是近1年或者近3个月等等。
    5 E, N4 O1 T; Q9 D: ^7 |$ Q- m2 K% @) f/ E; l' s5 T
    准备好的宽表可以是Excel格式或csv格式,第一行是标题,后面每一行都是一条历史记录。
    & X, s1 ]: e' t1 U+ A$ u
    6 C! o9 e, N+ @0 K6 I% j1 f如果企业有建设好的信息系统,那可以找IT部门要这些数据,很多企业的BI系统中可以直接导出这种数据。
    + _8 z! L! q5 e& w1 T1 }  g
    $ f6 Q( u; j+ ]0 q4 J& t2. 下载软件,配置建模外部库; |  J0 m- P; ^) r
    SPL 在易明建模外部库的配合下可以提供全自动化的建模预测功能。
    " [: a8 z/ z/ R- K! E/ Y( q. _1 s3 Y) c& [  ]  W
    (1)下载安装集算器(SPL)和易明建模软件
    1 Q/ w# C( }; q: H. `6 f3 b集算器下载:
    ; q: Z# C) ]' H3 z+ }" r/ b( R“http://c.raqsoft.com.cn/article/1595816810031”
    " G7 q- x# ?9 A7 p4 E
    + X6 q" E5 l4 D5 T易明建模下载: “http://www.raqsoft.com.cn/download/download-ymodel”9 t4 }7 E/ `  ~
    9 h  p& D# d6 T, G
    安装集算器和建模软件,并记录安装目录,比如:C:\Program Files\raqsoft\ymodel
    * d& ~0 y6 s- ~- ?, r0 ^" M& {) \# R& `$ g6 O5 d6 b
    & `8 G/ {0 D: I$ q2 x4 Y

    0 J+ l' `3 L4 O" y% T8 ]/ f6 S. E(2)在SPL中配置外部库
    $ V8 d7 O" F6 P( z! J0 n: S! N(a)复制外部库所需要的文件6 a# T- A# M: W  w( m
    在易明建模的安装目录下找 YModelCil 和 lib 文件夹. o/ e% |! S8 w' l

    7 b. T7 R' j8 `$ ]/ z7 m
    , Q: A' C5 ^3 S! D' P
    3 A  V( a" W9 F9 V然后去这两个文件夹里找到建模外部库所需要的文件,复制到集算器目录(【安装根目录】\esProc\extlib\YModelCil),比如C:\Program Files\raqsoft\esProc\extlib\YModelCli。
    8 ]8 n/ [. H; X: I! s1 D9 R* z* V/ y4 L) @1 |) f: j1 A6 k
    建模外部库所需的文件有:" m, N- i9 K  O

    ) K" ~* z  D5 m, m& T9 J# q. @, ]& t6 O" ]! k1>易明建模目录的YModelCil中含有以下jar和xml& q$ r' e5 I6 f$ E9 g! U0 A

    0 c# X! Y+ k: J  V! i8 zant-1.8.2.jar0 y5 o. p; t& U; G
    commons-beanutils.jar
    5 h% U& s1 x* h0 \: E# e- lcommons-lang-2.6.jar
    # s5 @$ O% N' O% ]ezmorph-1.0.2.jar# D+ U6 L2 l& r+ O' u2 V: ^! U+ Z
    json-lib-1.1-jdk13.jar: P8 g5 q+ }# q
    raq-ymodel-cli-2.10.jar
    ( I5 d7 V! j8 G! Luserconfig.xml
    0 t2 t3 c/ c- u, A7 q+ A; s7 E/ r; O, E( Z: w3 m
    2>易明建模的lib中含有以下jar) E6 h. c/ Q2 P; D. S* V# [
    ' r* J  l5 N! c* J; ^, M
    commons-io-2.4.jar
    2 ~+ I6 N9 O% d0 Jesproc-ext-20211104.jar6 b# _/ r$ @1 b2 z, s! f
    fastjson-1.2.58.jar
    0 x& u+ W1 Y. \, M+ d5 t7 }gson-2.8.0.jar4 W% a, w/ _* o$ U+ o4 f* A$ `' x. [
    jackson-annotations-2.9.6.jar) G2 {$ p4 ^4 z2 L
    jackson-core-2.9.6.jar! J) R& n6 h# D
    jackson-databind-2.9.6.jar8 g( y4 D; q7 E; A3 n  x% i
    jackson-databind-2.9.6-sources.jar8 U4 N& s+ v9 @: j  D/ [
    jackson-dataformat-msgpack-0.8.14.jar
    . F% q7 g8 @, x9 {, O" dmining.jar( ?/ S" P1 v4 g
    msgpack-0.6.12.jar
    / B1 H' k2 O* }0 _6 Y# j; _7 wmsgpack-core-0.8.16.jar+ n& L# D- q4 s# s& F2 f
    ! W1 X$ _* B, a# F9 X% V4 F
    (b)设置userconfig.xml文件参数9 M* |1 _# l4 ?# [% G" b. ~/ J
    在集算器目录esProc\extlib\YModelCil下的userconfig.xml文件中设置参数
    / V' Y0 {+ J; l6 U% @* Y
    % S" y' z  O3 Y% ?' X4 w1 _2 D3 W名称        参数说明5 M1 p! G+ }, T
    sAppHome        易明建模的安装目录
    * ?& Z% K) `( j! d# j) c8 [. zsPythonHome        易明建模目录的Python路径 Windows: raqsoft\ymodel\Python37 Linux: raqsoft/ymodel/Python37/bin/python3.7
    + \; R4 C$ h2 J8 J& }7 OiPythonServerPort        Python服务网络端口
    6 Q! q1 X2 l% w+ G4 k# aiPythonProcessNumber        Python进程数
    ! Q6 P5 ^0 Y! c$ u) D* g# JbAutoDecideImpute        是否智能补缺
    : m4 C/ ^7 G) i" |; `8 ~iResampleMultiple        重抽样次数1 g# l+ _4 t7 I- F) l, s$ h) T
    其中必须要配置的参数为sAppHome和sPythonHome,其他参数可以采用默认值,有需要再进行修改。比如可以配置参数如下,加粗部分是必须要配置的,根据自己的安装路径。( q+ L! L2 m, s0 G' |/ D
    9 Q% }* A9 m1 o; {) Q: T1 [
    <?xml version="1.0" encoding="UTF-8"?>/ N( H. ~: m; l7 C
    <Config Version="1">
    ) R$ \* `4 l% o. i0 h" A4 Q    <Options>* {/ j# w2 n7 X5 o! Q) P- w
            <Option Name="sAppHome" Value="C:\Program Files\raqsoft\ymodel"/>% o( F& x6 z8 V
                    <Option Name="sPythonHome" Value="C:\Program Files\raqsoft\ymodel\Python37\python.exe"/>( G5 ~1 N. x% b. g0 b* I( f# k
                    <Option Name="iPythonServerPort" Value="8510"/>
    + V0 V( b( I& K6 k$ Y3 d, P* g4 W" v% M                <Option Name="iPythonProcessNumber" Value="2"/>
    5 t7 H- V) t- c4 I* C              <Option Name="bAutoDecideImpute" Value="true"/>
    5 _4 S- e3 c) X4 ^! k' X                <Option Name="iResampleMultiple" Value="150"/>                                - c. B& b" o! t3 U, _7 I9 W
        </Options>
    ! f. v' B9 J7 R3 K</Config>
    % J2 W. |& D" \4 B1' K! O2 t' i$ c( x% Z
    2
    & p3 z, v- `6 ~3
    ; d2 {% C, q) }3 M" n: G% U40 E! H% F" h# R2 m$ R+ M. a
    59 e9 L) i, W/ }0 P, B  O+ H0 v' w
    6
    # O1 {  w4 I+ d. L3 _, U7; U/ c6 n8 Q4 ?: [) s8 L2 y
    8
    ; X5 ]6 X- ^" K* m% b* {* }* A9
    . e3 L; ^$ J; R+ J% C4 u107 `3 Q* B6 i4 F% W
    11. ~* n" ?% R- ~0 r( |4 `1 h+ [
    其实,从这里可以看出,易明建模也是基于Python写的,但它将Python算法做了封装后,程序员就不必再理解算法的数学原理和运行细节了。
    ( b( m9 a& t: O! X3 Q  x7 r! C0 [- I- Z$ s7 i0 E( o
    (c)SPL环境配置8 {9 N5 J! M! ^) e
    1>. 配置外部库
    1 n! i) i0 U7 X; ]
      F& E5 u* l! _9 l1 x' u* [% l8 {打开SPL,在选项菜单里,外部库选择里勾选YModelCli,使其生效。外部库的路径为第(1)步骤中集算器YModelCli的安装路径。
    5 J+ V2 Q* w& I1 l8 V; D4 @9 B9 h0 t( I( ~

    ) L# V* z- n. V" r+ ?
    ( [. H# y2 y6 z# H! E' f在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置外部库路径和名称。- Q% O0 h) R1 e, Y
    9 ?; P  L) _' t
    <extLibsPath>外部库路径! n, l, [+ M8 q9 a7 B) V. [

    . y' U! q3 L( ?6 z! |8 Y5 W' C! t<importLibs>外部库名称(可多个)5 K) Y0 ~" `; G& @8 \
    / |/ u8 A+ B+ f% {1 ]
    2>. 线程数设置9 E- B, ]- `2 _( D; G, n
    & j* [8 a$ p; b% l7 K$ U
    如果有并发预测,还需要在SPL设置“最大并行数”,也就是线程数。设置多少用户根据需求和机器情况自行设定。! B% u0 {% L3 b9 w  Z/ f4 S9 `$ E

    % w, C) \0 h. W' f/ |% ^/ _5 K; \) M, j. l! r

    4 u: H1 ]6 M$ @7 X5 n在无图形界面的服务器中去集算器的安装目录下esProc\config\raqsoftConfig.xml文件中进行配置。
    ' G1 c/ ^7 ^. P' [7 ^2 ?3 z+ c
    9 e* w4 J7 ?, j0 k$ U' O/ k<parallelNum>最大并行数0 L$ [* d8 n' k9 k9 _) V7 _
    , M) ~' g7 e: I5 d
    到此,环境配置完成。& i+ Q7 i1 {# r# a3 u/ D7 j! b- n

    & I2 V1 C6 \" |. j& }, m' `3. 建模和预测2 M& a2 |8 U+ Q& W/ i' F' H
    (1)加载数据3 I2 F8 p5 X, |1 T3 b7 }1 x/ R( e
    SPL能支持csv,excel或数据库中的数据用于建模,这里以csv为例,其它数据源类似。/ M8 {7 E7 Q1 g- w* L1 k( Y
    - w6 m# M' f1 t
    设有一个贷款违约数据表如下,需要建模来预测新用户是否会发生违约行为。! N1 \0 J" w; l" `/ N

    2 G% X7 G$ O  e3 a& b6 Q
    * v1 q+ q8 p0 \; A" r4 p
    % w, w1 v& e2 H" h: @: a) @' D4 T( f- m文件命名为bank-full.csv;
    # |) ~9 H7 d+ r* s- A' I) ]% T& A
    ; g3 f# w( I# C' d1 V* WA
    + R  O$ _: _; p" ?" e2 L2 \5 A1        =file("bank-full.csv").import@tc(): u# y2 q; J; x( u, q+ h
    2        =ym_env(): x1 K6 u* K2 P8 h! ]8 J4 Z' j
    3        =ym_model(A2,A1)
    : e' m9 V7 F' i( _. B; UA1 导入建模数据,读成序表% B3 Y9 v- D" H! X7 r

    4 D6 M" [3 }; g0 @9 `4 W' K5 y+ \$ y: i

    9 d3 m; ]9 z  O! gA2 初始化环境,执行A2后会在易明建模的安装目录下生成store目录及子目录用以保存数据及结果文件。. o: f4 c+ y; L) v( T9 C

    % b2 g  O2 q/ ^4 v, AA3 加载建模文件,生成md对象
    ) y1 N  H" ]. i5 ]1 E8 _1 w$ a& k; O7 R2 Y
    (2)目标变量设置和变量统计5 y* x+ ]) |. @) g! L# R2 B" s4 V; U
    数据加载进来后要设置目标变量
    4 @1 v4 P- M% z' m& c% Z8 m7 H) x4 V3 J1 S
    A
    : r. x/ ?( I' \& `; u7 b( a& m0 B…        …/ x) j8 Y2 f/ E3 }8 Z+ g
    4        =ym_target(A3,"y")) B: m- C  ~; ~% N, y
    5        =ym_statistics(A3,"age")
    " U3 J8 c* d3 n6        =A1.fname().(ym_statistics(A3,~))
    $ ^+ P( P: S' e0 O$ }A4 表示将字段“y”设置为目标变量,目标变量可以是二值变量或数值型变量。) z# U8 [9 t! m- I

    ) T& d- p0 P* p& rA5 查看某个变量的统计指标,比如 “age”,返回值中可以看到缺失率,最大最小值,异常值,数据分布图等参数。# G* G  U+ v9 G# Q4 C, ?

      d' H1 T4 [/ w$ x, r5 _) p2 {' E7 W$ U  ?* h! c
    ) I( U3 S( j' @& f. Z
    A6 循环变量名查看所有字段的统计信息,返回包含所有字段的统计信息二级序列。
    8 H; Z) F& ]/ O5 G8 I9 x$ O# }2 H0 `# R2 \# b! \! j8 N
    0 h+ @* F# `4 K, ~: e) ~
    9 S: p1 R2 A! g& [* ?
    (3)建立模型和模型表现8 G; ^( q$ ?5 [1 `! U
    A
    ) ?! U) ^: U1 w) Q3 @…        …: t7 N/ w/ ^3 \  m. H6 z$ A2 G
    7        =ym_build_model(A3)
    % k  ^$ q" M& K  a$ ~8 ?8        =ym_present(A7)
    ! ]1 v$ k0 Z, n$ X: }2 u4 ]9        =ym_performance(A7)" {! m7 D. d& X$ O+ U* n
    10        =ym_importance(A7).sort@z(Importance), ~* L5 M) H1 M5 ?3 H' d' H) F
    A7 使用建模函数建立模型,执行后在后台会进行全自动化数据预处理和建模过程,此过程会耗费一些时间,时间长短取决于数据量。结果返回pd模型对象。
    / I0 c% I* h, c. v( f5 {) u4 p3 v; v6 E; H  }
    模型建好后,可以调用pd模型对象查看模型信息、模型质量和重要度。
    : b& \& ]5 F  V  t$ M$ N8 P0 @# `" c
    A8 返回模型AUC值及参数4 P9 G- y6 W$ Y

    , T5 X5 X) R1 N
    ! J% J. m8 T6 ~3 J, f7 X% k+ t2 n  T. A; @
    A9 返回多种模型指标和图形,诸如AUC,ROC, Lift……  C0 d- U3 q+ U6 B, s7 a
    . v. K, y- o6 H% i6 Y' p

    5 ~: p6 `2 S/ I& t7 r6 B$ e% C7 l3 Q' Z" r. o  |% Y, u4 a, s
    比如点击A9的第6条记录的Value,然后点击右上角“图形浏览”图标,数值字段选择“Lift”,就可以查看Lift曲线! r) J6 Y2 `+ Q* P+ K% V. J4 |& ?, u6 c

    " E: {% y9 D/ T" P
    1 H4 ~; p! d9 Z4 V0 O! ~: O0 l7 f6 J+ }3 A
    A10 会返回每个变量对目标变量的影响程度并且按照重要度降序排列。数值越大对目标变量的影响程度越大。降序排列分析起来更加直观。7 N6 c  N* O5 ?8 }

    : e/ G4 s" ~% p) i# _
    5 {  {9 G9 G/ o: y8 u+ o
    8 i0 X, a. z3 `8 ^( i3 H(4)保存模型( N" Z2 z) h6 @! l
    A
    . h+ X/ \3 m0 I! R, s- L…        …
    2 q& s, o  c: L' L; w. M11        =ym_save_pcf(A7,"bankfull.pcf")
    + M  o1 i& W, `7 `; [12        =ym_json(A7)
    7 |5 y/ ~2 F9 D13        >ym_close(A2)% p. H3 p" k- o% G' k7 T7 x: j
    A11 将模型保存为”bankfull.pcf”,默认保存路径为[sAppHome]/store/predict。4 W# z3 v1 _) N/ X
    * r% Q8 U9 q1 |- Q: r( ~
    A12 将模型信息以json串形式返回。json内容详解可参考在线文档《json参数说明》4 n% g6 F  K4 t* b

    1 r9 R! P- @/ \" EA13 关闭环境,释放资源。
    & o. g3 O0 m4 u' W) C  f
    : x4 @4 c7 J% @- ^, Q(5)预测0 A8 m3 T+ z8 r7 V2 U4 i4 |! t) m
    预测之前需要有pcf模型文件和预测数据集
    7 n+ ~3 A8 x* v: h" e: e0 @5 ~. @9 ?: K4 S3 @5 ]$ q; q( i7 K
    A7 r4 ^. `( X3 s% _. e! h0 R
    1        =ym_env()
    # y& n- E' h8 K4 F' X& m; {' J- J2        =ym_load_pcf("bankfull.pcf")- ]" P' e) \* J- W5 _/ D3 x
    3        =file("bank-full2.csv").import@tc(): D4 _- [+ u' K1 W9 W" V7 D
    4        =ym_predict(A2,A3)/ [& F/ }; i* B. B
    5        =ym_result(A3)( U' s2 v" O6 R5 `7 l1 C) v" G
    6        =file("bank-full_result.csv").export@tc(A4)3 g/ b/ l# G# ]* z. Q0 }
    7        >ym_close(A1)5 f' R7 P/ W" r* J- A# W* W1 m
    A1 初始化环境
    # s* ^( _7 M. f7 Z; G! s1 k  Y3 z0 l2 S% g
    A2 导入pcf模型文件,生成pd模型对象。
    0 z; u3 d* ?  h8 F( b1 ]3 p; g/ U1 v# `  _: a4 x
    A3 导入预测数据集,读成序表6 L& t0 y: O$ W0 \
    2 f! |# r8 J+ R& L- D% F8 M
    A4 对序表数据执行预测。除序表外,还支持游标、csv文件和mtx文件,比如A4也可以直接写成ym_predict(A2,“bankfull2.csv”); j. c' V/ k& h) i
    ) C, I: l1 q1 A" i8 j
    A5 获取预测结果
    + [" Y; N8 M% H; I2 q$ t. X
    . e+ _/ O8 V9 J! W: {A6 将预测结果导出,在本例中预测结果为用户发生违约行为的概率。
    8 o+ [' e3 `" [# D: ]3 n$ z$ A, k& Q1 a4 o- I# N% {
    ; N( s( L: E* w. O4 v
    A7 关闭环境,释放资源$ G. U) O9 I) S1 y9 I# i1 u/ i
    ( d7 f8 P/ k; H+ J$ T
    4. 集成调用
    , m, H# Z1 T2 q! f  RSPL还可以被上层应用集成调用,比如SPL可以嵌入到Java应用,详情请参考:http://c.raqsoft.com.cn/article/1615765346560
    # `3 Y  F$ d) |/ U. J( P0 U7 |4 i) D9 n. o- R
    总结$ M, j; C8 L% T4 p, J8 B
    使用SPL配合易明建模来实现数据建模预测非常简单,程序员不需要理解深奥的数学原理,只要准备好训练数据,简单几步就可以完成数据建模任务了。而且还可以轻松地把这个功能嵌入到应用程序中,高深的人工智能不再是少量数据科学家的专利。8 D9 V* h2 y, j( ^

    ) Q) j. `* o" i' w. S/ b( jSPL本来就超强的数据处理能力,能更方便地完成人工智能算法之前的数据准备工作,同时也提供了丰富的数学函数: SPL Math 例程,有些数学基础想自己实现建模过程的同学也可以进一步研究。
    / h5 b2 P# }+ H8 s1 t. K2 }————————————————
    . U& G. _# m' h. W* ~' ?4 L1 m版权声明:本文为CSDN博主「java李杨勇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。. q8 w: U0 A# ]
    原文链接:https://blog.csdn.net/weixin_39709134/article/details/126698462" i5 F3 J0 q: S3 W3 k& ^

    4 L5 U2 F4 \( P, ?4 Z$ L% q2 a. Z- O, k" i6 g
    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-7-31 10:14 , Processed in 0.369736 second(s), 51 queries .

    回顶部