双月数据生成及其常见算法(一)
生活随笔
收集整理的這篇文章主要介紹了
双月数据生成及其常见算法(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
雙月數據部分:
數據描述:上下兩個半圓??梢酝ㄟ^調整參數進行半圓弧位置的變化。
定義基礎參數:包括兩個圓之間的半徑以及上下兩個圓之間的位置偏差XPosition、YPosition。
NumbleCount為生成的一個半圓的數據點個數。
PI = 3.141 CicleW = 2 CicleR = 5XPosition = 5 YPosition = 4NumbleCount = 1000?生成數據部分:作者使用了,極坐標的方式來生成隨機的散點圖,通過約束方程來對生成的散點圖進行約束。通過對符合要求的數據點來進行計數,生成對應數據。
并且上半部分數據添加標簽1,下半部分添加標簽-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("數據生成完成\n數據生成總量為:{}".format(len(ClassX1))) plot.title('Creat Data') plot.plot(ClassX1, ClassY1, 'r+')?
之后數據的保存,通過csv或者mat類型的格式保存到文件中,便于后續算法的使用。
結果:
線型可分類型:
?線型不可分類型:
?
?
?
?
總結
以上是生活随笔為你收集整理的双月数据生成及其常见算法(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rw_semaphore 原理与代码分析
- 下一篇: 《Modelica教程》by Fritz