本文整理汇总了Java中weka.core.Attribute.isNumeric方法的典型用法代码示例。如果您正苦于以下问题:Java Attribute.isNumeric方法的具体用法?Java Attribute.isNumeric怎么用?Java Attribute.isNumeric使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weka.core.Attribute
的用法示例。
在下文中一共展示了Attribute.isNumeric方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: initialiseGaussianDistributionForNumericAttribute
import weka.core.Attribute; //导入方法依赖的package包/类
private Map<Attribute, Map<Double, NormalDistribution>> initialiseGaussianDistributionForNumericAttribute(Instance instanceInfo, ArrayList<Instance> instancesList){
Map<Attribute, Map<Double, NormalDistribution>> numericAttributeClassGaussDistributions = new HashMap<>();
// go through each numeric attibute
for (Attribute attribute : Collections.list(instanceInfo.enumerateAttributes())) {
// check whether the attribute is numeric
if(attribute.isNumeric()){
// for each class label
HashMap<Double, NormalDistribution> classLabelDistribution = new HashMap<>();
for (int classLabelNo = 0; classLabelNo < instanceInfo.numClasses(); classLabelNo++) {
// go through all instance in the dataset to create normal distribution
SummaryStatistics summaryStatistics = new SummaryStatistics();
for (Instance instance : instancesList) {
summaryStatistics.addValue(instance.value(attribute));
}
// create normal distribution for this attribute with corresponding
// class label
NormalDistribution normalDistribution = new NormalDistribution(
summaryStatistics.getMean(),
summaryStatistics.getStandardDeviation());
// map to hold classLabel and distribution
classLabelDistribution.put((double) classLabelNo, normalDistribution);
}
// put it into the map
numericAttributeClassGaussDistributions.put(attribute, classLabelDistribution);
}
}
return numericAttributeClassGaussDistributions;
}
示例2: Term
import weka.core.Attribute; //导入方法依赖的package包/类
/**
* Constructor for numeric attribute, each numeric attribute is
* represented by a term in form of x <= value < y
*
* @param attributeIn
* @param attributeIndexIn
*/
public Term(Attribute attributeIn, double attributeIndexIn){
attribute = attributeIn;
setAttributeIndex(attributeIndexIn);
// set type of the attribute
if(attributeIn.isNumeric()){
attributeType = TypeNumeric;
}else{
attributeType = 0;
}
}
示例3: getMultiDim
import weka.core.Attribute; //导入方法依赖的package包/类
/**
* Assumptions:(1)Numberic is continuous and has lower/upper bounds; (2) Nominals have domains permutable
*
* @param useMid true if to use the middle point of a subdomain, false if to use a random point within a subdomain
*/
private static Instances getMultiDim(ArrayList<Attribute> atts, int sampleSetSize, boolean useMid){
int L = Math.min(7, Math.max(sampleSetSize, atts.size()));//7 is chosen for no special reason
double maxMinDist = 0, crntMinDist;//work as the threshold to select the sample set
ArrayList<Integer>[] setWithMaxMinDist=null;
//generate L sets of sampleSetSize points
for(int i=0; i<L; i++){
ArrayList<Integer>[] setPerm = generateOneSampleSet(sampleSetSize, atts.size());
//compute the minimum distance minDist between any sample pair for each set
crntMinDist = minDistForSet(setPerm);
//select the set with the maximum minDist
if(crntMinDist>maxMinDist){
setWithMaxMinDist = setPerm;
maxMinDist = crntMinDist;
}
}
//generate and output the set with the maximum minDist as the result
//first, divide the domain of each attribute into sampleSetSize equal subdomain
double[][] bounds = new double[atts.size()][sampleSetSize+1];//sampleSetSize+1 to include the lower and upper bounds
Iterator<Attribute> itr = atts.iterator();
Attribute crntAttr;
double pace;
for(int i=0;i<bounds.length;i++){
crntAttr = itr.next();
if(crntAttr.isNumeric()){
bounds[i][0] = crntAttr.getLowerNumericBound();
bounds[i][sampleSetSize] = crntAttr.getUpperNumericBound();
pace = (crntAttr.getUpperNumericBound() - crntAttr.getLowerNumericBound())/sampleSetSize;
for(int j=1;j<sampleSetSize;j++){
bounds[i][j] = bounds[i][j-1] + pace;
}
}else{//crntAttr.isNominal()
if(crntAttr.numValues()>=sampleSetSize){
//randomly select among the set
for(int j=0;j<=sampleSetSize;j++)
bounds[i][j] = uniRand.nextInt(crntAttr.numValues());//the position of one of the nominal values
}else{
//first round-robin
int lastPart = sampleSetSize%crntAttr.numValues();
for(int j=0;j<sampleSetSize-lastPart;j++)
bounds[i][j] = j%crntAttr.numValues();
//then randomly select
for(int j=sampleSetSize-lastPart;j<=sampleSetSize;j++)
bounds[i][j] = uniRand.nextInt(crntAttr.numValues());
}
}//nominal attribute
}//get all subdomains
//second, generate the set according to setWithMaxMinDist
Instances data = new Instances("InitialSetByLHS", atts, sampleSetSize);
for(int i=0;i<sampleSetSize;i++){
double[] vals = new double[atts.size()];
for(int j=0;j<vals.length;j++){
if(atts.get(j).isNumeric()){
vals[j] = useMid?
(bounds[j][setWithMaxMinDist[j].get(i)]+bounds[j][setWithMaxMinDist[j].get(i)+1])/2:
bounds[j][setWithMaxMinDist[j].get(i)]+
(
(bounds[j][setWithMaxMinDist[j].get(i)+1]-bounds[j][setWithMaxMinDist[j].get(i)])*uniRand.nextDouble()
);
}else{//isNominal()
vals[j] = bounds[j][setWithMaxMinDist[j].get(i)];
}
}
data.add(new DenseInstance(1.0, vals));
}
//third, return the generated points
return data;
}
示例4: getMultiDim
import weka.core.Attribute; //导入方法依赖的package包/类
/**
* Assumptions:(1)Numberic is continuous and has lower/upper bounds; (2) Nominals have domains permutable
*
* @param useMid true if to use the middle point of a subdomain, false if to use a random point within a subdomain
*/
public static Instances getMultiDim(ArrayList<Attribute> atts, int sampleSetSize, boolean useMid){
int L = Math.min(7, Math.max(sampleSetSize, atts.size()));//7 is chosen for no special reason
double maxMinDist = 0, crntMinDist;//work as the threshold to select the sample set
ArrayList<Integer>[] setWithMaxMinDist=null;
//generate L sets of sampleSetSize points
for(int i=0; i<L; i++){
ArrayList<Integer>[] setPerm = generateOneSampleSet(sampleSetSize, atts.size());
//compute the minimum distance minDist between any sample pair for each set
crntMinDist = minDistForSet(setPerm);
//select the set with the maximum minDist
if(crntMinDist>maxMinDist){
setWithMaxMinDist = setPerm;
maxMinDist = crntMinDist;
}
}
//generate and output the set with the maximum minDist as the result
//first, divide the domain of each attribute into sampleSetSize equal subdomain
double[][] bounds = new double[atts.size()][sampleSetSize+1];//sampleSetSize+1 to include the lower and upper bounds
Iterator<Attribute> itr = atts.iterator();
Attribute crntAttr;
double pace;
for(int i=0;i<bounds.length;i++){
crntAttr = itr.next();
if(crntAttr.isNumeric()){
bounds[i][0] = crntAttr.getLowerNumericBound();
bounds[i][sampleSetSize] = crntAttr.getUpperNumericBound();
pace = (crntAttr.getUpperNumericBound() - crntAttr.getLowerNumericBound())/sampleSetSize;
for(int j=1;j<sampleSetSize;j++){
bounds[i][j] = bounds[i][j-1] + pace;
}
}else{//crntAttr.isNominal()
if(crntAttr.numValues()>=sampleSetSize){
//randomly select among the set
for(int j=0;j<=sampleSetSize;j++)
bounds[i][j] = uniRand.nextInt(crntAttr.numValues());//the position of one of the nominal values
}else{
//first round-robin
int lastPart = sampleSetSize%crntAttr.numValues();
for(int j=0;j<sampleSetSize-lastPart;j++)
bounds[i][j] = j%crntAttr.numValues();
//then randomly select
for(int j=sampleSetSize-lastPart;j<=sampleSetSize;j++)
bounds[i][j] = uniRand.nextInt(crntAttr.numValues());
}
}//nominal attribute
}//get all subdomains
//second, generate the set according to setWithMaxMinDist
Instances data = new Instances("InitialSetByLHS", atts, sampleSetSize);
for(int i=0;i<sampleSetSize;i++){
double[] vals = new double[atts.size()];
for(int j=0;j<vals.length;j++){
if(atts.get(j).isNumeric()){
vals[j] = useMid?
(bounds[j][setWithMaxMinDist[j].get(i)]+bounds[j][setWithMaxMinDist[j].get(i)+1])/2:
bounds[j][setWithMaxMinDist[j].get(i)]+
(
(bounds[j][setWithMaxMinDist[j].get(i)+1]-bounds[j][setWithMaxMinDist[j].get(i)])*uniRand.nextDouble()
);
}else{//isNominal()
vals[j] = bounds[j][setWithMaxMinDist[j].get(i)];
}
}
data.add(new DenseInstance(1.0, vals));
}
//third, return the generated points
return data;
}