双月数据生成及其常见算法(一)
生活随笔
收集整理的這篇文章主要介紹了
双月数据生成及其常见算法(一)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
雙月數(shù)據(jù)部分:
數(shù)據(jù)描述:上下兩個半圓。可以通過調(diào)整參數(shù)進(jìn)行半圓弧位置的變化。
定義基礎(chǔ)參數(shù):包括兩個圓之間的半徑以及上下兩個圓之間的位置偏差XPosition、YPosition。
NumbleCount為生成的一個半圓的數(shù)據(jù)點(diǎn)個數(shù)。
PI = 3.141 CicleW = 2 CicleR = 5XPosition = 5 YPosition = 4NumbleCount = 1000?生成數(shù)據(jù)部分:作者使用了,極坐標(biāo)的方式來生成隨機(jī)的散點(diǎn)圖,通過約束方程來對生成的散點(diǎn)圖進(jìn)行約束。通過對符合要求的數(shù)據(jù)點(diǎn)來進(jìn)行計(jì)數(shù),生成對應(yīng)數(shù)據(jù)。
并且上半部分?jǐn)?shù)據(jù)添加標(biāo)簽1,下半部分添加標(biāo)簽-1。
#定義約束方程 UpArea = 2*PI*(CicleW+CicleR) DownArea = 2*PI*(CicleR)count = 0 ClassX1 = [] ClassY1 = [] DataLabel = [] while(count < 2*NumbleCount):Delter = random.uniform(0,PI) * (360/(2*PI))DelterP = random.uniform(CicleR,CicleR+CicleW)#DelterP*(math.sin(Delter)+math.cos(Delter))if DelterP*math.sin(Delter) > 0 :ClassX1.append(DelterP*math.cos(Delter))ClassY1.append(DelterP*math.sin(Delter))DataLabel.append(1)count = count + 1Delter = random.uniform(0, -PI) * (360 / (2 * PI))if DelterP * math.sin(Delter) < 0:ClassX1.append(DelterP * math.cos(Delter)+XPosition)ClassY1.append(DelterP * math.sin(Delter)-YPosition)DataLabel.append(-1)count = count + 1print("數(shù)據(jù)生成完成\n數(shù)據(jù)生成總量為:{}".format(len(ClassX1))) plot.title('Creat Data') plot.plot(ClassX1, ClassY1, 'r+')?
之后數(shù)據(jù)的保存,通過csv或者mat類型的格式保存到文件中,便于后續(xù)算法的使用。
結(jié)果:
線型可分類型:
?線型不可分類型:
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的双月数据生成及其常见算法(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rw_semaphore 原理与代码分析
- 下一篇: 《Modelica教程》by Fritz