Package org.apache.spark.ml.regression
Class GeneralizedLinearRegression
Object
org.apache.spark.ml.PipelineStage
org.apache.spark.ml.Estimator<M>
org.apache.spark.ml.Predictor<FeaturesType,Learner,M>
org.apache.spark.ml.regression.Regressor<Vector,GeneralizedLinearRegression,GeneralizedLinearRegressionModel>
org.apache.spark.ml.regression.GeneralizedLinearRegression
- All Implemented Interfaces:
Serializable,org.apache.spark.internal.Logging,Params,HasAggregationDepth,HasFeaturesCol,HasFitIntercept,HasLabelCol,HasMaxIter,HasPredictionCol,HasRegParam,HasSolver,HasTol,HasWeightCol,org.apache.spark.ml.PredictorParams,org.apache.spark.ml.regression.GeneralizedLinearRegressionBase,DefaultParamsWritable,Identifiable,MLWritable
public class GeneralizedLinearRegression
extends Regressor<Vector,GeneralizedLinearRegression,GeneralizedLinearRegressionModel>
implements org.apache.spark.ml.regression.GeneralizedLinearRegressionBase, DefaultParamsWritable, org.apache.spark.internal.Logging
Fit a Generalized Linear Model
(see
Generalized linear model (Wikipedia))
specified by giving a symbolic description of the linear
predictor (link function) and a description of the error distribution (family).
It supports "gaussian", "binomial", "poisson", "gamma" and "tweedie" as family.
Valid link functions for each family is listed below. The first link function of each family
is the default one.
- "gaussian" : "identity", "log", "inverse"
- "binomial" : "logit", "probit", "cloglog"
- "poisson" : "log", "identity", "sqrt"
- "gamma" : "inverse", "identity", "log"
- "tweedie" : power link function specified through "linkPower". The default link power in
the tweedie family is 1 - variancePower.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBinomial exponential family distribution.static classstatic classstatic classstatic classGamma exponential family distribution.static classGaussian exponential family distribution.static classstatic classstatic classstatic classstatic classstatic classPoisson exponential family distribution.static classstatic classstatic classNested classes/interfaces inherited from interface org.apache.spark.internal.Logging
org.apache.spark.internal.Logging.LogStringContext, org.apache.spark.internal.Logging.SparkShellLoggingFilter -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal IntParamParam for suggested depth for treeAggregate (>= 2).Creates a copy of this instance with the same UID and some extra params.longestimateModelSize(Dataset<?> dataset) family()final BooleanParamParam for whether to fit an intercept term.link()final DoubleParamstatic GeneralizedLinearRegressionfinal IntParammaxIter()Param for maximum number of iterations (>= 0).static MLReader<T>read()final DoubleParamregParam()Param for regularization parameter (>= 0).setAggregationDepth(int value) Sets the value of paramfamily().setFitIntercept(boolean value) Sets if we should fit the intercept.Sets the value of paramlink().setLinkPower(double value) Sets the value of paramlinkPower().setLinkPredictionCol(String value) Sets the link prediction (linear predictor) column name.setMaxIter(int value) Sets the maximum number of iterations (applicable for solver "irls").setOffsetCol(String value) Sets the value of paramoffsetCol().setRegParam(double value) Sets the regularization parameter for L2 regularization.Sets the solver algorithm used for optimization.setTol(double value) Sets the convergence tolerance of iterations.setVariancePower(double value) Sets the value of paramvariancePower().setWeightCol(String value) Sets the value of paramweightCol().solver()Param for the solver algorithm for optimization.final DoubleParamtol()Param for the convergence tolerance for iterative algorithms (>= 0).uid()An immutable unique ID for the object and its derivatives.final DoubleParamParam for weight column name.Methods inherited from class org.apache.spark.ml.Predictor
featuresCol, fit, labelCol, predictionCol, setFeaturesCol, setLabelCol, setPredictionCol, transformSchemaMethods inherited from class org.apache.spark.ml.PipelineStage
paramsMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.spark.ml.util.DefaultParamsWritable
writeMethods inherited from interface org.apache.spark.ml.regression.GeneralizedLinearRegressionBase
getFamily, getLink, getLinkPower, getLinkPredictionCol, getOffsetCol, getVariancePower, hasLinkPredictionCol, hasOffsetCol, hasWeightCol, org$apache$spark$ml$regression$GeneralizedLinearRegressionBase$_setter_$family_$eq, org$apache$spark$ml$regression$GeneralizedLinearRegressionBase$_setter_$link_$eq, org$apache$spark$ml$regression$GeneralizedLinearRegressionBase$_setter_$linkPower_$eq, org$apache$spark$ml$regression$GeneralizedLinearRegressionBase$_setter_$linkPredictionCol_$eq, org$apache$spark$ml$regression$GeneralizedLinearRegressionBase$_setter_$offsetCol_$eq, org$apache$spark$ml$regression$GeneralizedLinearRegressionBase$_setter_$solver_$eq, org$apache$spark$ml$regression$GeneralizedLinearRegressionBase$_setter_$variancePower_$eq, validateAndTransformSchemaMethods inherited from interface org.apache.spark.ml.param.shared.HasAggregationDepth
getAggregationDepthMethods inherited from interface org.apache.spark.ml.param.shared.HasFeaturesCol
featuresCol, getFeaturesColMethods inherited from interface org.apache.spark.ml.param.shared.HasFitIntercept
getFitInterceptMethods inherited from interface org.apache.spark.ml.param.shared.HasLabelCol
getLabelCol, labelColMethods inherited from interface org.apache.spark.ml.param.shared.HasMaxIter
getMaxIterMethods inherited from interface org.apache.spark.ml.param.shared.HasPredictionCol
getPredictionCol, predictionColMethods inherited from interface org.apache.spark.ml.param.shared.HasRegParam
getRegParamMethods inherited from interface org.apache.spark.ml.param.shared.HasWeightCol
getWeightColMethods inherited from interface org.apache.spark.ml.util.Identifiable
toStringMethods inherited from interface org.apache.spark.internal.Logging
initializeForcefully, initializeLogIfNecessary, initializeLogIfNecessary, initializeLogIfNecessary$default$2, isTraceEnabled, log, logBasedOnLevel, logDebug, logDebug, logDebug, logDebug, logError, logError, logError, logError, logInfo, logInfo, logInfo, logInfo, logName, LogStringContext, logTrace, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, logWarning, MDC, org$apache$spark$internal$Logging$$log_, org$apache$spark$internal$Logging$$log__$eq, withLogContextMethods inherited from interface org.apache.spark.ml.util.MLWritable
saveMethods inherited from interface org.apache.spark.ml.param.Params
clear, copyValues, defaultCopy, defaultParamMap, estimateMatadataSize, explainParam, explainParams, extractParamMap, extractParamMap, get, getDefault, getOrDefault, getParam, hasDefault, hasParam, isDefined, isSet, onParamChange, paramMap, params, set, set, set, setDefault, setDefault, shouldOwn
-
Constructor Details
-
GeneralizedLinearRegression
-
GeneralizedLinearRegression
public GeneralizedLinearRegression()
-
-
Method Details
-
load
-
read
-
family
- Specified by:
familyin interfaceorg.apache.spark.ml.regression.GeneralizedLinearRegressionBase
-
variancePower
- Specified by:
variancePowerin interfaceorg.apache.spark.ml.regression.GeneralizedLinearRegressionBase
-
link
- Specified by:
linkin interfaceorg.apache.spark.ml.regression.GeneralizedLinearRegressionBase
-
linkPower
- Specified by:
linkPowerin interfaceorg.apache.spark.ml.regression.GeneralizedLinearRegressionBase
-
linkPredictionCol
- Specified by:
linkPredictionColin interfaceorg.apache.spark.ml.regression.GeneralizedLinearRegressionBase
-
offsetCol
- Specified by:
offsetColin interfaceorg.apache.spark.ml.regression.GeneralizedLinearRegressionBase
-
solver
Description copied from interface:HasSolverParam for the solver algorithm for optimization. -
aggregationDepth
Description copied from interface:HasAggregationDepthParam for suggested depth for treeAggregate (>= 2).- Specified by:
aggregationDepthin interfaceHasAggregationDepth- Returns:
- (undocumented)
-
weightCol
Description copied from interface:HasWeightColParam for weight column name. If this is not set or empty, we treat all instance weights as 1.0.- Specified by:
weightColin interfaceHasWeightCol- Returns:
- (undocumented)
-
regParam
Description copied from interface:HasRegParamParam for regularization parameter (>= 0).- Specified by:
regParamin interfaceHasRegParam- Returns:
- (undocumented)
-
tol
Description copied from interface:HasTolParam for the convergence tolerance for iterative algorithms (>= 0). -
maxIter
Description copied from interface:HasMaxIterParam for maximum number of iterations (>= 0).- Specified by:
maxIterin interfaceHasMaxIter- Returns:
- (undocumented)
-
fitIntercept
Description copied from interface:HasFitInterceptParam for whether to fit an intercept term.- Specified by:
fitInterceptin interfaceHasFitIntercept- Returns:
- (undocumented)
-
uid
Description copied from interface:IdentifiableAn immutable unique ID for the object and its derivatives.- Specified by:
uidin interfaceIdentifiable- Returns:
- (undocumented)
-
setFamily
Sets the value of paramfamily(). Default is "gaussian".- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setVariancePower
Sets the value of paramvariancePower(). Used only when family is "tweedie". Default is 0.0, which corresponds to the "gaussian" family.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setLinkPower
Sets the value of paramlinkPower(). Used only when family is "tweedie".- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setLink
Sets the value of paramlink(). Used only when family is not "tweedie".- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setFitIntercept
Sets if we should fit the intercept. Default is true.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setMaxIter
Sets the maximum number of iterations (applicable for solver "irls"). Default is 25.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setTol
Sets the convergence tolerance of iterations. Smaller value will lead to higher accuracy with the cost of more iterations. Default is 1E-6.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setRegParam
Sets the regularization parameter for L2 regularization. The regularization term is$$ 0.5 * regParam * L2norm(coefficients)^2 $$
Default is 0.0.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setWeightCol
Sets the value of paramweightCol(). If this is not set or empty, we treat all instance weights as 1.0. Default is not set, so all instances have weight one. In the Binomial family, weights correspond to number of trials and should be integer. Non-integer weights are rounded to integer in AIC calculation.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setOffsetCol
Sets the value of paramoffsetCol(). If this is not set or empty, we treat all instance offsets as 0.0. Default is not set, so all instances have offset 0.0.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setSolver
Sets the solver algorithm used for optimization. Currently only supports "irls" which is also the default solver.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setLinkPredictionCol
Sets the link prediction (linear predictor) column name.- Parameters:
value- (undocumented)- Returns:
- (undocumented)
-
setAggregationDepth
-
copy
Description copied from interface:ParamsCreates a copy of this instance with the same UID and some extra params. Subclasses should implement this method and set the return type properly. SeedefaultCopy().- Specified by:
copyin interfaceParams- Specified by:
copyin classPredictor<Vector,GeneralizedLinearRegression, GeneralizedLinearRegressionModel> - Parameters:
extra- (undocumented)- Returns:
- (undocumented)
-
estimateModelSize
-