zoukankan      html  css  js  c++  java
  • Python+Spark2.0+hadoop学习笔记——Python Spark MLlib Decision Tree MultiClassification多分类

    二分类分类器大多可以用来进行开展多分类的问题,这篇以决策树为例来介绍Spark里MLlib的多分类问题实例,在这一篇中使用的评价指标是Accuracy。

    第一步:导入库函数

    import sys
    from time import time
    import pandas as pd
    import matplotlib.pyplot as plt
    from pyspark import SparkConf, SparkContext
    from pyspark.mllib.tree import DecisionTree
    from pyspark.mllib.regression import LabeledPoint
    from pyspark.mllib.evaluation import MulticlassMetrics

    第二步:数据准备

     def get_mapping(rdd, idx):

    return rdd.map(lambda fields: fields[idx]).distinct().zipWithIndex().collectAsMap()

    def extract_label(record):
    label=(record[-1])
    return float(label)-1

    def convert_float(x):
    return (0 if x=="?" else float(x))

    def extract_features(record,featureEnd):
    numericalFeatures=[convert_float(field) for field in record[0: featureEnd]]
    return numericalFeatures

    def PrepareData(sc):
    print("Data loading...")
    rawData = sc.textFile(Path+"data/covtype.data")
    print("The number of data:" + str(rawData.count()))
    lines = rawData.map(lambda x: x.split(","))
    labelpointRDD = lines.map(lambda r: LabeledPoint(
    extract_label(r),
    extract_features(r,len(r) - 1)))
    (trainData, validationData, testData) = labelpointRDD.randomSplit([8, 1, 1])
    print("trainData:" + str(trainData.count())+
    "validationData:" + str(validationData.count()) +
    "testData:" + str(testData.count()))
    print(labelpointRDD.first())
    return (trainData, validationData, testData)

    第三步:对模型进行训练

    def PredictData(sc,model):
    rawData = sc.textFile(Path+"data/covtype.data")
    print("The number of data:" + str(rawData.count()))
    print("RDD...")
    lines = rawData.map(lambda x: x.split(","))
    labelpointRDD = lines.map(lambda r: LabeledPoint(
    extract_label(r), extract_features(r,len(r) - 1)))
    for lp in labelpointRDD.take(100):
    predict = model.predict(lp.features)
    label=lp.label
    features=lp.features
    result = ("True" if (label == predict) else "False")
    print("Elevation:" + str(features[0]) +
    "Aspect:" + str(features[1]) +
    "Slope:" + str(features[2]) +
    "Vertical_Distance_To_Hydrology:" + str(features[3]) +
    "Horizontal_Distance_To_Roadways:" + str(features[4]) +
    "Hillshade_9am:" + str(features[5]) +
    "Predict:" + str(predict) +
    "Actual:" + str(label) + "Result:" + result)

    第四步:对模型进行评估(使用Accuracy)进行评估

    def evaluateModel(model, validationData):
    score = model.predict(validationData.map(lambda p: p.features))
    scoreAndLabels=score.zip(validationData.map(lambda p: p.label))
    metrics = MulticlassMetrics(scoreAndLabels)
    accuracy = metrics.accuracy
    return( accuracy)

    def trainEvaluateModel(trainData,validationData,
    impurityParm, maxDepthParm, maxBinsParm):
    startTime = time()
    model = DecisionTree.trainClassifier(trainData,
    numClasses=7, categoricalFeaturesInfo={},
    impurity=impurityParm,
    maxDepth=maxDepthParm,
    maxBins=maxBinsParm)
    accuracy = evaluateModel(model, validationData)
    duration = time() - startTime
    print ( " impurityParm= %s"%impurityParm+
    " maxDepthParm= %s"%maxDepthParm+
    " maxBinsParm = %d."%maxBinsParm +
    "Time=%d"%duration +
    " Accuracy = %f " % accuracy )
    return (accuracy,duration, impurityParm, maxDepthParm, maxBinsParm,model)

    def evalParameter(trainData, validationData, evaparm,impurityList, maxDepthList, maxBinsList):
    metrics = [trainEvaluateModel(trainData, validationData, impurity,numIter, maxBins )
    for impurity in impurityList for numIter in maxDepthList for maxBins in maxBinsList ]
    if evaparm=="impurity":
    IndexList=impurityList[:]
    elif evaparm=="maxDepth":
    IndexList=maxDepthList[:]
    elif evaparm=="maxBins":
    IndexList=maxBinsList[:]
    df = pd.DataFrame(metrics,index=IndexList,
    columns=['accuracy', 'duration','impurity', 'maxDepth', 'maxBins','model'])
    showchart(df,evaparm,'accuracy','duration',0.6,1.0 )

    def showchart(df,evalparm ,barData,lineData,yMin,yMax):
    ax = df[barData].plot(kind='bar', titl =evalparm,figsize=(10,6),legend=True, fontsize=12)
    ax.set_xlabel(evalparm,fontsize=12)
    ax.set_ylim([yMin,yMax])
    ax.set_ylabel(barData,fontsize=12)
    ax2 = ax.twinx()
    ax2.plot(df[[lineData ]].values, linestyle='-', marker='o', linewidth=2.0,color='r')
    plt.show()

    def evalAllParameter(training_RDD, validation_RDD, impurityList, maxDepthList, maxBinsList):
    metrics = [trainEvaluateModel(trainData, validationData, impurity,numIter, maxBins )
    for impurity in impurityList for numIter in maxDepthList for maxBins in maxBinsList ]
    Smetrics = sorted(metrics, key=lambda k: k[0], reverse=True)
    bestParameter=Smetrics[0]
    print("Best parameter: impurity:" + str(bestParameter[2]) +
    " ,maxDepth:" + str(bestParameter[3]) +
    " ,maxBins:" + str(bestParameter[4]) +
    " ,Accuracy = " + str(bestParameter[0]))
    return bestParameter[5]

    def parametersEval(training_RDD, validation_RDD):
    print("Impurity")
    evalParameter(trainData, validationData,"impurity",
    impurityList=["gini", "entropy"],
    maxDepthList=[10],
    maxBinsList=[10 ])

    print("MaxDepth")
    evalParameter(trainData, validationData,"maxDepth",
    impurityList=["gini"],
    maxDepthList=[3, 5, 10, 15, 20, 25],
    maxBinsList=[10])

    print("MaxBins")
    evalParameter(trainData, validationData,"maxBins",
    impurityList=["gini"],
    maxDepthList =[10],
    maxBinsList=[3, 5, 10, 50, 100, 200 ])

    第五步:Spark相关设置

    def SetLogger( sc ):
    logger = sc._jvm.org.apache.log4j
    logger.LogManager.getLogger("org"). setLevel( logger.Level.ERROR )
    logger.LogManager.getLogger("akka").setLevel( logger.Level.ERROR )
    logger.LogManager.getRootLogger().setLevel(logger.Level.ERROR)

    def SetPath(sc):
    global Path
    if sc.master[0:5]=="local" :
    Path="file:/home/jorlinlee/pythonsparkexample/PythonProject/"
    else:
    Path="hdfs://master:9000/user/jorlinlee/"

    def CreateSparkContext():
    sparkConf = SparkConf()
    .setAppName("MDT")
    .set("spark.ui.showConsoleProgress", "false")
    sc = SparkContext(conf = sparkConf)
    print ("master="+sc.master)
    SetLogger(sc)
    SetPath(sc)
    return (sc)

    sc.stop()

    第六步:运行主程序

    if __name__ == "__main__":
    print("MDT")
    sc=CreateSparkContext()
    print("Preparing")
    (trainData, validationData, testData) =PrepareData(sc)
    trainData.persist(); validationData.persist(); testData.persist()
    print("Evaluating")
    (AUC,duration, impurityParm, maxDepthParm, maxBinsParm,model)=
    trainEvaluateModel(trainData, validationData, "entropy", 15,50)
    if (len(sys.argv) == 2) and (sys.argv[1]=="-e"):
    parametersEval(trainData, validationData)
    elif (len(sys.argv) == 2) and (sys.argv[1]=="-a"):
    print("Best parameters")
    model=evalAllParameter(trainData, validationData,
    ["gini", "entropy"],
    [3, 5, 10, 15],
    [3, 5, 10, 50 ])
    print("Test")
    accuracy = evaluateModel(model, testData)
    print("Accuracy:" + str(accuracy))
    print("Predict")
    PredictData(sc, model)

    结果:

    Elevation:2596.0Aspect:51.0Slope:3.0Vertical_Distance_To_Hydrology:258.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:510.0Predict:4.0Actual:4.0Result:True
    Elevation:2590.0Aspect:56.0Slope:2.0Vertical_Distance_To_Hydrology:212.0Horizontal_Distance_To_Roadways:-6.0Hillshade_9am:390.0Predict:4.0Actual:4.0Result:True
    Elevation:2804.0Aspect:139.0Slope:9.0Vertical_Distance_To_Hydrology:268.0Horizontal_Distance_To_Roadways:65.0Hillshade_9am:3180.0Predict:1.0Actual:1.0Result:True
    Elevation:2785.0Aspect:155.0Slope:18.0Vertical_Distance_To_Hydrology:242.0Horizontal_Distance_To_Roadways:118.0Hillshade_9am:3090.0Predict:1.0Actual:1.0Result:True
    Elevation:2595.0Aspect:45.0Slope:2.0Vertical_Distance_To_Hydrology:153.0Horizontal_Distance_To_Roadways:-1.0Hillshade_9am:391.0Predict:4.0Actual:4.0Result:True
    Elevation:2579.0Aspect:132.0Slope:6.0Vertical_Distance_To_Hydrology:300.0Horizontal_Distance_To_Roadways:-15.0Hillshade_9am:67.0Predict:1.0Actual:1.0Result:True
    Elevation:2606.0Aspect:45.0Slope:7.0Vertical_Distance_To_Hydrology:270.0Horizontal_Distance_To_Roadways:5.0Hillshade_9am:633.0Predict:4.0Actual:4.0Result:True
    Elevation:2605.0Aspect:49.0Slope:4.0Vertical_Distance_To_Hydrology:234.0Horizontal_Distance_To_Roadways:7.0Hillshade_9am:573.0Predict:4.0Actual:4.0Result:True
    Elevation:2617.0Aspect:45.0Slope:9.0Vertical_Distance_To_Hydrology:240.0Horizontal_Distance_To_Roadways:56.0Hillshade_9am:666.0Predict:1.0Actual:4.0Result:False
    Elevation:2612.0Aspect:59.0Slope:10.0Vertical_Distance_To_Hydrology:247.0Horizontal_Distance_To_Roadways:11.0Hillshade_9am:636.0Predict:4.0Actual:4.0Result:True
    Elevation:2612.0Aspect:201.0Slope:4.0Vertical_Distance_To_Hydrology:180.0Horizontal_Distance_To_Roadways:51.0Hillshade_9am:735.0Predict:1.0Actual:4.0Result:False
    Elevation:2886.0Aspect:151.0Slope:11.0Vertical_Distance_To_Hydrology:371.0Horizontal_Distance_To_Roadways:26.0Hillshade_9am:5253.0Predict:1.0Actual:1.0Result:True
    Elevation:2742.0Aspect:134.0Slope:22.0Vertical_Distance_To_Hydrology:150.0Horizontal_Distance_To_Roadways:69.0Hillshade_9am:3215.0Predict:1.0Actual:1.0Result:True
    Elevation:2609.0Aspect:214.0Slope:7.0Vertical_Distance_To_Hydrology:150.0Horizontal_Distance_To_Roadways:46.0Hillshade_9am:771.0Predict:1.0Actual:4.0Result:False
    Elevation:2503.0Aspect:157.0Slope:4.0Vertical_Distance_To_Hydrology:67.0Horizontal_Distance_To_Roadways:4.0Hillshade_9am:674.0Predict:1.0Actual:4.0Result:False
    Elevation:2495.0Aspect:51.0Slope:7.0Vertical_Distance_To_Hydrology:42.0Horizontal_Distance_To_Roadways:2.0Hillshade_9am:752.0Predict:4.0Actual:4.0Result:True
    Elevation:2610.0Aspect:259.0Slope:1.0Vertical_Distance_To_Hydrology:120.0Horizontal_Distance_To_Roadways:-1.0Hillshade_9am:607.0Predict:1.0Actual:4.0Result:False
    Elevation:2517.0Aspect:72.0Slope:7.0Vertical_Distance_To_Hydrology:85.0Horizontal_Distance_To_Roadways:6.0Hillshade_9am:595.0Predict:4.0Actual:4.0Result:True
    Elevation:2504.0Aspect:0.0Slope:4.0Vertical_Distance_To_Hydrology:95.0Horizontal_Distance_To_Roadways:5.0Hillshade_9am:691.0Predict:4.0Actual:4.0Result:True
    Elevation:2503.0Aspect:38.0Slope:5.0Vertical_Distance_To_Hydrology:85.0Horizontal_Distance_To_Roadways:10.0Hillshade_9am:741.0Predict:4.0Actual:4.0Result:True
    Elevation:2501.0Aspect:71.0Slope:9.0Vertical_Distance_To_Hydrology:60.0Horizontal_Distance_To_Roadways:8.0Hillshade_9am:767.0Predict:4.0Actual:4.0Result:True
    Elevation:2880.0Aspect:209.0Slope:17.0Vertical_Distance_To_Hydrology:216.0Horizontal_Distance_To_Roadways:30.0Hillshade_9am:4986.0Predict:1.0Actual:1.0Result:True
    Elevation:2768.0Aspect:114.0Slope:23.0Vertical_Distance_To_Hydrology:192.0Horizontal_Distance_To_Roadways:82.0Hillshade_9am:3339.0Predict:4.0Actual:4.0Result:True
    Elevation:2511.0Aspect:54.0Slope:8.0Vertical_Distance_To_Hydrology:124.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:638.0Predict:4.0Actual:4.0Result:True
    Elevation:2507.0Aspect:22.0Slope:9.0Vertical_Distance_To_Hydrology:120.0Horizontal_Distance_To_Roadways:14.0Hillshade_9am:732.0Predict:1.0Actual:4.0Result:False
    Elevation:2492.0Aspect:135.0Slope:6.0Vertical_Distance_To_Hydrology:0.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:860.0Predict:4.0Actual:4.0Result:True
    Elevation:2489.0Aspect:163.0Slope:10.0Vertical_Distance_To_Hydrology:30.0Horizontal_Distance_To_Roadways:-4.0Hillshade_9am:849.0Predict:4.0Actual:4.0Result:True
    Elevation:2962.0Aspect:148.0Slope:16.0Vertical_Distance_To_Hydrology:323.0Horizontal_Distance_To_Roadways:23.0Hillshade_9am:5916.0Predict:1.0Actual:1.0Result:True
    Elevation:2811.0Aspect:135.0Slope:1.0Vertical_Distance_To_Hydrology:212.0Horizontal_Distance_To_Roadways:30.0Hillshade_9am:3670.0Predict:1.0Actual:1.0Result:True
    Elevation:2739.0Aspect:117.0Slope:24.0Vertical_Distance_To_Hydrology:127.0Horizontal_Distance_To_Roadways:53.0Hillshade_9am:3281.0Predict:4.0Actual:4.0Result:True
    Elevation:2703.0Aspect:122.0Slope:30.0Vertical_Distance_To_Hydrology:67.0Horizontal_Distance_To_Roadways:27.0Hillshade_9am:3191.0Predict:4.0Actual:4.0Result:True
    Elevation:2522.0Aspect:105.0Slope:7.0Vertical_Distance_To_Hydrology:120.0Horizontal_Distance_To_Roadways:1.0Hillshade_9am:595.0Predict:4.0Actual:4.0Result:True
    Elevation:2519.0Aspect:102.0Slope:6.0Vertical_Distance_To_Hydrology:124.0Horizontal_Distance_To_Roadways:4.0Hillshade_9am:616.0Predict:4.0Actual:4.0Result:True
    Elevation:2516.0Aspect:23.0Slope:6.0Vertical_Distance_To_Hydrology:150.0Horizontal_Distance_To_Roadways:4.0Hillshade_9am:658.0Predict:4.0Actual:4.0Result:True
    Elevation:2515.0Aspect:41.0Slope:9.0Vertical_Distance_To_Hydrology:162.0Horizontal_Distance_To_Roadways:4.0Hillshade_9am:680.0Predict:4.0Actual:4.0Result:True
    Elevation:2900.0Aspect:45.0Slope:19.0Vertical_Distance_To_Hydrology:242.0Horizontal_Distance_To_Roadways:20.0Hillshade_9am:5199.0Predict:1.0Actual:1.0Result:True
    Elevation:2709.0Aspect:125.0Slope:28.0Vertical_Distance_To_Hydrology:67.0Horizontal_Distance_To_Roadways:23.0Hillshade_9am:3224.0Predict:4.0Actual:4.0Result:True
    Elevation:2511.0Aspect:92.0Slope:7.0Vertical_Distance_To_Hydrology:182.0Horizontal_Distance_To_Roadways:18.0Hillshade_9am:722.0Predict:4.0Actual:4.0Result:True
    Elevation:2749.0Aspect:98.0Slope:30.0Vertical_Distance_To_Hydrology:124.0Horizontal_Distance_To_Roadways:53.0Hillshade_9am:3316.0Predict:4.0Actual:4.0Result:True
    Elevation:2686.0Aspect:354.0Slope:12.0Vertical_Distance_To_Hydrology:0.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:3167.0Predict:4.0Actual:4.0Result:True
    Elevation:2699.0Aspect:347.0Slope:3.0Vertical_Distance_To_Hydrology:0.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:2096.0Predict:0.0Actual:0.0Result:True
    Elevation:2570.0Aspect:346.0Slope:2.0Vertical_Distance_To_Hydrology:0.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:331.0Predict:1.0Actual:1.0Result:True
    Elevation:2533.0Aspect:71.0Slope:9.0Vertical_Distance_To_Hydrology:150.0Horizontal_Distance_To_Roadways:-3.0Hillshade_9am:577.0Predict:4.0Actual:4.0Result:True
    Elevation:2703.0Aspect:330.0Slope:27.0Vertical_Distance_To_Hydrology:30.0Horizontal_Distance_To_Roadways:17.0Hillshade_9am:3141.0Predict:4.0Actual:4.0Result:True
    Elevation:2678.0Aspect:128.0Slope:5.0Vertical_Distance_To_Hydrology:95.0Horizontal_Distance_To_Roadways:23.0Hillshade_9am:1660.0Predict:1.0Actual:1.0Result:True
    Elevation:2529.0Aspect:68.0Slope:8.0Vertical_Distance_To_Hydrology:210.0Horizontal_Distance_To_Roadways:-5.0Hillshade_9am:666.0Predict:4.0Actual:4.0Result:True
    Elevation:2524.0Aspect:94.0Slope:7.0Vertical_Distance_To_Hydrology:212.0Horizontal_Distance_To_Roadways:-4.0Hillshade_9am:684.0Predict:1.0Actual:4.0Result:False
    Elevation:2536.0Aspect:99.0Slope:6.0Vertical_Distance_To_Hydrology:234.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:659.0Predict:1.0Actual:4.0Result:False
    Elevation:2498.0Aspect:66.0Slope:6.0Vertical_Distance_To_Hydrology:95.0Horizontal_Distance_To_Roadways:7.0Hillshade_9am:900.0Predict:4.0Actual:4.0Result:True
    Elevation:2489.0Aspect:100.0Slope:7.0Vertical_Distance_To_Hydrology:85.0Horizontal_Distance_To_Roadways:13.0Hillshade_9am:810.0Predict:4.0Actual:4.0Result:True

    Elevation:2713.0Aspect:117.0Slope:30.0Vertical_Distance_To_Hydrology:60.0Horizontal_Distance_To_Roadways:17.0Hillshade_9am:3297.0Predict:1.0Actual:4.0Result:False
    Elevation:2739.0Aspect:323.0Slope:25.0Vertical_Distance_To_Hydrology:85.0Horizontal_Distance_To_Roadways:43.0Hillshade_9am:3118.0Predict:0.0Actual:0.0Result:True
    Elevation:2696.0Aspect:72.0Slope:2.0Vertical_Distance_To_Hydrology:30.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:3271.0Predict:0.0Actual:0.0Result:True
    Elevation:2510.0Aspect:79.0Slope:14.0Vertical_Distance_To_Hydrology:192.0Horizontal_Distance_To_Roadways:19.0Hillshade_9am:891.0Predict:4.0Actual:4.0Result:True
    Elevation:2502.0Aspect:81.0Slope:7.0Vertical_Distance_To_Hydrology:175.0Horizontal_Distance_To_Roadways:11.0Hillshade_9am:912.0Predict:4.0Actual:4.0Result:True
    Elevation:2722.0Aspect:315.0Slope:24.0Vertical_Distance_To_Hydrology:30.0Horizontal_Distance_To_Roadways:19.0Hillshade_9am:3216.0Predict:0.0Actual:0.0Result:True
    Elevation:2500.0Aspect:74.0Slope:11.0Vertical_Distance_To_Hydrology:190.0Horizontal_Distance_To_Roadways:9.0Hillshade_9am:930.0Predict:4.0Actual:4.0Result:True
    Elevation:2486.0Aspect:68.0Slope:5.0Vertical_Distance_To_Hydrology:180.0Horizontal_Distance_To_Roadways:-4.0Hillshade_9am:870.0Predict:4.0Actual:4.0Result:True
    Elevation:2489.0Aspect:11.0Slope:4.0Vertical_Distance_To_Hydrology:175.0Horizontal_Distance_To_Roadways:13.0Hillshade_9am:840.0Predict:4.0Actual:4.0Result:True
    Elevation:2489.0Aspect:42.0Slope:6.0Vertical_Distance_To_Hydrology:162.0Horizontal_Distance_To_Roadways:13.0Hillshade_9am:810.0Predict:4.0Actual:4.0Result:True
    Elevation:2490.0Aspect:75.0Slope:5.0Vertical_Distance_To_Hydrology:134.0Horizontal_Distance_To_Roadways:17.0Hillshade_9am:810.0Predict:4.0Actual:4.0Result:True
    Elevation:2952.0Aspect:107.0Slope:11.0Vertical_Distance_To_Hydrology:42.0Horizontal_Distance_To_Roadways:7.0Hillshade_9am:5845.0Predict:1.0Actual:1.0Result:True
    Elevation:2705.0Aspect:90.0Slope:8.0Vertical_Distance_To_Hydrology:134.0Horizontal_Distance_To_Roadways:22.0Hillshade_9am:2023.0Predict:1.0Actual:1.0Result:True
    Elevation:2507.0Aspect:40.0Slope:7.0Vertical_Distance_To_Hydrology:153.0Horizontal_Distance_To_Roadways:10.0Hillshade_9am:930.0Predict:4.0Actual:4.0Result:True
    Elevation:2500.0Aspect:49.0Slope:14.0Vertical_Distance_To_Hydrology:150.0Horizontal_Distance_To_Roadways:27.0Hillshade_9am:870.0Predict:1.0Actual:4.0Result:False
    Elevation:2493.0Aspect:63.0Slope:10.0Vertical_Distance_To_Hydrology:127.0Horizontal_Distance_To_Roadways:20.0Hillshade_9am:840.0Predict:1.0Actual:4.0Result:False
    Elevation:2509.0Aspect:59.0Slope:7.0Vertical_Distance_To_Hydrology:134.0Horizontal_Distance_To_Roadways:10.0Hillshade_9am:900.0Predict:1.0Actual:4.0Result:False
    Elevation:2919.0Aspect:13.0Slope:13.0Vertical_Distance_To_Hydrology:90.0Horizontal_Distance_To_Roadways:6.0Hillshade_9am:5321.0Predict:1.0Actual:0.0Result:False
    Elevation:2740.0Aspect:54.0Slope:6.0Vertical_Distance_To_Hydrology:218.0Horizontal_Distance_To_Roadways:42.0Hillshade_9am:2287.0Predict:1.0Actual:1.0Result:True
    Elevation:2640.0Aspect:80.0Slope:8.0Vertical_Distance_To_Hydrology:180.0Horizontal_Distance_To_Roadways:-2.0Hillshade_9am:1092.0Predict:1.0Actual:1.0Result:True
    Elevation:2843.0Aspect:166.0Slope:12.0Vertical_Distance_To_Hydrology:242.0Horizontal_Distance_To_Roadways:53.0Hillshade_9am:4434.0Predict:1.0Actual:1.0Result:True
    Elevation:3008.0Aspect:45.0Slope:14.0Vertical_Distance_To_Hydrology:277.0Horizontal_Distance_To_Roadways:10.0Hillshade_9am:6371.0Predict:1.0Actual:1.0Result:True
    Elevation:2893.0Aspect:114.0Slope:16.0Vertical_Distance_To_Hydrology:108.0Horizontal_Distance_To_Roadways:30.0Hillshade_9am:5066.0Predict:1.0Actual:1.0Result:True
    Elevation:2850.0Aspect:6.0Slope:9.0Vertical_Distance_To_Hydrology:0.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:4858.0Predict:1.0Actual:1.0Result:True
    Elevation:2628.0Aspect:30.0Slope:10.0Vertical_Distance_To_Hydrology:240.0Horizontal_Distance_To_Roadways:19.0Hillshade_9am:960.0Predict:1.0Actual:1.0Result:True
    Elevation:2864.0Aspect:118.0Slope:18.0Vertical_Distance_To_Hydrology:201.0Horizontal_Distance_To_Roadways:74.0Hillshade_9am:4567.0Predict:1.0Actual:1.0Result:True
    Elevation:2827.0Aspect:160.0Slope:28.0Vertical_Distance_To_Hydrology:134.0Horizontal_Distance_To_Roadways:65.0Hillshade_9am:3948.0Predict:1.0Actual:1.0Result:True
    Elevation:2529.0Aspect:326.0Slope:5.0Vertical_Distance_To_Hydrology:30.0Horizontal_Distance_To_Roadways:14.0Hillshade_9am:1062.0Predict:1.0Actual:1.0Result:True
    Elevation:2808.0Aspect:99.0Slope:7.0Vertical_Distance_To_Hydrology:382.0Horizontal_Distance_To_Roadways:95.0Hillshade_9am:3107.0Predict:0.0Actual:0.0Result:True
    Elevation:2840.0Aspect:153.0Slope:26.0Vertical_Distance_To_Hydrology:134.0Horizontal_Distance_To_Roadways:42.0Hillshade_9am:4613.0Predict:1.0Actual:1.0Result:True
    Elevation:2795.0Aspect:79.0Slope:10.0Vertical_Distance_To_Hydrology:531.0Horizontal_Distance_To_Roadways:96.0Hillshade_9am:2980.0Predict:0.0Actual:0.0Result:True
    Elevation:2746.0Aspect:143.0Slope:16.0Vertical_Distance_To_Hydrology:67.0Horizontal_Distance_To_Roadways:22.0Hillshade_9am:2440.0Predict:1.0Actual:1.0Result:True
    Elevation:2847.0Aspect:352.0Slope:26.0Vertical_Distance_To_Hydrology:150.0Horizontal_Distance_To_Roadways:82.0Hillshade_9am:3697.0Predict:0.0Actual:0.0Result:True
    Elevation:2840.0Aspect:14.0Slope:14.0Vertical_Distance_To_Hydrology:216.0Horizontal_Distance_To_Roadways:88.0Hillshade_9am:3552.0Predict:0.0Actual:0.0Result:True
    Elevation:2537.0Aspect:42.0Slope:7.0Vertical_Distance_To_Hydrology:210.0Horizontal_Distance_To_Roadways:17.0Hillshade_9am:1132.0Predict:1.0Actual:1.0Result:True
    Elevation:2860.0Aspect:358.0Slope:17.0Vertical_Distance_To_Hydrology:175.0Horizontal_Distance_To_Roadways:98.0Hillshade_9am:3705.0Predict:0.0Actual:0.0Result:True
    Elevation:2818.0Aspect:332.0Slope:26.0Vertical_Distance_To_Hydrology:30.0Horizontal_Distance_To_Roadways:17.0Hillshade_9am:4526.0Predict:1.0Actual:1.0Result:True
    Elevation:2801.0Aspect:18.0Slope:7.0Vertical_Distance_To_Hydrology:560.0Horizontal_Distance_To_Roadways:58.0Hillshade_9am:3084.0Predict:1.0Actual:1.0Result:True
    Elevation:2791.0Aspect:63.0Slope:10.0Vertical_Distance_To_Hydrology:418.0Horizontal_Distance_To_Roadways:48.0Hillshade_9am:2942.0Predict:1.0Actual:1.0Result:True
    Elevation:2745.0Aspect:306.0Slope:11.0Vertical_Distance_To_Hydrology:67.0Horizontal_Distance_To_Roadways:24.0Hillshade_9am:2416.0Predict:1.0Actual:1.0Result:True
    Elevation:2514.0Aspect:102.0Slope:6.0Vertical_Distance_To_Hydrology:272.0Horizontal_Distance_To_Roadways:-5.0Hillshade_9am:1082.0Predict:1.0Actual:1.0Result:True
    Elevation:2788.0Aspect:13.0Slope:16.0Vertical_Distance_To_Hydrology:30.0Horizontal_Distance_To_Roadways:8.0Hillshade_9am:4126.0Predict:1.0Actual:1.0Result:True
    Elevation:2562.0Aspect:354.0Slope:12.0Vertical_Distance_To_Hydrology:67.0Horizontal_Distance_To_Roadways:9.0Hillshade_9am:1057.0Predict:1.0Actual:1.0Result:True
    Elevation:3073.0Aspect:173.0Slope:12.0Vertical_Distance_To_Hydrology:108.0Horizontal_Distance_To_Roadways:-3.0Hillshade_9am:6836.0Predict:1.0Actual:1.0Result:True
    Elevation:2978.0Aspect:71.0Slope:10.0Vertical_Distance_To_Hydrology:426.0Horizontal_Distance_To_Roadways:85.0Hillshade_9am:5742.0Predict:1.0Actual:1.0Result:True
    Elevation:2860.0Aspect:31.0Slope:10.0Vertical_Distance_To_Hydrology:295.0Horizontal_Distance_To_Roadways:98.0Hillshade_9am:3644.0Predict:0.0Actual:0.0Result:True
    Elevation:3067.0Aspect:164.0Slope:11.0Vertical_Distance_To_Hydrology:85.0Horizontal_Distance_To_Roadways:7.0Hillshade_9am:6811.0Predict:1.0Actual:1.0Result:True
    Elevation:2804.0Aspect:72.0Slope:5.0Vertical_Distance_To_Hydrology:543.0Horizontal_Distance_To_Roadways:61.0Hillshade_9am:3115.0Predict:1.0Actual:1.0Result:True
    Elevation:2562.0Aspect:59.0Slope:3.0Vertical_Distance_To_Hydrology:0.0Horizontal_Distance_To_Roadways:0.0Hillshade_9am:1116.0Predict:1.0Actual:1.0Result:True
    Elevation:2567.0Aspect:34.0Slope:9.0Vertical_Distance_To_Hydrology:190.0Horizontal_Distance_To_Roadways:16.0Hillshade_9am:1136.0Predict:1.0Actual:1.0Result:True

  • 相关阅读:
    P2207 Photo
    P1022 计算器的改良
    P1003 铺地毯
    P3014 [USACO11FEB]牛线Cow Line && 康托展开
    P4180 【模板】严格次小生成树[BJWC2010]
    P2776 [SDOI2007]小组队列
    P2426 删数
    P1948 [USACO08JAN]电话线Telephone Lines
    P1978 集合
    P1564 膜拜
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12639832.html
Copyright © 2011-2022 走看看