?? ada.html
字號:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>R: Fitting Stochastic Boosting Models</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../R.css">
</head><body>
<table width="100%" summary="page for ada {ada}"><tr><td>ada {ada}</td><td align="right">R Documentation</td></tr></table>
<h2>Fitting Stochastic Boosting Models</h2>
<h3>Description</h3>
<p>
‘ada’ is used to fit a variety stochastic boosting models for a binary response
as described in <EM>Additive Logistic Regression: A Statistical
View of Boosting</EM> by Friedman, et al. (2000).
</p>
<h3>Usage</h3>
<pre>
ada(x,...)
## Default S3 method:
ada(x, y,test.x,test.y=NULL, loss=c("exponential","logistic"),
type=c("discrete","real","gentle"),iter=50, nu=0.1, bag.frac=0.5,
model.coef=TRUE,bag.shift=FALSE,max.iter=20,delta=10^(-10),verbose=FALSE,
na.action=na.rpart,...)
## S3 method for class 'formula':
ada(formula, data, ..., subset, na.action=na.rpart)
</pre>
<h3>Arguments</h3>
<table summary="R argblock">
<tr valign="top"><td><code>x</code></td>
<td>
matrix of descriptors.</td></tr>
<tr valign="top"><td><code>y</code></td>
<td>
vector of responses. ‘y’ may have only two unique values.</td></tr>
<tr valign="top"><td><code>test.x</code></td>
<td>
testing matrix of discriptors (optional)</td></tr>
<tr valign="top"><td><code>test.y</code></td>
<td>
vector of testing responses (optional)</td></tr>
<tr valign="top"><td><code>loss</code></td>
<td>
loss="exponential", "ada","e" or any variation corresponds to
the default boosting under exponential loss. loss="logistic","l2","l"
provides boosting under logistic loss.</td></tr>
<tr valign="top"><td><code>type</code></td>
<td>
type of boosting algorithm to perform.
“discrete” performs discrete Boosting (default).
“real” performs Real Boost.
“gentle” performs Gentle Boost.</td></tr>
<tr valign="top"><td><code>iter</code></td>
<td>
number of boosting iterations to perform. Default = 50.</td></tr>
<tr valign="top"><td><code>nu</code></td>
<td>
shrinkage parameter for boosting, default taken as 1.</td></tr>
<tr valign="top"><td><code>bag.frac</code></td>
<td>
sampling fraction for samples taken out-of-bag. This allows one
to use random permutation which improves performance.</td></tr>
<tr valign="top"><td><code>model.coef</code></td>
<td>
flag to use stageweights in boosting. If FALSE then the procedure
corresponds to epsilon-boosting.</td></tr>
<tr valign="top"><td><code>bag.shift</code></td>
<td>
flag to determine whether the stageweights should go to
one as nu goes to zero. This only makes since if bag.frac
is small. The rationale behind this parameter is discussed in
(Culp et al., 2006).</td></tr>
<tr valign="top"><td><code>max.iter</code></td>
<td>
number of iterations to perform in the newton step to determine
the coeficient.</td></tr>
<tr valign="top"><td><code>delta</code></td>
<td>
</td></tr>
<tr valign="top"><td><code>verbose</code></td>
<td>
print the number of iterations necessary for convergence of a coeficient.</td></tr>
<tr valign="top"><td><code>formula</code></td>
<td>
a symbolic description of the model to be fit.</td></tr>
<tr valign="top"><td><code>data</code></td>
<td>
an optional data frame containing the variables in the model.</td></tr>
<tr valign="top"><td><code>subset</code></td>
<td>
an optional vector specifying a subset of observations to be
used in the fitting process.</td></tr>
<tr valign="top"><td><code>na.action</code></td>
<td>
a function that indicates how to process ‘NA’ values. Default=na.rpart.</td></tr>
<tr valign="top"><td><code>...</code></td>
<td>
arguments passed to <code>rpart.control</code>. For stumps, use <code>rpart.control(maxdepth=1,cp=-1,minsplit=0,xval=0)</code>.
<code>maxdepth</code> controls the depth of trees, and <code>cp</code>
controls the complexity of trees. The priors should also
be fixed through the parms argument as discussed in the
second reference.</td></tr>
</table>
<h3>Details</h3>
<p>
This function directly follows the algorithms listed in <EM>“Additive Logistic
Regression: A Statistical View of Boosting”</EM>.
</p>
<p>
When using usage ‘ada(x,y)’:
x data can take the form data.frame or as.matrix.
y data can take form data.frame, as.factor, as.matrix, as.array, or as.table.
missing values must be removed from the data prior to execution.
</p>
<p>
When using usage ‘ada(y~.)’:
data must be in a data frame. Response can have factor or numeric values.
missing values can be present in the descriptor data, whenever
na.action is set to any option other than na.pass.
</p>
<p>
After the model is fit, ‘ada’ prints
a summary of the function call,
the method used for boosting,
the number of iterations,
the final confusion matrix (observed classification vs predicted classification;
labels for classes are same as in response),
the error for the training set, and testing, training , and kappa estimates of the
appropriate number of iterations.
</p>
<p>
A summary of this information can also be obtained with the command ‘print(x)’.
</p>
<p>
Corresponding functions (Use help with summary.ada, predict.ada, ...
varplot for additional information on these commands):
</p>
<p>
summary : function to print a summary of the original function call, method
used for boosting, number of iterations, final confusion matrix,
accuracy, and kappa statistic (a measure of agreement between
the observed classification and predicted classification).
‘summary’ can be used for training, testing, or
validation data.
</p>
<p>
predict : function to predict the response for any data set (train,
test, or validation)
</p>
<p>
plot : function to plot performance of the algorithm across boosting iterations.
Default plot is iteration number (x-axis) versus prediction error (y-axis) for
the data set used to build the model. Function can also simultaneously
produce an error plot for an external test set and a kappa plot for training and
test sets.
</p>
<p>
pairs : function to produce pairwise plots of descriptors. Descriptors are arranged by
decreasing frequency of selection by boosting (upper left = most frequently chosen).
The color of the marker in the plot represents class membership; the Size of the marker
represents predicted class probability. The larger the marker, the higher the
probability of classification.
</p>
<p>
varplot : plot of variables ordered by the variable importance measure (based on improvement).
</p>
<p>
addtest : add a testing data set to the <code>ada</code> object, therefore the testing errors only have to
be computed once.
</p>
<p>
update : add more trees to the <code>ada</code> object.
</p>
<h3>Value</h3>
<table summary="R argblock">
<tr valign="top"><td><code>model</code></td>
<td>
The following items are the different components created by the algorithms:
trees: ensamble of rpart trees used to fit the model
alpha: the weights of the trees used in the final aggregate model (AdaBoost only;
see references for more information)
F : F[[1]] corresponds to the training sum, F[[2]]], ... corresponds to
testing sums.
errs : matrix of errs, training, kappa, testing 1, kappa 1, ...
lw : last weights calculated, used by update routine
</td></tr>
<tr valign="top"><td><code>fit</code></td>
<td>
The predicted classification for each observation in the orginal level of the response.
</td></tr>
<tr valign="top"><td><code>call</code></td>
<td>
The function call.
</td></tr>
<tr valign="top"><td><code>nu</code></td>
<td>
shrinakge parameter</td></tr>
<tr valign="top"><td><code>type</code></td>
<td>
The type of adaboost performed: ‘discrete’, ‘real’, ‘logit’, and ‘gentle’.
</td></tr>
<tr valign="top"><td><code>confusion</code></td>
<td>
The confusion matrix (True value vs. Predicted value) for the training data.
</td></tr>
<tr valign="top"><td><code>iter</code></td>
<td>
The number of boosting iterations that were performed.
</td></tr>
<tr valign="top"><td><code>actual</code></td>
<td>
The original response vector.
</td></tr>
</table>
<h3>Warnings</h3>
<p>
For LogitBoost and Gentle Boost, under certain circumstances, the
methods will fail to classify the data into more than one category.
If this occurs, try modifying the rpart.control options such as
‘minsplit’, ‘cp’, and ‘maxdepth’.
</p>
<p>
‘ada’ does not currently handle multiclass problems. However, there
is an example in (Culp et al., 2006) that shows how to use this code
in that setting. Plots and other functions are not set up for this analysis.
</p>
<h3>Author(s)</h3>
<p>
Mark Culp, University of Michigan
Kjell Johnson, Pfizer, Inc.
George Michailidis, University of Michigan
</p>
<p>
Special thanks goes to:
Zhiguang Qian, Georgia Tech University
Greg Warnes, Pfizer, Inc.
</p>
<h3>References</h3>
<p>
Friedman, J. (1999). <EM>Greedy Function Approximation: A Gradient Boosting Machine.</EM>
Technical Report, Department of Statistics, Standford University.
</p>
<p>
Friedman, J., Hastie, T., and Tibshirani, R. (2000). <EM>Additive Logistic Regression:
A statistical view of boosting</EM>. Annals of Statistics, 28(2), 337-374.
</p>
<p>
Friedman, J. (2002). <EM>Stochastic Gradient Boosting</EM>.
Coputational Statistics & Data Analysis 38.
</p>
<p>
Culp, M., Johnson, K., Michailidis, G. (2006). <EM>ada: an R Package
for Boosting</EM> Journal of Statistical Software.
</p>
<h3>See Also</h3>
<p>
<code><a href="print.ada.html">print.ada</a></code>,<code><a href="summary.ada.html">summary.ada</a></code>,<code><a href="predict.ada.html">predict.ada</a></code>
<code><a href="plot.ada.html">plot.ada</a></code>,<code><a href="pairs.ada.html">pairs.ada</a></code>,<code><a href="update.ada.html">update.ada</a></code>
<code><a href="addtest.html">addtest</a></code>
</p>
<h3>Examples</h3>
<pre>
## fit discrete ada boost to a simple example
data(iris)
##drop setosa
iris[iris$Species!="setosa",]->iris
##set up testing and training data (60% for training)
n<-dim(iris)[1]
trind<-sample(1:n,floor(.6*n),FALSE)
teind<-setdiff(1:n,trind)
iris[,5]<- as.factor((levels(iris[,5])[2:3])[as.numeric(iris[,5])-1])
##fit 8-split trees
gdis<-ada(Species~.,data=iris[trind,],iter=20,nu=1,type="discrete")
##add testing data set
gdis=addtest(gdis,iris[teind,-5],iris[teind,5])
##plot gdis
plot(gdis,TRUE,TRUE)
##variable selection plot
varplot(gdis)
##pairwise plot
pairs(gdis,iris[trind,-5],maxvar=2)
##for many more examples refer to reference (Culp et al., 2006)
</pre>
<hr><div align="center">[Package <em>ada</em> version 2.0-1 <a href="00Index.html">Index]</a></div>
</body></html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -