我正在使用插入符号包在R中训练一个模型:
ctrl <- trainControl(method = "repeatedcv", repeats = 3, summaryFunction = twoClassSummary)
logitBoostFit <- train(LoanStatus~., credit, method = "LogitBoost", family=binomial, preProcess=c("center", "scale", "pca"),
trControl = ctrl)
我收到以下警告:
Warning message:
In train.default(x, y, weights = w, ...): The metric "Accuracy" was not in the result set. ROC will be used instead.Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, : There were missing values in resampled performance measures.
Something is wrong; all the ROC metric values are missing:
ROC Sens Spec
Min. : NA Min. :0.03496 Min. :0.9747
1st Qu.: NA 1st Qu.:0.03919 1st Qu.:0.9758
Median : NA Median :0.04343 Median :0.9770
Mean :NaN Mean :0.04349 Mean :0.9779
3rd Qu.: NA 3rd Qu.:0.04776 3rd Qu.:0.9795
Max. : NA Max. :0.05210 Max. :0.9821
NA's :3
Error in train.default(x, y, weights = w, ...): Stopping
我安装了pROC包:
install.packages("pROC", repos="http://cran.rstudio.com/")
library(pROC)
Type 'citation("pROC")' for a citation.
Attaching package: ‘pROC’
The following objects are masked from ‘package:stats’:
cov, smooth, var
以下是数据:
str(credit)
'data.frame': 8580 obs. of 45 variables:
$ ListingCategory : int 1 7 3 1 1 7 1 1 1 1 ...
$ IncomeRange : int 3 4 6 4 4 3 3 4 3 3 ...
$ StatedMonthlyIncome : num 2583 4326 10500 4167 5667 ...
$ IncomeVerifiable : logi TRUE TRUE TRUE FALSE TRUE TRUE ...
$ DTIwProsperLoan : num 1.8e-01 2.0e-01 1.7e-01 1.0e+06 1.8e-01 4.4e-01 2.2e-01 2.0e-01 2.0e-01 3.1e-01 ...
$ EmploymentStatusDescription: Factor w/ 7 levels "Employed","Full-time",..: 1 4 1 7 1 1 1 1 1 1 ...
$ Occupathtml" target="_blank">ion : Factor w/ 65 levels "","Accountant/CPA",..: 37 37 20 14 43 58 48 37 37 37 ...
$ MonthsEmployed : int 4 44 159 67 26 16 209 147 24 9 ...
$ BorrowerState : Factor w/ 48 levels "AK","AL","AR",..: 22 32 5 5 14 28 4 10 10 34 ...
$ BorrowerCity : Factor w/ 3089 levels "AARONSBURG","ABERDEEN",..: 1737 3059 2488 654 482 719 895 1699 2747 1903 ...
$ BorrowerMetropolitanArea : Factor w/ 1 level "(Not Implemented)": 1 1 1 1 1 1 1 1 1 1 ...
$ LenderIndicator : int 0 0 0 1 0 0 0 0 1 0 ...
$ GroupIndicator : logi FALSE FALSE FALSE TRUE FALSE FALSE ...
$ GroupName : Factor w/ 83 levels "","00 Used Car Loans",..: 1 1 1 47 1 1 1 1 1 1 ...
$ ChannelCode : int 90000 90000 90000 80000 40000 40000 90000 90000 80000 90000 ...
$ AmountParticipation : int 0 0 0 0 0 0 0 0 0 0 ...
$ MonthlyDebt : int 247 785 1631 817 644 1524 427 817 654 749 ...
$ CurrentDelinquencies : int 0 0 0 0 0 0 0 1 0 1 ...
$ DelinquenciesLast7Years : int 0 10 0 0 0 0 0 0 0 0 ...
$ PublicRecordsLast10Years : int 0 1 0 0 0 0 1 0 1 0 ...
$ PublicRecordsLast12Months : int 0 0 0 0 0 0 0 0 0 0 ...
$ FirstRecordedCreditLine : Factor w/ 4719 levels "1/1/00 0:00",..: 3032 2673 1197 2541 4698 4345 3150 925 4452 2358 ...
$ CreditLinesLast7Years : int 53 30 36 26 7 22 15 20 34 32 ...
$ InquiriesLast6Months : int 2 8 5 0 0 0 0 3 0 0 ...
$ AmountDelinquent : int 0 0 0 0 0 0 0 63 0 15 ...
$ CurrentCreditLines : int 10 10 18 10 4 11 6 10 7 8 ...
$ OpenCreditLines : int 9 10 15 8 3 8 5 7 7 8 ...
$ BankcardUtilization : num 0.26 0.69 0.94 0.69 0.81 0.38 0.55 0.24 0.03 0 ...
$ TotalOpenRevolvingAccounts : int 9 7 12 10 3 5 4 5 4 6 ...
$ InstallmentBalance : int 48648 14827 0 0 0 30916 0 21619 41340 15447 ...
$ RealEstateBalance : int 0 0 577745 0 0 0 191296 0 0 126039 ...
$ RevolvingBalance : int 5265 9967 94966 50511 37871 22463 19550 2436 1223 3236 ...
$ RealEstatePayment : int 0 0 4159 0 0 0 1303 0 0 1279 ...
$ RevolvingAvailablePercent : int 78 52 36 45 18 61 44 74 96 76 ...
$ TotalInquiries : int 8 11 15 2 0 0 1 7 1 1 ...
$ TotalTradeItems : int 53 30 36 26 7 22 15 20 34 32 ...
$ SatisfactoryAccounts : int 52 23 36 26 7 19 15 18 34 29 ...
$ NowDelinquentDerog : int 0 0 0 0 0 0 0 1 0 1 ...
$ WasDelinquentDerog : int 1 7 0 0 0 3 0 1 0 2 ...
$ OldestTradeOpenDate : int 5092001 5011977 12011984 4272000 9081993 9122000 6161987 11181999 9191990 4132000 ...
$ DelinquenciesOver30Days : int 0 6 0 0 0 13 0 2 0 2 ...
$ DelinquenciesOver60Days : int 0 4 0 0 0 0 0 0 0 1 ...
$ DelinquenciesOver90Days : int 0 10 0 0 0 0 0 0 0 0 ...
$ IsHomeowner : logi FALSE FALSE TRUE FALSE FALSE FALSE ...
$ LoanStatus : Factor w/ 2 levels "0","1": 2 1 1 2 2 2 2 2 2 1 .`..
汇总(信用)列表类别收入范围状态月度收入可验证最小值:0.000最小值:1.000最小数:0模式:逻辑<br>第一区:1.00第一区:3.000第一区:3167假:784<br>中值:2000中值:4.000中值:4750真:7796<br>平均值:4.997均值:4.089均值:5755 NA's:0<br>第三区:7.000第三区:
DTIwProsperLoan雇佣状态描述月雇佣< br >分钟。:0.0就业:7182分钟。:-23.00
第一区。:0.1全日制:416第一曲。:26.00
中位数:0.2未就业:122中位数:68.00
平均数:91609.4其他:475平均数:97.44
第三曲。:0.3兼职:7第三曲。:最高139.00
:1000000.0退役:最多32。:755.00
个体经营者:346 NA ' s:5 < br > BorrowerState lender indicator group indicator channel code < br > CA:1056Min。:0.00000模式:逻辑最小值。:40000
FL : 608第一区。:0.00000假:8325第一曲。:80000
NY : 574中值:0.00000 TRUE :255中值:80000
TX : 532平均值:0.09196 NA:0平均值:77196
IL : 443第三Qu。:0.00000第三区。:90000
最大GA : 343。:最大1.00000。:90000
(其他):5024
每月拖欠当前拖欠至少持续7年。:0.0分钟。:最小0.0000。:0.000
第一区。:364.0第一曲。:0.0000第一区。:0.000
中值:708.0中值:0.0000中值:0.000
平均值:885.5平均值:0.4119平均值:4.009
第三曲。:1205.2第三区。:0.0000第三区。:最大3.000
:最大30213.0。:最大21.0000。:99.000
PublicRecordSlast10年PublicRecordslast12个月信用额度Slast7年最短:0.0000最小:0.00000最小:2.0第一区:0.000第一区:1.00000第一区:16.0
中值:0.万中位数:0.000000中位数:24.0
平均值:0.2809平均数:0.01364平均数:26.1
第三区:0-0.0000第三区:
查询最近6个月的拖欠金额当前信用额度最小打开信用额度。:最小0.0000。:0分钟。:最小0.000。:0.000
第一区。:0.0000第一区。:0第一曲。:5.000第一区。:5.000中值:1.0000中值:0中值:9.000中值:8.000平均值:0.9994平均值:1195平均值:9.345平均值:8.306第三曲。:1.0000第三区。:0第三区。:12.000第三区。:最大11.000
:最大15.0000。:最大179158。:最大54.000。:42.000
银行卡利用率totalopenrevolvingaaccounts installation balance Min。:最小0.0000。:最小0.000。:0
第一区。:0.2500第一区。:3.000第一区。:3338
中值:0.5400中值:6.000中值:14453
平均值:0.5182平均值:6.441平均值:24900
第三曲。:0.7900三区。:9.000第三区。:32238
最大值。:最大2.2300。:最大44.000。:739371 < br > NA ' s:328 < br > real estate balance revolution balance real estate payment revolvable percent Min。:0分钟。:0分钟。:0.0分钟。:0.00
第一区。:0第一曲。:2799第一曲。:0.0第一曲。:29.00
中位数:26154中位数:8784中位数:346.5中位数:52.00
平均数:109306平均数:19555平均数:830.5平均数:51.46
第三曲。:176542第三区。:21110第三区。:1382.2第三曲。:最大75.00
:1938421最大。:最大695648。:最大13651.0。:100.00
总询盘 总交易项目 满意账户 现在拖欠德罗格 最低。 : 0.00 最小值 : 2.0 最小值 : 1.00 最小值 : 0.0000
第一个区: 2.00 第一个区: 16.0 第一个区: 14.00 第一个曲号: 0.0000
中位数 : 3.00 中位数 : 24.0 中位数 : 21.00 中位数 : 0.0000
平均值 : 3.91 平均值 : 26.1 平均值 : 23.34 平均值 : 0.4119
第三个曲号: 5.00 第三个曲号: 34.0 第三个曲号: 30.25 第三个曲号: 0.0000
最大值 :36.00 最大值 :115.0 最大 :113.00 最大值 :113.00 最大 :21.0000
WasDelinquentDerog OldestTradeProdependioniesOver30Days min. : 0.000 min. : 1011957 min. : 0.000
1st Qu.: 0.000 1st Qu.: 4101996 1st Qu.: 0.000
中位数 : 1.000 中位数 : 7191993 中位数 : 1.000
平均值 : 2.343 平均值 : 6934230平均值 : 4.332
3rd Qu.: 3.000 第三 Qu.: 3.10011990 000 第三 Qu.: 5.000
最大值 : 32.000 最大值 : 12312004 最大值 :99.000
拖欠超过60天拖欠超过90天IsHomeowner LoanStatus Min.:0.000 Min.;0.000模式:逻辑0:1518<br>第一区:0.000第一区:1.000 FALSE:4264 1:7062<br>中值:0.00中值:0.000真:4316<br>平均值:1.908平均值:4.009 NA:0<br>第三区:2.000第三区:<br>最大值:73.000最大值:99.000
我没有找到任何丢失的值:
try(na.fail(credit))
dput(head(credit,4))
structure(list(ListingCategory = c(1L, 7L, 3L, 1L), IncomeRange = c(3L,
4L, 6L, 4L), StatedMonthlyIncome = c(2583.3333, 4326, 10500,
4166.6667), IncomeVerifiable = c(TRUE, TRUE, TRUE, FALSE), DTIwProsperLoan = c(0.18,
0.2, 0.17, 1e+06), EmploymentStatusDescription = structure(c(1L,
4L, 1L, 7L), .Label = c("Employed", "Full-time", "Not employed",
"Other", "Part-time", "Retired", "Self-employed"), class = "factor"),
MonthsEmployed = c(4L, 44L, 159L, 67L), BorrowerState = structure(c(22L,
32L, 5L, 5L), .Label = c("AK", "AL", "AR", "AZ", "CA", "CO",
"CT", "DC", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "KS",
"KY", "LA", "MA", "MD", "MI", "MN", "MO", "MS", "MT", "NC",
"NE", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA",
"RI", "SC", "SD", "TN", "TX", "UT", "VA", "VT", "WA", "WI",
"WV", "WY"), class = "factor"), LenderIndicator = c(0L, 0L,
0L, 1L), GroupIndicator = c(FALSE, FALSE, FALSE, TRUE), ChannelCode = c(90000L,
90000L, 90000L, 80000L), MonthlyDebt = c(247L, 785L, 1631L,
817L), CurrentDelinquencies = c(0L, 0L, 0L, 0L), DelinquenciesLast7Years = c(0L,
10L, 0L, 0L), PublicRecordsLast10Years = c(0L, 1L, 0L, 0L
), PublicRecordsLast12Months = c(0L, 0L, 0L, 0L), CreditLinesLast7Years = c(53L,
30L, 36L, 26L), InquiriesLast6Months = c(2L, 8L, 5L, 0L),
AmountDelinquent = c(0L, 0L, 0L, 0L), CurrentCreditLines = c(10L,
10L, 18L, 10L), OpenCreditLines = c(9L, 10L, 15L, 8L), BankcardUtilization = c(0.26,
0.69, 0.94, 0.69), TotalOpenRevolvingAccounts = c(9L, 7L,
12L, 10L), InstallmentBalance = c(48648L, 14827L, 0L, 0L),
RealEstateBalance = c(0L, 0L, 577745L, 0L), RevolvingBalance = c(5265L,
9967L, 94966L, 50511L), RealEstatePayment = c(0L, 0L, 4159L,
0L), RevolvingAvailablePercent = c(78L, 52L, 36L, 45L), TotalInquiries = c(8L,
11L, 15L, 2L), TotalTradeItems = c(53L, 30L, 36L, 26L), SatisfactoryAccounts = c(52L,
23L, 36L, 26L), NowDelinquentDerog = c(0L, 0L, 0L, 0L), WasDelinquentDerog = c(1L,
7L, 0L, 0L), OldestTradeOpenDate = c(5092001L, 5011977L,
12011984L, 4272000L), DelinquenciesOver30Days = c(0L, 6L,
0L, 0L), DelinquenciesOver60Days = c(0L, 4L, 0L, 0L), DelinquenciesOver90Days = c(0L,
10L, 0L, 0L), IsHomeowner = c(FALSE, FALSE, TRUE, FALSE),
LoanStatus = structure(c(2L, 1L, 1L, 2L), .Label = c("0",
"1"), class = "factor")), .Names = c("ListingCategory", "IncomeRange",
"StatedMonthlyIncome", "IncomeVerifiable", "DTIwProsperLoan",
"EmploymentStatusDescription", "MonthsEmployed", "BorrowerState",
"LenderIndicator", "GroupIndicator", "ChannelCode", "MonthlyDebt",
"CurrentDelinquencies", "DelinquenciesLast7Years", "PublicRecordsLast10Years",
"PublicRecordsLast12Months", "CreditLinesLast7Years", "InquiriesLast6Months",
"AmountDelinquent", "CurrentCreditLines", "OpenCreditLines",
"BankcardUtilization", "TotalOpenRevolvingAccounts", "InstallmentBalance",
"RealEstateBalance", "RevolvingBalance", "RealEstatePayment",
"RevolvingAvailablePercent", "TotalInquiries", "TotalTradeItems",
"SatisfactoryAccounts", "NowDelinquentDerog", "WasDelinquentDerog",
"OldestTradeOpenDate", "DelinquenciesOver30Days", "DelinquenciesOver60Days",
"DelinquenciesOver90Days", "IsHomeowner", "LoanStatus"), row.names = c(NA,
4L), class = "data.frame")
对哪里出了问题有什么想法吗?
Warning message:
In train.default(x, y, weights = w, ...): The metric "Accuracy" was not in the result set. ROC will be used instead.
# weights: 72 (71 variable)
initial value 5144.538374
iter 10 value 3540.667624
iter 20 value 3329.692768
iter 30 value 3279.191024
iter 40 value 3264.926986
iter 50 value 3259.276647
iter 60 value 3259.056261
final value 3259.032668
converged
# weights: 72 (71 variable)
initial value 5144.538374
iter 10 value 3540.774666
iter 20 value 3330.016829
iter 30 value 3279.545595
iter 40 value 3265.384385
iter 50 value 3259.499032
iter 60 value 3259.353010
final value 3259.342601
converged
# weights: 72 (71 variable)
initial value 5144.538374
iter 10 value 3540.667731
iter 20 value 3329.693092
iter 30 value 3279.191379
iter 40 value 3264.927427
iter 50 value 3259.276899
iter 60 value 3259.056561
final value 3259.032978
converged
# weights: 72 (71 variable)
initial value 5144.538374
iter 10 value 3528.401458
iter 20 value 3314.932958
iter 30 value 3264.117072
iter 40 value 3253.780051
iter 50 value 3253.368959
iter 60 value 3253.359047
final value 3253.358819
converged
# weights: 72 (71 variable)
initial value 5144.538374
iter 10 value 3528.508505
iter 20 value 3315.134599
iter 30 value 3265.021404
iter 40 value 3255.739021
iter 50 value 3253.817833
iter 60 value 3253.697180
final value 3253.671003
converged
# weights: 72 (71 variable)
initial value 5144.538374
iter 10 value 3528.401565
iter 20 value 3314.933160
iter 30 value 3264.117768
iter 40 value 3253.780539
iter 50 value 3253.369030
iter 60 value 3253.359358
final value 3253.359133
converged
# weights: 71 (70 variable)
initial value 5145.231521
iter 10 value 4680.326236
iter 20 value 4672.506024
iter 30 value 3662.998233
iter 40 value 3310.207744
iter 50 value 3252.983656
iter 60 value 3250.400275
iter 70 value 3250.339216
final value 3250.332646
converged
权重:72(71个变量)初始值5144.538374 iter 10值4661.569290 iter 20值4652.246624 iter 30值3715.472355 iter 40值3484.096833 iter 50值3254.247424 iter 60值3248.931841 iter 70值3248.154679 iter 80值3248.;129089 iter八十值32484663.660886 iter 20值4654.255466 iter 30值3542.473235 iter 40值3315.027437 iter 50值3250.340679 iter 60值3248.693378 iter 70值3248.455840 iter 80值3248.;443345 iter 80价值3248.443325 iter 80数值3248.445325最终数值3248 30价值4397.069608 iter 40值3532.067046 iter 50值3283.179445 iter 60值3249.518694 iter 70值3248.163057 iter 80值3248.129552最终值3248.;128889聚合警告消息:在nominalTrainWorkflow中(x=x,y=y,wts=weights,info=trainInfo,:在重新采样的性能度量中缺少值。出了问题;所有ROC度量值都缺少:ROC Sens Spec
最小值:NA最小值:0.01805最小值:1次曲:0.9946
第一次曲:NA第一次曲::0.018015第一次曲:0.994
中值:NA中值:0.01405中值:0.9946
均值:NaN均值:0.015均值:0.9994
3次曲:NA3次曲。:0.9946
最大值:NA最大值:0.01805最大值::0.9996
NA的:3
列车错误。默认值(x,y,权重=w,…):停止
SumyFunction=twoClassApril出现以触发警告。它也发生在这里:
ctrl <- trainControl(method = "cv", summaryFunction = twoClassSummary)
multinomSummaryFit <- train(LoanStatus~., credit, method = "multinom", family=binomial,
trControl = ctrl)
Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, : There were missing values in resampled performance measures.
Something is wrong; all the ROC metric values are missing:
ROC Sens Spec
Min. : NA Min. :0.01919 Min. :0.9941
1st Qu.: NA 1st Qu.:0.01988 1st Qu.:0.9942
Median : NA Median :0.02056 Median :0.9943
Mean :NaN Mean :0.02011 Mean :0.9943
3rd Qu.: NA 3rd Qu.:0.02056 3rd Qu.:0.9943
Max. : NA Max. :0.02057 Max. :0.9944
NA's :3
Error in train.default(x, y, weights = w, ...): Stopping
我在一些数据上遇到了类似的问题,我使用了选项“summaryFunction=twoClassSummary”来获得一些输出性能指标,一些数据特性的sd()等于1。
在接下来的步骤中,我通过保留“twoClassSummary”并计算所需的性能指标(例如ROC、CM)来解决问题。
尝试将类变量值从“0”,“1”更改为例如“A”,“B”,然后尝试。
查看<code>摘要(信用)</code>的输出,我可以看到至少两个变量中存在<code>NA</code>值;
变量<code>MonthsEmployed</code>具有<code>5 NA</code>值:
MonthsEmployed
Min. :-23.00
1st Qu.: 26.00
Median : 68.00
Mean : 97.44
3rd Qu.:139.00
Max. :755.00
NA's :5
变量 InstallmentBalance
有 328 个 NA
值。
InstallmentBalance
Min. : 0
1st Qu.: 3338
Median : 14453
Mean : 24900
3rd Qu.: 32238
Max. :739371
NA's :328
尝试删除具有缺失值的行(或临时删除这两个变量)并再次运行该函数以查看这是否解决了您的问题。
此外,您需要将指标="ROC"
添加到训练
函数中,并将类Probs=TRUE
添加到trainControl()
当您使用twoClass汇总
时
ctrl <- trainControl(method = "repeatedcv",
repeats = 3,
classProbs = TRUE,
summaryFunction = twoClassSummary) .
所以,你的电话应该是
multinomSummaryFit <- train(LoanStatus~.,
data = credit,
method = "multinom",
family=binomial,
metric = "ROC",
trControl = ctrl)
关于数据集的另一个重要问题是,您需要仔细检查变量的值,并确保每个值都有意义。例如,月已用
变量具有负值。从逻辑上讲,员工的就业月数为正数。这些负值是错误的,还是它们意味着别的什么!(例如,值为 -23 表示该人已有 23 个月未受雇)。
回答您关于< code >混淆矩阵的问题:
假设您的训练模型名为multinomSummaryFit
。为了在测试数据集上评估您的模型,您需要在没有LoanStatus
的测试数据集调用predict
(使用您训练模型的相同变量),然后将您的模型预测与LoanStatus
#let's say your test datafrme is called test
mymodel_pred <- predict(multinomSummaryFit, test[, names(test) != "LoanStatus"])
然后使用
混淆矩阵
:
confusionMatrix(data = mymodel_pred,
reference = test$LoanStatus,
positive = "Default")
如果测试数据集没有
LoanStatus
列,则只需使用:
mymodel_pred <- predict(multinomSummaryFit, test)
但在这种情况下,如果不知道实际响应,则无法在测试数据集上评估模型。
请记住,如果您从定型数据集中移除了任何变量,那么在调用< code>predict
之前,也需要从测试数据集中移除这些变量
使用分层抽样将数据拆分为训练和测试:
trainingRows <- createDataPartition(credit$LoanStatus, p = .70, list= FALSE)
train <- credit[trainingRows, ]
test <- credit[-trainingRows, ]
我有一个neo4j数据库,里面有一些数据。大多数节点都有一个属性,但不是所有节点都有;我想构造一个Cypher查询来匹配并返回所有不匹配的查询。 我已经尝试了以下所有方法,但它们都给出了0个结果: 但是,我至少有一个节点没有指定属性,我可以通过 检查结果视图中的节点,或者注意到 返回。 如何匹配没有属性的所有节点?
我试图建立一个基本的rails应用程序,并将其部署到弹性豆茎。我运行eb init,选择我的区域,它要求和。无论出于什么原因,它不接受我的凭据,并且在没有意识到这一点的情况下,我不小心在行中运行了一个命令。现在我无法忘记选择我的地区。我得到
问题内容: 我想填充用的与经典ASP / VBScript中的站点。这些值是从SQL Server数据库读取和获取的,其代码类似于: 我的问题是似乎只有一侧可以评估。 随着我得到: 随着我得到: 应该采取什么措施缓解这一问题? 问题答案: 试试这个:
问题内容: 我正在尝试使用此处的示例学习Hibernate-Spring-Struts 。 但是创建此错误后: 我仅在创建文件方面取得了进展,并进行了更改以包括最新的库。这是我的: 我尝试了有无依赖项。没有区别。有人可以告诉我我做错了什么吗?我该怎么做才能摆脱它? 问题答案: 您的错误是因为您弄乱了Struts核心和插件的不同版本。 更改 我不知道您为什么需要JTA 1.0.1B,但可以将hibe
本文向大家介绍innerHTML有什么缺点?相关面试题,主要包含被问及innerHTML有什么缺点?时的应答技巧和注意事项,需要的朋友参考一下 不能像“追加到innerhtml”一样使用; 整个innerhtml内容被重新解析并构建成元素,因此它的速度要慢得多; innerhtml不提供验证,因此我们可能会在文档中插入有效的和破坏性的html。