天池精准医疗大赛——人工智能辅助糖尿病遗传风险预测

一直想做一个天池大数据方面的比赛,以前一直没时间,正逢糖尿病风险预测比赛,阿里举办的,课题比较喜欢,哈哈

进入天池大数据竞赛中心,就可以看到相关信息以及数据,下载下来即可对其作分析。

打开其中的train列表,我们可以发现,每一个病例都有41个特征,外加“”血糖“”预测,如下图所示:

特征工程:
接下来对表格中的数据进行分析下,看看是不是有什么缺省值,数据不足的地方

数据总览:

import numpy as np
import pandas as pd
# 数据路径
data_path = 'E:\The_most_powerful_laboratory\Tianchi_bigData\AI_diabetes_prediction\The_program_and_Result\Tianchi_data\\'
# 选用pandas导入训练集,测试集
df_train = pd.read_csv(data_path+'d_train_20180102.csv')
df_test_A = pd.read_csv(data_path+'d_test_A_20180102.csv')
df_test_B = pd.read_csv(data_path+'d_test_B_20180128.csv')
df_test_A_answer = pd.read_csv(data_path+'d_answer_a_20180128.csv',header=-1)

id 性别 年龄 体检日期 天门冬氨酸氨基转换酶 丙氨酸氨基转换酶 *碱性磷酸酶 *r-谷氨酰基转换酶 \
0 1 男 41 12/10/2017 24.96 23.10 99.59 20.23
1 2 男 41 19/10/2017 24.57 36.25 67.21 79.00
2 3 男 46 26/10/2017 20.82 15.23 63.69 38.17
3 4 女 22 25/10/2017 14.99 10.59 74.08 20.22
4 5 女 48 26/10/2017 20.07 14.78 75.79 22.72
5 6 女 74 18/10/2017 23.72 22.59 81.23 23.35
6 7 男 31 21/09/2017 24.97 25.53 109.03 65.42
7 8 男 55 21/09/2017 37.32 40.03 88.49 25.15
8 9 男 39 16/10/2017 21.70 39.17 102.91 67.09
9 10 女 35 10/10/2017 18.89 15.79 78.21 25.75
10 11 男 47 13/10/2017 27.33 35.76 80.26 84.97
11 12 男 50 10/10/2017 22.89 28.46 77.54 48.16
12 13 女 48 19/10/2017 30.11 34.70 92.67 16.39
13 14 女 36 11/10/2017 16.82 11.80 67.79 13.16
14 15 女 37 27/09/2017 24.58 24.64 96.43 27.79
15 16 女 43 28/09/2017 20.07 14.81 72.11 33.98
16 17 男 77 24/10/2017 18.49 17.29 104.91 41.33
17 18 男 42 16/10/2017 24.71 30.26 95.70 37.97
18 19 男 39 30/10/2017 31.44 43.97 92.58 35.84
19 20 男 38 28/09/2017 23.58 31.19 102.16 44.01
20 21 男 30 29/09/2017 33.25 67.19 82.22 59.91
21 22 男 51 26/10/2017 26.53 20.44 67.03 25.84
22 23 女 38 19/10/2017 24.13 34.02 77.32 18.78
23 24 女 33 30/09/2017 15.77 11.43 95.86 20.45
24 25 女 28 20/10/2017 20.24 12.55 61.90 7.99
25 26 女 34 30/10/2017 20.89 16.16 102.40 14.69
26 27 男 34 30/10/2017 32.03 52.74 102.73 34.53
27 28 男 38 31/10/2017 34.62 54.43 119.68 51.14
28 29 男 60 24/10/2017 28.36 32.30 64.43 30.76
29 30 男 55 17/10/2017 29.60 34.07 99.96 41.95
… .. .. … … … … …
5612 5702 女 35 10/10/2017 16.88 12.60 78.18 24.35
5613 5703 女 50 10/10/2017 NaN NaN NaN NaN
5614 5705 女 29 10/10/2017 NaN NaN NaN NaN
5615 5706 男 38 10/10/2017 40.69 58.04 89.89 41.94
5616 5707 女 35 10/10/2017 15.74 11.71 71.85 15.52
5617 5708 男 33 10/10/2017 41.57 59.92 92.58 49.45
5618 5709 男 30 10/10/2017 17.13 21.95 82.48 40.98
5619 5710 女 66 10/10/2017 22.87 15.43 118.00 14.62
5620 5711 男 38 10/10/2017 29.46 48.27 79.34 80.79
5621 5712 男 45 10/10/2017 17.99 18.75 114.87 18.60
5622 5713 女 36 10/10/2017 26.21 28.14 57.07 33.75
5623 5714 男 35 10/10/2017 22.22 27.43 87.09 27.03
5624 5715 女 50 10/10/2017 29.68 19.82 77.52 11.96
5625 5716 女 38 10/10/2017 20.52 14.13 66.78 15.26
5626 5717 女 41 10/10/2017 16.75 9.77 65.03 10.86
5627 5718 女 50 10/10/2017 20.36 25.00 118.56 38.07
5628 5719 男 40 10/10/2017 45.84 38.42 80.96 123.39
5629 5720 女 30 10/10/2017 23.38 27.63 58.79 6.95
5630 5721 女 42 10/10/2017 18.59 19.43 68.40 16.63
5631 5722 女 36 10/10/2017 22.08 4.62 51.76 16.76
5632 5723 男 27 10/10/2017 61.34 160.58 88.69 27.16
5633 5724 女 58 10/10/2017 29.09 26.26 90.07 17.65
5634 5725 男 60 10/10/2017 31.06 24.52 80.09 26.18
5635 5726 男 41 10/10/2017 20.92 18.63 67.25 53.71
5636 5727 男 34 10/10/2017 28.72 36.22 36.09 26.72
5637 5728 女 47 10/10/2017 18.82 14.56 54.02 14.75
5638 5729 女 31 10/10/2017 21.08 13.07 76.03 13.80
5639 5730 女 80 10/10/2017 22.95 21.51 106.37 32.88
5640 5731 女 55 10/10/2017 33.54 24.94 97.60 19.16
5641 5732 女 30 10/10/2017 21.37 20.77 52.54 26.94

   *总蛋白    白蛋白  ...    血小板计数  血小板平均体积  血小板体积分布宽度  血小板比积  中性粒细胞%  淋巴细胞%  \

0 76.88 49.60 … 166.0 9.9 17.4 0.164 54.1 34.2
1 79.43 47.76 … 277.0 9.2 10.3 0.260 52.0 36.7
2 86.23 48.00 … 241.0 8.3 16.6 0.199 48.1 40.3
3 70.98 44.02 … 252.0 10.3 10.8 0.260 41.7 46.5
4 78.05 41.83 … 316.0 11.1 14.0 0.350 56.6 33.1
5 76.46 45.85 … 249.0 8.5 17.0 0.211 42.9 47.0
6 80.82 46.40 … 246.0 10.8 13.3 0.270 52.9 32.0
7 74.17 41.63 … 282.0 10.5 13.0 0.300 52.8 36.9
8 76.12 49.31 … 275.0 9.8 11.4 0.270 53.1 35.9
9 75.94 46.64 … 247.0 10.7 12.6 0.270 65.6 27.3
10 75.84 43.71 … 178.0 10.8 13.5 0.190 54.0 35.7
11 73.80 48.32 … 259.0 10.3 12.0 0.270 57.8 33.1
12 77.86 43.05 … 223.0 12.4 17.2 0.280 38.8 48.5
13 76.84 47.56 … 330.0 9.2 9.9 0.300 72.5 20.5
14 92.31 46.98 … 344.0 11.9 15.5 0.410 57.5 33.4
15 74.43 44.49 … 424.0 10.7 12.7 0.450 64.9 28.5
16 76.02 42.39 … 303.0 9.9 11.5 0.300 73.0 17.5
17 81.87 43.85 … 263.0 11.4 16.1 0.300 55.0 35.8
18 79.74 46.49 … 274.0 11.2 13.4 0.310 61.5 28.2
19 81.50 51.16 … 193.0 11.2 13.6 0.220 54.4 36.8
20 82.80 49.32 … 256.0 11.6 16.2 0.300 58.4 33.7
21 75.70 48.68 … 166.0 9.9 17.2 0.164 58.2 33.9
22 76.12 44.87 … 571.0 10.1 10.1 0.580 55.9 27.6
23 83.11 47.37 … 196.0 11.5 14.2 0.230 45.8 47.4
24 76.97 47.89 … 206.0 10.4 11.5 0.210 49.0 44.1
25 77.07 43.72 … 293.0 11.8 15.4 0.350 55.4 39.2
26 79.11 50.40 … 264.0 9.4 10.0 0.250 56.1 35.4
27 78.47 49.26 … 223.0 11.1 15.1 0.250 55.1 33.1
28 71.38 43.21 … 201.0 10.5 11.4 0.210 54.2 35.8
29 82.33 45.49 … 260.0 11.1 13.5 0.290 55.7 30.1
… … … … … … … … …
5612 79.14 46.91 … 329.0 9.9 11.7 0.330 59.6 30.7
5613 NaN NaN … 261.0 11.5 13.7 0.300 50.7 39.6
5614 NaN NaN … 279.0 10.5 11.9 0.290 62.9 30.3
5615 76.02 46.37 … 293.0 11.3 15.2 0.330 50.4 37.1
5616 80.56 46.81 … 319.0 9.5 10.6 0.300 70.6 22.1
5617 85.35 50.51 … 283.0 10.0 11.8 0.280 54.3 36.1
5618 79.63 48.26 … 300.0 10.6 13.9 0.320 46.8 31.3
5619 74.49 42.25 … 254.0 11.7 14.6 0.300 71.1 21.5
5620 72.87 47.46 … 225.0 9.8 12.2 0.220 53.5 33.8
5621 74.89 45.32 … 183.0 11.1 14.8 0.200 51.4 39.5
5622 75.40 45.74 … 200.0 11.6 14.4 0.230 65.2 27.9
5623 79.83 49.72 … 254.0 9.5 10.2 0.240 59.0 30.6
5624 80.54 45.98 … 379.0 11.3 16.4 0.430 53.0 37.1
5625 81.55 46.94 … 344.0 10.0 11.5 0.340 52.8 23.9
5626 68.42 42.54 … 295.0 10.4 11.8 0.310 70.2 22.2
5627 79.70 48.24 … 289.0 11.4 14.5 0.330 59.3 29.1
5628 84.03 49.40 … 162.0 11.7 16.0 0.190 57.1 28.5
5629 76.54 44.48 … 255.0 10.6 12.2 0.270 55.6 37.7
5630 70.17 42.34 … 240.0 9.4 9.4 0.220 73.0 20.3
5631 78.62 45.23 … 226.0 10.4 11.9 0.240 57.7 35.5
5632 76.65 48.27 … 234.0 10.4 12.0 0.240 67.5 25.3
5633 75.50 39.84 … 225.0 10.2 12.1 0.230 49.9 39.9
5634 72.44 45.90 … 248.0 10.6 12.3 0.260 57.6 33.7
5635 82.12 44.65 … 276.0 11.7 14.8 0.320 35.3 56.8
5636 69.07 46.54 … 225.0 11.2 13.3 0.250 58.2 31.5
5637 77.44 44.27 … 200.0 10.6 12.0 0.210 48.8 43.3
5638 80.72 47.21 … 210.0 11.1 13.7 0.230 60.6 31.3
5639 75.29 40.43 … 323.0 10.4 12.6 0.340 61.1 30.1
5640 78.50 43.10 … 220.0 12.2 16.3 0.270 55.0 36.9
5641 79.86 49.25 … 367.0 9.9 10.8 0.360 58.5 31.2

  单核细胞%  嗜酸细胞%  嗜碱细胞%     血糖

0 6.5 4.7 0.6 6.06
1 5.8 4.7 0.8 5.39
2 7.7 3.2 0.8 5.59
3 6.7 4.6 0.5 4.30
4 9.1 0.6 0.6 5.42
5 7.1 2.1 1.0 5.97
6 11.3 3.1 0.7 5.11
7 6.6 2.8 0.9 5.94
8 7.3 3.3 0.4 5.66
9 5.4 1.0 0.7 5.48
10 8.1 1.3 0.9 4.44
11 7.5 1.2 0.4 5.48
12 7.2 4.2 1.3 5.32
13 6.1 0.6 0.3 5.08
14 6.8 1.5 0.8 4.63
15 5.0 1.1 0.5 4.92
16 7.2 1.9 0.4 7.08
17 8.0 1.0 0.2 4.66
18 6.0 3.5 0.8 6.58
19 7.1 1.3 0.4 4.29
20 5.3 2.0 0.6 4.55
21 5.2 2.4 0.3 5.16
22 11.5 4.3 0.7 5.13
23 5.3 1.1 0.4 4.37
24 5.5 0.8 0.6 5.17
25 4.5 0.3 0.6 4.64
26 6.8 1.1 0.6 5.82
27 9.1 1.9 0.8 6.29
28 7.5 1.7 0.8 5.10
29 10.4 2.6 1.2 5.41
… … … …
5612 7.8 1.2 0.7 5.32
5613 7.6 1.6 0.5 5.63
5614 5.2 1.1 0.5 4.84
5615 8.9 2.5 1.1 5.44
5616 5.9 1.0 0.4 4.79
5617 6.5 2.5 0.6 4.82
5618 6.0 15.1 0.8 5.25
5619 5.6 1.1 0.7 4.71
5620 8.8 2.8 1.1 6.64
5621 8.3 0.5 0.3 5.56
5622 5.7 0.5 0.7 5.07
5623 8.5 1.3 0.6 5.60
5624 8.5 0.5 0.9 5.32
5625 3.8 18.4 1.1 5.40
5626 5.5 1.2 0.9 5.39
5627 9.0 2.2 0.4 17.43
5628 6.6 7.2 0.6 5.52
5629 4.8 1.4 0.5 5.29
5630 5.7 0.9 0.1 5.43
5631 5.3 0.9 0.6 5.58
5632 6.1 0.8 0.3 5.18
5633 4.8 4.8 0.6 5.25
5634 7.4 1.0 0.3 5.15
5635 5.7 1.7 0.5 6.01
5636 7.2 2.7 0.4 5.11
5637 6.5 0.7 0.7 5.45
5638 5.5 1.6 1.0 5.13
5639 6.0 2.2 0.6 5.24
5640 6.8 0.7 0.6 6.37
5641 5.8 3.7 0.8 6.00

其他数据也可以查看,发现,数据之中存在空数据,除此之外,还存在字符类型的数据,如性别特征中的男女,这不利于做数据分析以及后续的预测,所以,第一步对数据进行处理

print( "\n为 LightGBM 进行 数据处理工作······" )
def make_feature_lightgbm(train,test):"""将train 和 test中的id列的值给复制出来,赋值给 train_id,test_id"""train_id = train.id.values.copy()test_id = test.id.values.copy()"""将train 和test 两个dataframe进行拼接起来"""data = pd.concat([train,test])"""将原始数据中的性别“男”替换为0,“女” 替换为1,缺失替换为0,数据文件在“dataset”文件夹下"""data['性别'] = data['性别'].map({'男':1,'女':0})"""将日期转换为 天数,方便后续计算,或者是删除 """data['体检日期'] = (pd.to_datetime(data['体检日期']) - parse('2016-10-09')).dt.days  """按列提取均值,并填入NAN位置,inplace=True表示不显示处理结果,False为显示处理结果"""data.fillna(data.median(axis=0),inplace=True)"""改变格式,float64-->> float32"""for c, dtype in zip(data.columns, data.dtypes):if dtype == np.float64:data[c] = data[c].astype(np.float32)"""上面的操作都是为了对数据进行处理,之前合并数据是为了简化操作重新切割 data,分为 训练特征和测试特征"""train_feat = data[data.id.isin(train_id)]test_feat = data[data.id.isin(test_id)]return train_feat,test_featdf_train,df_test= make_feature_lightgbm(train,test)

通过上述代码片,可以得出训练集和测试集

import lightgbm as lgb
"""将训练数据中的id 和 血糖 两列删除掉,赋值给 x_train"""
x_train = df_train.drop(['id', '血糖'], axis=1)
"""y_train 训练标签"""
y_train = df_train['血糖'].values  # array([6.06, 5.39, 5.59, ..., 5.24, 6.37, 6.  ], dtype=float32)
#print(x_train.shape, y_train.shape)  #(5642, 40) (5642,)
"""列出表格中的所有标题栏"""
train_columns = x_train.columns
"""x_train.dtypes=float32x_train.dtypes == object   false下面这个循环只是用来检查是否存在columns中存在非object的名称
"""
for c in x_train.dtypes[x_train.dtypes == object].index.values:x_train[c] = (x_train[c] == True)
"""Python垃圾回收机制:gc模块  解决内存泄露问题"""
#del df_train; gc.collect()
"""change x_train 的type 由 DataFrame 变为 float32 """
x_train = x_train.values.astype(np.float32, copy=False)
"""将数据集导入lgb函数当中,包括训练数据,以及对应的标签"""
d_train = lgb.Dataset(x_train, label=y_train)

这里选用了GBDT、XGBoost、LightGBM三种,提升方法,是将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好,具体可以去官方文档看

将数据导入lgb函数中后,设置lgb相关参数

params = {}
params['max_bin'] = 10
params['learning_rate'] = 0.0021 # shrinkage_rate
params['boosting_type'] = 'gbdt'
params['objective'] = 'regression'
params['metric'] = 'mse'          # or 'mae'
params['sub_feature'] = 0.345    # feature_fraction (small values => use very different submodels)
params['bagging_fraction'] = 0.85 # sub_row
params['bagging_freq'] = 40
params['num_leaves'] = 512        # num_leaf
params['min_data'] = 500         # min_data_in_leaf
params['min_hessian'] = 0.05     # min_sum_hessian_in_leaf
params['verbose'] = 0
params['feature_fraction_seed'] = 2
params['bagging_seed'] = 3"""np.random.seed(0)的作用:作用:使得随机数据可预测"""
np.random.seed(0)
random.seed(0)
print("\nFitting LightGBM model ...")clf = lgb.train(params, d_train, 1000)

使用lgb进行训练之后,得到clf训练模型,这时可以对模型进行检测

"""内存泄露,垃圾回收"""
#del d_train; gc.collect()
#del x_train; gc.collect()print("\n准备基于LightGBM的预测 ...")
print("  准备测试数据 x_test...")
x_test = df_test.drop(['id','血糖'], axis=1)
print("\n开始进行 LightGBM 预测...")
p_test = clf.predict(x_test)

得到测试结果,对其进行输出以及存储结果

"""内存泄露,垃圾回收"""
#del x_test; gc.collect()print( "LightGBM 预测:" )
print( pd.DataFrame(p_test))
result_path = 'E:\The_most_powerful_laboratory\Tianchi_bigData\AI_diabetes_prediction\The_program_and_Result\\'
pd.DataFrame(p_test).to_csv(result_path+'other_treat2_pm_lgb.csv',header=None,index=False)

输出结果:
0 5.980362
1 6.152404
2 5.434784
3 5.691541
4 5.347017
5 5.498835
6 5.450368
7 5.708111
8 5.867635
9 6.118506
10 5.080957
11 5.692060
12 5.879674
13 5.575080
14 5.941833
15 5.108654
16 5.479026
17 5.761566
18 5.215997
19 5.928394
20 5.431442
21 5.487162
22 6.361659
23 6.106310
24 5.917645
25 5.250482
26 5.293484
27 5.484452
28 5.699167
29 5.661823
.. …
970 5.736628
971 6.044788
972 6.120981
973 6.290797
974 5.643984
975 5.629949
976 5.896866
977 5.884388
978 5.552906
979 5.099668
980 6.094184
981 5.207230
982 5.878387
983 5.592142
984 6.070533
985 5.723010
986 5.697837
987 6.142087
988 6.066210
989 5.785511
990 5.848041
991 5.250853
992 5.340729
993 6.106734
994 6.380849
995 5.595592
996 5.968682
997 6.036769
998 5.314922
999 5.549087

预测完毕
做了一次比赛之后发现,这种数据比赛的重点在于 特征工程的处理,特征的优良好坏,很大程度上决定了你预测结果的好坏,当然,好的预测方法也是十分关键的。机器学习时代三大神器GBDT、XGBoost、LightGBM,不同种的将会决定你预测的精度和速度。

好了,结束了(给自己一个小目标,每周一篇博客,贵在坚持)

PS:本次代码,十分注重基本库的运用,如pandas,lgb库等,特别是pandas,俗话说得好,pandas大法好;另外,贴上我的GitHub完整代码地址。新人,请多多指正

新人 天池大数据初涉水相关推荐

  1. 阿里巴巴天池大数据竞赛黄金联赛全面开战,全球同步报名,只为寻找最聪明的你!...

    阿里巴巴天池大数据竞赛黄金联赛全面开战,全球同步报名,只为寻找最聪明的你!          天池大数据竞赛是由阿里巴巴集团主办,面向全球新生代力量的高端算法竞赛.通过开放海量数据和"天池& ...

  2. 天池大数据竞赛第一名,上海交通大学人工智能实验室如何用AI定位肺结节

    癌症,犹如黑暗中的魔鬼,带给人们恐惧与绝望.而肺癌,在我国作为发病率.死亡率最高的一类癌症,伤害着无数家庭.在我国每年都有近60万人死于肺癌.然而,癌症的死亡率与首次发现癌症的时期紧密相关,早期肺结节 ...

  3. 阿里天池大数据竞赛——口碑商家客流量预测 A2

    阿里天池大赛koubeiyuce1 2017年二月份,天池大数据比赛,口碑商家客流量预测,参赛地址及详情: https://tianchi.shuju.aliyun.com/competition/i ...

  4. 阿里云天池大数据:【入门】精灵宝可梦数据集分析

    目的 学习,实践,不同机器学习算法 使用的包及安装 pip install numpy pip install Pandas 数据获取 阿里云天池大数据竞赛官网获取 莫某 引入包 import pan ...

  5. 天池大数据众智平台 - 数据科学家社区

    天池大数据众智平台 - 数据科学家社区 https://tianchi.aliyun.com/

  6. 【TIANCHI】天池大数据竞赛(学习赛)--- 淘宝用户购物行为数据可视化分析

    目录 前言 一.数据集的来源和各个字段的意义 二.数据分析 1.引入库 2.读入数据 3.查看数据数量级 4.PV(Page View)/UV访问量 5.漏斗模型 6.用户购买商品的频次分析. 7.A ...

  7. AI比赛-NER:“万创杯”中医药天池大数据竞赛——中药说明书实体识别挑战

    大赛概况 疫情催化下,人工智能正在持续助力中医药传承创新加速发展,其中中医用药知识体系沉淀挖掘是一个基础工作.通过挖掘中药说明书构建中药合理用药的知识图谱,将为中医规范诊疗奠定较好基础.挑战旨在通过抽 ...

  8. kaggle和天池大数据比赛的区别

    kaggle和天池大数据的比赛给我的感觉完全不一样,天池上面的比赛给我感觉更像一场考试,大家都是自己埋头做自己的东西交流很少,以拟合线上验证集为最大的目标.kaggle上的比赛给人感觉更像一场交流分享 ...

  9. 阿里云天池大数据长期赛:金融风控-贷款违约预测(含代码)

    前言 一.赛题介绍 二.数据描述性统计 2.1.读取数据 2.2.查看重复值 2.3.统计目标变量比例 2.4.查看数据的统计量 ​2.5.统计每个变量的种类 2.6.查看训练集与测试集的特征分布是否 ...

最新文章

  1. 微软亚洲研究院周明:从语言智能到代码智能
  2. Windows 7等多系统的备份与恢复
  3. 金额转换,阿拉伯数字的金额转换成 面试编程题
  4. python导入其他py文件-Python如何import其它.py文件及其函数
  5. 反射 reflect
  6. liunx系统内核安装图形化界面
  7. Django从理论到实战(part52)--登录、注销及登录限制
  8. 教你做前端表单文本框必填
  9. 大学计算机基础超详细知识点(高手总结),大学计算机基础超详细知识点(高手总结).doc...
  10. java 不定长参数实现原理
  11. 用U盘安装Linux系统的简单方法
  12. 社会计算:服务群体社会的大数据科学
  13. docker安装mysql主从视频教程_docker安装mysql主从
  14. java JsonNode 遍历方式
  15. java steam的缓冲区_SSM框架完结篇 SpringMVC与Steam前后台功能模块开发
  16. 8.基本数据类型详细讲解-list/tuple
  17. js:写一个函数实现任意数组的翻转
  18. Android MVVM框架搭建(八)高德地图定位、天气查询、BottomSheetDialog
  19. 卡通爆炸logo展示片头片尾动态视频AE模板
  20.  定义一个变量,是一个三位数,求各个位数的和

热门文章

  1. 微信小程序几个空判断整理
  2. 《Mysql是怎样运行的》读书笔记之单表访问
  3. php+三码合一,三码合一,解决php mysql乱码
  4. 2021. 03. 04俱乐部月赛
  5. 测绘专业计算机编程要求,关于一些测绘圈子的信息,你需要了解!
  6. 2021年4月Bmob无法访问Bmob云服务器
  7. Already included file name xxx differs from file name xxx only in case.
  8. 微信公众平台开发入门视频教程已发布
  9. 洛谷P2598 [ZJOI2009]狼和羊的故事 题解
  10. 转子 matlab,转子系统matlab特征值