2021-08-02-样本

该博客介绍了一种选股方法,即研究一些股票的走势,找出其共同特点,然后利用这些特点来进行选股。

原理:
通过研究一些股票的走势,找出共同特点,用于选股

function maskS2clouds(image) { var qa = image.select('QA60') var cloudBitMask = 1 << 10; var cirrusBitMask = 1 << 11; var mask = qa.bitwiseAnd(cloudBitMask).eq(0).and( qa.bitwiseAnd(cirrusBitMask).eq(0)) return image.updateMask(mask).divide(10000) .select("B.*") .copyProperties(image, ["system:time_start"]) } Map.centerObject(roi) Map.addLayer(roi) //春 var startDate_c = ee.Date('2021-02-03'); var endDate_c = ee.Date('2021-05-04'); //夏 var startDate_x = ee.Date('2021-05-05'); var endDate_x = ee.Date('2021-08-06'); //秋 var startDate_q = ee.Date('2021-08-07'); var endDate_q = ee.Date('2021-11-06'); //冬 var startDate_d = ee.Date('2021-11-07'); var endDate_d = ee.Date('2022-02-03'); var collection = s2.filterBounds(roi)//位置过滤 var image_c=collection.filterDate(startDate_c, endDate_c) .filter(ee.Filter.lt('CLOUD_COVERAGE_ASSESSMENT',10)) .map(maskS2clouds) .mosaic().clip(roi); var image_x=collection.filterDate(startDate_x, endDate_x) .filter(ee.Filter.lt('CLOUD_COVERAGE_ASSESSMENT',10)) .map(maskS2clouds) .mosaic().clip(roi); var image_q=collection.filterDate(startDate_q, endDate_q) .filter(ee.Filter.lt('CLOUD_COVERAGE_ASSESSMENT',10)) .map(maskS2clouds) .mosaic().clip(roi); var image_d=collection.filterDate(startDate_d, endDate_d) .filter(ee.Filter.lt('CLOUD_COVERAGE_ASSESSMENT',10)) .map(maskS2clouds) .mosaic().clip(roi); var image1 = collection.filterDate('2021-01-01','2021-12-31') .filter(ee.Filter.lt('CLOUD_COVERAGE_ASSESSMENT',10)) .map(maskS2clouds); var image2 = image1; var image3 = image1; var image4 = image1; var image5 = image1; var image6 = image1; var image7 = image1; var image8 = image1; //NDWI var addNDWI_c = function(image) { var ndwi_c = image_c.normalizedDifference(['B3', 'B8']).rename('NDWI_c'); return image.addBands(ndwi_c); }; var addNDWI_x = function(image) { var ndwi_x = image_x.normalizedDifference(['B3', 'B8']).rename('NDWI_x'); return image.addBands(ndwi_x); }; var addNDWI_q = function(image) { var ndwi_q = image_q.normalizedDifference(['B3', 'B8']).rename('NDWI_q'); return image.addBands(ndwi_q); }; var addNDWI_d = function(image) { var ndwi_d = image_d.normalizedDifference(['B3', 'B8']).rename('NDWI_d'); return image.addBands(ndwi_d); }; //NDVI var addNDVI_c = function(image) { var ndvi_c = image_c.normalizedDifference(['B8', 'B4']).rename('NDVI_c'); return image.addBands(ndvi_c); }; var addNDVI_x = function(image) { var ndvi_x = image_x.normalizedDifference(['B8', 'B4']).rename('NDVI_x'); return image.addBands(ndvi_x); }; var addNDVI_q = function(image) { var ndvi_q = image_q.normalizedDifference(['B8', 'B4']).rename('NDVI_q'); return image.addBands(ndvi_q); }; var addNDVI_d = function(image) { var ndvi_d = image_d.normalizedDifference(['B8', 'B4']).rename('NDVI_d'); return image.addBands(ndvi_d); }; //NDWI image1 = image1.map(addNDWI_c).qualityMosaic('NDWI_c') image2 = image2.map(addNDWI_x).qualityMosaic('NDWI_x') image3 = image3.map(addNDWI_q).qualityMosaic('NDWI_q') image4 = image4.map(addNDWI_d).qualityMosaic('NDWI_d') //NDVI image5 = image5.map(addNDVI_c).qualityMosaic('NDVI_c') image6 = image6.map(addNDVI_x).qualityMosaic('NDVI_x') image7 = image7.map(addNDVI_q).qualityMosaic('NDVI_q') image8 = image8.map(addNDVI_d).qualityMosaic('NDVI_d') var ndwi_c = image1.select('NDWI_c') var ndwi_x = image2.select('NDWI_x') var ndwi_q = image3.select('NDWI_q') var ndwi_d = image4.select('NDWI_d') var ndvi_c = image5.select('NDVI_c') var ndvi_x = image6.select('NDVI_x') var ndvi_q = image7.select('NDVI_q') var ndvi_d = image8.select('NDVI_d') var image = collection.filterDate('2021-01-01','2021-12-31') .filter(ee.Filter.lt('CLOUD_COVERAGE_ASSESSMENT',10)) .map(maskS2clouds) .mosaic().clip(roi); var ndbi = image.normalizedDifference(['B12', 'B8']).rename('NDBI'); var image = image .addBands(ndvi_c) .addBands(ndvi_x) .addBands(ndvi_q) .addBands(ndvi_d)// .addBands(ndwi_c) .addBands(ndwi_x) .addBands(ndwi_q) .addBands(ndwi_d)// .addBands(ndbi) Map.addLayer(image, {bands: ['B4', 'B3', 'B2'],min:0.0, max: 0.3}, 'true'); var classNames = city.merge(water).merge(soil).merge(crop); var bands = [ 'B2', 'B3', 'B4', 'B8', 'B12', 'NDWI_c', 'NDWI_x', 'NDWI_q', 'NDWI_d', 'NDVI_c', 'NDVI_x', 'NDVI_q', 'NDVI_d']; var training = image.select(bands).sampleRegions({ collection: classNames, properties: ['landcover'], scale: 10 }); var withRandom = training.randomColumn('random');//样本点随机的排列 var split = 0.7; var trainingPartition = withRandom.filter(ee.Filter.lt('random', split));//筛选70%的样本作为训练样本 var testingPartition = withRandom.filter(ee.Filter.gte('random', split));//筛选30%的样本作为测试样本 var classProperty = 'landcover'; var classifier = ee.Classifier.libsvm({kernelType:'RBF', gamma: 20, cost: 10}) .train({ features: trainingPartition, classProperty: 'landcover', inputProperties: bands }); var classified = image.select(bands).classify(classifier) var palette = ['d64203', '137dea', 'c1bb4c','21a804']; var Viz = {min: 0, max: 3, palette:palette}; Map.addLayer(classified, Viz,'result') var test = testingPartition.classify(classifier); var confusionMatrix = test.errorMatrix('landcover', 'classification'); print('confusionMatrix',confusionMatrix); print('overall accuracy', confusionMatrix.accuracy()); print('kappa accuracy', confusionMatrix.kappa());(ImageCollection.mosaic: Error in map(ID=20210922T031539_20210922T032539_T49SED): Image.select: Band pattern 'QA10' did not match any bands. Available bands: [B1, B2, B3, B4, B5, B6, B7, B8, B8A, B9, B10, B11, B12, MSK_CLASSI_OPAQUE, MSK_CLASSI_CIRRUS, MSK_CLASSI_SNOW_ICE])
最新发布
09-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值