Various classifier comparisons on NSL-KDD

from Tools.Plot import plot_confusion_matrix,macro_roc
from sklearn.metrics import classification_report,confusion_matrix,log_loss,auc
from sklearn.preprocessing import (
    MinMaxScaler, label_binarize, OneHotEncoder, LabelEncoder)
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import StratifiedKFold, GridSearchCV,train_test_split

from imblearn.metrics import classification_report_imbalanced
from itertools import cycle, product
import datetime
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from itertools import cycle
import seaborn as sns
import warnings
from tqdm import tqdm_notebook
warnings.filterwarnings('ignore')
%matplotlib inline

加載數(shù)據(jù)

##################### 加載數(shù)據(jù) ##########################
train = pd.read_csv('data/train_all.csv')
test = pd.read_csv('data/test_all.csv')
# label encoding
label_dict = {'Normal': 0,
              'Probe': 1,
              'DoS': 2,
              'U2R': 3,
              'R2L': 4}
X_train = train.drop(['label_num'],axis=1)
X_test = test.drop(['label_num'],axis=1)
y_train = train['label_num']
y_test = test['label_num']
print('Shape of training set:', X_train.shape)
print('Shape of testing set:', X_test.shape)
# print('Columns: \n', list(X_train.columns))

labels = [key for i in sorted(label_dict.values()) for key,val in label_dict.items() if val==i]
labels_number = sorted(label_dict.values()) # [0, 1, 2, 3, 4]

Shape of training set: (125973, 15)
Shape of testing set: (22544, 15)

分類器

from lightgbm import LGBMClassifier
from xgboost import XGBClassifier
from sklearn.svm import  LinearSVC, SVC
from sklearn.naive_bayes import GaussianNB, ComplementNB
from sklearn.neural_network import MLPClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression, SGDClassifier
from sklearn.tree import DecisionTreeClassifier, ExtraTreeClassifier
from sklearn.ensemble import (GradientBoostingClassifier, RandomForestClassifier, AdaBoostClassifier,
BaggingClassifier, ExtraTreesClassifier, RandomTreesEmbedding)
from Boost import RUSBoost,SMOTEBoost

RANDOM_STATE = 0
clfs = [
    ("RUSBoost",
        RUSBoost.RUSBoost(random_state=RANDOM_STATE)),
    ("SMOTEBoost",
        SMOTEBoost.SMOTEBoost(random_state=RANDOM_STATE)),
    ("LGBMClassifier",
        LGBMClassifier(random_state=RANDOM_STATE)),
    ("XGBClassifier",
        XGBClassifier(random_state=RANDOM_STATE)),
    ("LinearSVC",
        LinearSVC(random_state=RANDOM_STATE)),
    ("SVC",
        SVC(random_state=RANDOM_STATE)),
    ("GaussianNB",
     GaussianNB()),
    ("ComplementNB",
     ComplementNB()),
    ("MLPClassifier",
     MLPClassifier(random_state=RANDOM_STATE)),
    ("KNeighborsClassifier",
     KNeighborsClassifier()),
    ("LogisticRegression",
        LogisticRegression(random_state=RANDOM_STATE)),
    ("SGDClassifier,loss='log'",
        SGDClassifier(loss='log',random_state=RANDOM_STATE)),
    ("SGDClassifier,loss='modified_huber'",
        SGDClassifier(loss='modified_huber',random_state=RANDOM_STATE)),
    ("DecisionTreeClassifier",
     DecisionTreeClassifier(random_state=RANDOM_STATE)),
    ("ExtraTreeClassifier",
     ExtraTreeClassifier(random_state=RANDOM_STATE)),
    ("GradientBoostingClassifier",
     GradientBoostingClassifier(random_state=RANDOM_STATE)),
    ("RandomForestClassifier",
     RandomForestClassifier(random_state=RANDOM_STATE)),
    ("AdaBoostClassifier",
     AdaBoostClassifier(random_state=RANDOM_STATE)),
    ("BaggingClassifier",
     BaggingClassifier(random_state=RANDOM_STATE)),
    ("ExtraTreesClassifier",
     ExtraTreesClassifier(random_state=RANDOM_STATE)),
]

評估

################### train #####################################
plt.figure(figsize=(12, 6))
cm = []
clf_report_list = []
for label, clf in tqdm_notebook(clfs):
    
    start = datetime.datetime.now()
    clf.fit(X_train, y_train)
    end = datetime.datetime.now()
    print('[',label,']--done',(end-start))
######################### 測試集評估 ########################
    y_test_pred = clf.predict(X_test)
    if label in ['LinearSVC', 'SVC']:
        y_test_score = clf.decision_function(X_test)
    else:
        y_test_score = clf.predict_proba(X_test)  # valid score
    # 分類報告
    clf_report = classification_report_imbalanced(
        y_test, y_test_pred, digits=4, target_names=labels)
    clf_report_list.append(clf_report)
    # 混淆矩陣
    cnf_matrix = confusion_matrix(y_test, y_test_pred)
    cm.append((label, cnf_matrix))
    # ROC
    all_fpr, mean_tpr = macro_roc(
        y_test, y_test_score, labels_number)
    roc_auc = auc(all_fpr, mean_tpr)

    sns.set_style('darkgrid')
    plt.plot(all_fpr, mean_tpr, lw=1,
             label='{0} (auc = {1:0.4f})'.format(label, roc_auc))
plt.plot([0, 1], [0, 1], 'k--', lw=1)
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.01])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC curve')
plt.legend(loc=(1.1, 0))
plt.tight_layout()
plt.show()
[ RUSBoost ]--done 0:00:05.803901
[ SMOTEBoost ]--done 0:00:07.628780
[ LGBMClassifier ]--done 0:00:07.268016
[ XGBClassifier ]--done 0:00:31.144963
[ LinearSVC ]--done 0:00:07.350956
[ SVC ]--done 0:02:07.588954
[ GaussianNB ]--done 0:00:00.052485
[ ComplementNB ]--done 0:00:00.025667
[ MLPClassifier ]--done 0:02:28.444017
[ KNeighborsClassifier ]--done 0:00:11.978950
[ LogisticRegression ]--done 0:00:03.451240
[ SGDClassifier,loss='log' ]--done 0:00:00.949393
[ SGDClassifier,loss='modified_huber' ]--done 0:00:00.639087
[ DecisionTreeClassifier ]--done 0:00:00.610772
[ ExtraTreeClassifier ]--done 0:00:00.048572
[ GradientBoostingClassifier ]--done 0:00:46.638650
[ RandomForestClassifier ]--done 0:00:00.782573
[ AdaBoostClassifier ]--done 0:00:03.450502
[ BaggingClassifier ]--done 0:00:03.894190
[ ExtraTreesClassifier ]--done 0:00:00.506168
output_6_2.png
sns.set_style('white')
fig,axes = plt.subplots(5,4,figsize=(20,20))
for ax,(name,cnf_matrix) in zip(axes.ravel(),cm): 
    plot_confusion_matrix(cnf_matrix, labels,ax=ax,
                          normalize=True,
                          title=name,
                          cmap=plt.cm.Blues)
plt.tight_layout()
plt.show()
output_7_0.png
for clf_report,(name,clf) in zip(clf_report_list,clfs):
    print(name,'\n',clf_report)
RUSBoost 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.5827    0.7450    0.5962    0.6539    0.6665    0.4508      9711
      Probe     0.4619    0.2156    0.9698    0.2940    0.4573    0.1933      2421
        DoS     0.6661    0.8036    0.8009    0.7284    0.8022    0.6437      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000      2754

avg / total     0.5210    0.6099    0.7569    0.5542    0.6016    0.4279     22544

SMOTEBoost 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.2493    0.3152    0.2818    0.2784    0.2980    0.0891      9711
      Probe     0.8357    0.2710    0.9936    0.4092    0.5189    0.2498      2421
        DoS     0.2974    0.3713    0.5664    0.3303    0.4586    0.2062      7458
        U2R     0.1375    0.0550    0.9969    0.0786    0.2342    0.0497       200
        R2L     0.9121    0.0301    0.9996    0.0583    0.1736    0.0272      2754

avg / total     0.4082    0.2919    0.5464    0.2810    0.3591    0.1372     22544

LGBMClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6757    0.9673    0.6487    0.7956    0.7921    0.6475      9711
      Probe     0.8396    0.6010    0.9862    0.7005    0.7699    0.5699      2421
        DoS     0.9549    0.8241    0.9808    0.8847    0.8990    0.7956      7458
        U2R     0.0474    0.0650    0.9883    0.0549    0.2535    0.0583       200
        R2L     0.8400    0.0610    0.9984    0.1137    0.2468    0.0552      2754

avg / total     0.8002    0.7618    0.8405    0.7250    0.7537    0.6105     22544

XGBClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6563    0.9718    0.6150    0.7835    0.7731    0.6189      9711
      Probe     0.7708    0.6113    0.9781    0.6819    0.7733    0.5760      2421
        DoS     0.9625    0.8024    0.9846    0.8752    0.8888    0.7756      7458
        U2R     1.0000    0.0100    1.0000    0.0198    0.1000    0.0090       200
        R2L     0.9630    0.0094    0.9999    0.0187    0.0972    0.0085      2754

avg / total     0.8104    0.7509    0.8267    0.7027    0.7228    0.5862     22544

LinearSVC 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6251    0.9687    0.5604    0.7599    0.7368    0.5650      9711
      Probe     0.8171    0.5609    0.9849    0.6652    0.7433    0.5290      2421
        DoS     0.9556    0.7473    0.9828    0.8387    0.8570    0.7171      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.0000    0.0000    0.9999    0.0000    0.0000    0.0000      2754

avg / total     0.6731    0.7247    0.8033    0.6762    0.6807    0.5374     22544

SVC 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6217    0.9681    0.5542    0.7571    0.7325    0.5587      9711
      Probe     0.7946    0.5783    0.9820    0.6694    0.7536    0.5449      2421
        DoS     0.9544    0.7243    0.9829    0.8236    0.8438    0.6935      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000      2754

avg / total     0.6689    0.7187    0.8004    0.6705    0.6756    0.5286     22544

GaussianNB 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.8816    0.6899    0.9299    0.7741    0.8010    0.6262      9711
      Probe     0.6846    0.4725    0.9738    0.5591    0.6783    0.4371      2421
        DoS     0.9387    0.5977    0.9807    0.7304    0.7656    0.5638      7458
        U2R     0.0248    0.9100    0.6796    0.0483    0.7864    0.6327       200
        R2L     0.3758    0.1616    0.9627    0.2260    0.3944    0.1431      2754

avg / total     0.8100    0.5735    0.9532    0.6632    0.7263    0.5263     22544

ComplementNB 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6519    0.9627    0.6110    0.7774    0.7670    0.6089      9711
      Probe     0.7739    0.5217    0.9817    0.6232    0.7156    0.4886      2421
        DoS     0.8499    0.7489    0.9346    0.7962    0.8366    0.6869      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000      2754

avg / total     0.6451    0.7185    0.8088    0.6652    0.6840    0.5420     22544

MLPClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6337    0.9702    0.5755    0.7666    0.7473    0.5805      9711
      Probe     0.8523    0.5766    0.9880    0.6879    0.7548    0.5463      2421
        DoS     0.9617    0.7505    0.9852    0.8430    0.8599    0.7220      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.8894    0.0701    0.9988    0.1299    0.2646    0.0635      2754

avg / total     0.7913    0.7367    0.8108    0.6989    0.7197    0.5553     22544

KNeighborsClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6205    0.9771    0.5478    0.7590    0.7316    0.5583      9711
      Probe     0.8583    0.5027    0.9900    0.6340    0.7055    0.4734      2421
        DoS     0.9614    0.7473    0.9852    0.8409    0.8580    0.7186      7458
        U2R     0.1154    0.0150    0.9990    0.0265    0.1224    0.0135       200
        R2L     0.4545    0.0018    0.9997    0.0036    0.0426    0.0016      2754

avg / total     0.7340    0.7225    0.7992    0.6739    0.6810    0.5294     22544

LogisticRegression 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6196    0.9712    0.5488    0.7565    0.7301    0.5555      9711
      Probe     0.8604    0.5576    0.9891    0.6767    0.7427    0.5278      2421
        DoS     0.9544    0.7356    0.9826    0.8308    0.8502    0.7050      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.0000    0.0000    0.9997    0.0000    0.0000    0.0000      2754

avg / total     0.6750    0.7216    0.7987    0.6734    0.6755    0.5292     22544

SGDClassifier,loss='log' 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6164    0.9717    0.5424    0.7543    0.7260    0.5497      9711
      Probe     0.8677    0.5527    0.9899    0.6752    0.7396    0.5231      2421
        DoS     0.9529    0.7274    0.9822    0.8250    0.8453    0.6963      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.0000    0.0000    0.9999    0.0000    0.0000    0.0000      2754

avg / total     0.6740    0.7186    0.7959    0.6704    0.6718    0.5233     22544

SGDClassifier,loss='modified_huber' 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6207    0.9704    0.5512    0.7571    0.7314    0.5574      9711
      Probe     0.8393    0.5523    0.9873    0.6662    0.7384    0.5215      2421
        DoS     0.9556    0.7389    0.9830    0.8334    0.8523    0.7087      7458
        U2R     0.0000    0.0000    1.0000    0.0000    0.0000    0.0000       200
        R2L     0.0000    0.0000    0.9999    0.0000    0.0000    0.0000      2754

avg / total     0.6736    0.7218    0.7997    0.6734    0.6763    0.5305     22544

DecisionTreeClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6554    0.9690    0.6144    0.7819    0.7716    0.6165      9711
      Probe     0.8475    0.6105    0.9868    0.7097    0.7762    0.5798      2421
        DoS     0.9617    0.7836    0.9846    0.8635    0.8783    0.7560      7458
        U2R     0.3333    0.0200    0.9996    0.0377    0.1414    0.0180       200
        R2L     0.7620    0.0977    0.9958    0.1732    0.3119    0.0885      2754

avg / total     0.7875    0.7543    0.8269    0.7202    0.7457    0.5889     22544

ExtraTreeClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6477    0.9691    0.6011    0.7765    0.7632    0.6040      9711
      Probe     0.8605    0.6295    0.9877    0.7271    0.7885    0.5995      2421
        DoS     0.9616    0.7884    0.9844    0.8664    0.8810    0.7609      7458
        U2R     0.2083    0.0250    0.9991    0.0446    0.1580    0.0225       200
        R2L     0.2308    0.0087    0.9960    0.0168    0.0932    0.0078      2754

avg / total     0.7196    0.7472    0.8212    0.7016    0.7177    0.5774     22544

GradientBoostingClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6432    0.9739    0.5911    0.7747    0.7588    0.5978      9711
      Probe     0.8659    0.5708    0.9894    0.6881    0.7515    0.5411      2421
        DoS     0.9630    0.7885    0.9850    0.8671    0.8813    0.7615      7458
        U2R     0.5000    0.0100    0.9999    0.0196    0.1000    0.0090       200
        R2L     0.9318    0.0447    0.9995    0.0852    0.2113    0.0404      2754

avg / total     0.8069    0.7472    0.8177    0.7051    0.7258    0.5725     22544

RandomForestClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6432    0.9713    0.5922    0.7739    0.7584    0.5970      9711
      Probe     0.8607    0.5820    0.9887    0.6944    0.7585    0.5520      2421
        DoS     0.9627    0.7778    0.9851    0.8604    0.8753    0.7503      7458
        U2R     0.6667    0.0200    0.9999    0.0388    0.1414    0.0180       200
        R2L     0.9000    0.0686    0.9989    0.1275    0.2618    0.0622      2754

avg / total     0.8038    0.7468    0.8181    0.7085    0.7310    0.5724     22544

AdaBoostClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.4581    0.7677    0.3129    0.5738    0.4901    0.2511      9711
      Probe     0.8131    0.3395    0.9906    0.4790    0.5799    0.3144      2421
        DoS     0.5636    0.3628    0.8611    0.4415    0.5590    0.2969      7458
        U2R     0.0000    0.0000    0.9997    0.0000    0.0000    0.0000       200
        R2L     0.9425    0.1547    0.9987    0.2658    0.3930    0.1414      2754

avg / total     0.5862    0.5061    0.6569    0.4771    0.5063    0.2574     22544

BaggingClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6558    0.9707    0.6145    0.7828    0.7723    0.6177      9711
      Probe     0.8632    0.5993    0.9886    0.7075    0.7697    0.5694      2421
        DoS     0.9640    0.8013    0.9852    0.8752    0.8885    0.7749      7458
        U2R     0.5000    0.0200    0.9998    0.0385    0.1414    0.0180       200
        R2L     0.9046    0.0930    0.9986    0.1686    0.3047    0.0844      2754

avg / total     0.8091    0.7591    0.8277    0.7236    0.7478    0.5941     22544

ExtraTreesClassifier 
                    pre       rec       spe        f1       geo       iba       sup

     Normal     0.6303    0.9727    0.5682    0.7649    0.7434    0.5751      9711
      Probe     0.8689    0.5857    0.9894    0.6997    0.7612    0.5561      2421
        DoS     0.9598    0.7589    0.9843    0.8476    0.8643    0.7302      7458
        U2R     0.1905    0.0200    0.9992    0.0362    0.1414    0.0180       200
        R2L     0.5714    0.0015    0.9998    0.0029    0.0381    0.0013      2754

avg / total     0.7538    0.7333    0.8076    0.6857    0.6938    0.5493     22544
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泛豪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子侦鹏,更是在濱河造成了極大的恐慌诡曙,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件略水,死亡現(xiàn)場離奇詭異价卤,居然都是意外死亡,警方通過查閱死者的電腦和手機渊涝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門慎璧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來床嫌,“玉大人,你說我怎么就攤上這事炸卑〖染希” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵盖文,是天一觀的道長。 經(jīng)常有香客問我蚯姆,道長五续,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任龄恋,我火速辦了婚禮疙驾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘郭毕。我一直安慰自己它碎,他們只是感情好显押,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布扳肛。 她就那樣靜靜地躺著,像睡著了一般乘碑。 火紅的嫁衣襯著肌膚如雪挖息。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天兽肤,我揣著相機與錄音套腹,去河邊找鬼。 笑死资铡,一個胖子當著我的面吹牛电禀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笤休,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尖飞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宛官?” 一聲冷哼從身側(cè)響起葫松,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎底洗,沒想到半個月后腋么,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡亥揖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年珊擂,在試婚紗的時候發(fā)現(xiàn)自己被綠了圣勒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡摧扇,死狀恐怖圣贸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扛稽,我是刑警寧澤吁峻,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站在张,受9級特大地震影響用含,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帮匾,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一啄骇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘟斜,春花似錦缸夹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壹蔓,卻和暖如春趟妥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背佣蓉。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工披摄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人勇凭。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓疚膊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虾标。 傳聞我的和親對象是個殘疾皇子寓盗,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,930評論 2 89
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常璧函。 O...
    我想起個好名字閱讀 5,311評論 0 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,100評論 1 32
  • 云安全聯(lián)盟大數(shù)據(jù)工作組發(fā)布 譯者:李毅 中國惠普大學(xué)資深培訓(xùn)專家 ** 摘要 **在本文中傀蚌,我們提出了一個大數(shù)據(jù)...
    Leo_Liyi閱讀 6,274評論 0 22
  • 首頁 資訊 文章 資源 小組 相親 登錄 注冊 首頁 最新文章 IT 職場 前端 后端 移動端 數(shù)據(jù)庫 運維 其他...
    Helen_Cat閱讀 3,874評論 1 10