Kiểm tra thống kê cho các mẫu đường không gian?


32

Có rất nhiều thử nghiệm cho các mẫu điểm không gian có thể được sử dụng để xác định xem các điểm có được phân phối ngẫu nhiên hay không, nhưng có bất kỳ thử nghiệm nào được thiết lập cho các mẫu đường không gian không? (Tôi đang nghĩ các đường thẳng, chỉ có điểm bắt đầu và điểm kết thúc và không có nút trung gian.)

Dữ liệu tôi muốn phân tích là các dòng OD (điểm đến đích) của chuyển động của người và động vật. (Tương tự như ví dụ trong Phân cụm các dòng không mong muốn .)

Cho đến nay, một ý tưởng là xử lý các dòng như điểm 4D và sử dụng các bài kiểm tra mô hình điểm nhưng tôi không chắc liệu điều đó có phù hợp hay không.

Thử nghiệm lý tưởng sẽ giúp xác định xem có cụm đường thẳng hay không.

Theo bản năng, tôi sẽ nói rằng nhiều dòng bắt đầu ở cùng một nguồn gốc nhưng có tất cả các loại đích khác nhau, không nên được coi là một cụm. Mặt khác, nhiều dòng chạy (gần) song song trong thời gian dài hơn sẽ là một cụm. nhập mô tả hình ảnh ở đây


Hành vi của bạn là gì nếu một dòng song song với một dòng khác nhưng ngắn hơn 1) so với dòng đầu tiên hoặc 2) "xa" theo hướng của dòng đầu tiên
radouxju

@radouxju trong những trường hợp đó, tôi muốn nói rằng họ không thuộc cùng một cụm
underdark

Câu trả lời:


17

Đây là một câu hỏi khó vì chưa có nhiều, nếu có, thống kê quy trình không gian được phát triển cho các tính năng dòng. Không nghiêm túc đào sâu vào các phương trình và mã, thống kê quy trình điểm không dễ dàng áp dụng cho các tính năng tuyến tính và do đó, không hợp lệ về mặt thống kê. Điều này là do null, một mẫu đã cho được kiểm tra dựa trên các sự kiện điểm và không phụ thuộc tuyến tính trong trường ngẫu nhiên. Tôi phải nói rằng tôi thậm chí không biết null sẽ là gì khi cường độ và sự sắp xếp / định hướng sẽ còn khó khăn hơn nữa.

Tôi chỉ nhổ nước bọt ở đây, nhưng, tôi tự hỏi nếu một đánh giá đa quy mô về mật độ dòng kết hợp với khoảng cách Euclide (hoặc khoảng cách Hausdorff nếu các dòng phức tạp) sẽ không chỉ ra một biện pháp phân cụm liên tục. Dữ liệu này sau đó có thể được tóm tắt thành các vectơ dòng, sử dụng phương sai để tính chênh lệch độ dài (Thomas 2011) và gán giá trị cụm bằng cách sử dụng thống kê như phương tiện K. Tôi biết rằng bạn không theo cụm được gán mà giá trị cụm có thể phân vùng mức độ phân cụm. Điều này rõ ràng sẽ yêu cầu một sự phù hợp tối ưu của k vì vậy, các cụm tùy ý không được chỉ định. Tôi nghĩ rằng đây sẽ là một cách tiếp cận thú vị trong việc đánh giá cấu trúc cạnh trong các mô hình lý thuyết đồ thị.

Đây là một ví dụ hoạt động trong R, xin lỗi, nhưng nó nhanh hơn và có thể tái tạo nhiều hơn so với việc cung cấp một ví dụ QGIS, và nằm trong vùng thoải mái của tôi :)

Thêm thư viện và sử dụng đối tượng psp đồng từ spatstat làm ví dụ dòng

library(spatstat)
library(raster)
library(spatialEco)

data(copper)
l <- copper$Lines
l <- rotate.psp(l, pi/2)

Tính toán mật độ dòng thứ tự 1 và 2 được chuẩn hóa và sau đó ép buộc vào các đối tượng lớp raster

d1st <- density(l)
  d1st <- d1st / max(d1st)
  d1st <- raster(d1st)  
d2nd <- density(l, sigma = 2)
  d2nd <- d2nd / max(d2nd)
  d2nd <- raster(d2nd)  

Chuẩn hóa mật độ bậc 1 và bậc 2 thành mật độ tích hợp tỷ lệ

d <- d1st + d2nd
d <- d / cellStats(d, stat='max')  

Tính toán khoảng cách euclide ngược được chuẩn hóa và ép buộc với lớp raster

euclidean <- distmap(l)
euclidean <- euclidean / max(euclidean)
euclidean <- raster.invert(raster(euclidean))

Ép psp spatstat psp vào một đối tượng sp SpatialLinesDataFrame để sử dụng trong raster :: extract

as.SpatialLines.psp <- local({
     ends2line <- function(x) Line(matrix(x, ncol=2, byrow=TRUE))
     munch <- function(z) { Lines(ends2line(as.numeric(z[1:4])), ID=z[5]) }
     convert <- function(x) {
        ends <- as.data.frame(x)[,1:4]
        ends[,5] <- row.names(ends)
        y <- apply(ends, 1, munch)
        SpatialLines(y)
     }
     convert
})
l <- as.SpatialLines.psp(l)
l <- SpatialLinesDataFrame(l, data.frame(ID=1:length(l)) )

Kết quả lô

par(mfrow=c(2,2))
  plot(d1st, main="1st order line density")
    plot(l, add=TRUE)
  plot(d2nd, main="2nd order line density")
    plot(l, add=TRUE) 
  plot(d, main="integrated line density")
    plot(l, add=TRUE)   
  plot(euclidean, main="euclidean distance")
    plot(l, add=TRUE) 

Trích xuất các giá trị raster và tính toán thống kê tóm tắt được liên kết với mỗi dòng

l.dist <- extract(euclidean, l)
l.den <- extract(d, l)
l.stats <- data.frame(min.dist = unlist(lapply(l.dist, min)),
                      med.dist = unlist(lapply(l.dist, median)),
                      max.dist = unlist(lapply(l.dist, max)),
                      var.dist = unlist(lapply(l.dist, var)),
                      min.den = unlist(lapply(l.den, min)),
                      med.den = unlist(lapply(l.den, median)),
                      max.den = unlist(lapply(l.den, max)),
                      var.den = unlist(lapply(l.den, var)))

Sử dụng các giá trị hình bóng cụm để đánh giá k (số cụm) tối ưu, với hàm tối ưu.k, sau đó gán giá trị cụm cho các dòng. Sau đó chúng ta có thể gán màu cho từng cụm và vẽ trên đỉnh của raster mật độ.

clust <- optimal.k(scale(l.stats), nk = 10, plot = TRUE)                      
  l@data <- data.frame(l@data, cluster = clust$clustering) 

kcol <- ifelse(clust$clustering == 1, "red", "blue")
plot(d)
  plot(l, col=kcol, add=TRUE)

Tại thời điểm này, người ta có thể thực hiện ngẫu nhiên các dòng để kiểm tra xem cường độ và khoảng cách kết quả có ý nghĩa so với ngẫu nhiên hay không. Bạn có thể sử dụng chức năng "rshift.psp" để định hướng lại ngẫu nhiên các dòng của bạn. Bạn cũng có thể chỉ cần ngẫu nhiên các điểm bắt đầu và điểm dừng và tạo lại mỗi dòng.

Người ta cũng tự hỏi "nếu như" bạn chỉ thực hiện phân tích mẫu điểm bằng cách sử dụng thống kê phân tích đơn biến hoặc chéo trên điểm bắt đầu và điểm dừng, bất biến của các dòng. Trong một phân tích đơn biến, bạn sẽ so sánh kết quả của điểm bắt đầu và điểm dừng để xem liệu có sự thống nhất trong việc phân cụm giữa hai mẫu điểm hay không. Điều này có thể được thực hiện thông qua mũ f, mũ G hoặc mũ K của Ripley (đối với các quy trình điểm không được đánh dấu). Một cách tiếp cận khác sẽ là phân tích chéo (ví dụ: K chéo) trong đó hai quá trình điểm được kiểm tra đồng thời bằng cách đánh dấu chúng là [bắt đầu, dừng lại]. Điều này sẽ chỉ ra các mối quan hệ khoảng cách trong quá trình phân cụm giữa điểm bắt đầu và điểm dừng. Tuy nhiên, sự phụ thuộc không gian (không phụ thuộc) vào một quá trình cường độ cơ bản có thể là một vấn đề trong các loại mô hình này làm cho chúng không đồng nhất và đòi hỏi một mô hình khác. Trớ trêu thay, quá trình không đồng nhất được mô hình hóa bằng cách sử dụng hàm cường độ, đưa chúng ta trở lại vòng tròn đầy đủ về mật độ, do đó hỗ trợ ý tưởng sử dụng mật độ tích hợp tỷ lệ làm thước đo phân cụm.

Dưới đây là một ví dụ hoạt động nhanh về việc nếu thống kê Riplyys K (Besags L) cho tự động tương quan của một quá trình điểm không được đánh dấu bằng cách sử dụng bắt đầu, dừng các vị trí của lớp tính năng dòng. Mô hình cuối cùng là một chữ thập sử dụng cả hai vị trí bắt đầu và dừng như một quá trình được đánh dấu danh nghĩa.

library(spatstat)
  data(copper)
  l <- copper$Lines
  l <- rotate.psp(l, pi/2)

Lr <- function (...) {
 K <- Kest(...)
  nama <- colnames(K)
   K <- K[, !(nama %in% c("rip", "ls"))]
   L <- eval.fv(sqrt(K/pi)-bw)
  L <- rebadge.fv(L, substitute(L(r), NULL), "L")
 return(L)
}

### Ripley's K ( Besag L(r) ) for start locations
start <- endpoints.psp(l, which="first")
marks(start) <- factor("start")
W <- start$window
area <- area.owin(W)
lambda <- start$n / area
 ripley <- min(diff(W$xrange), diff(W$yrange))/4
   rlarge <- sqrt(1000/(pi * lambda))
     rmax <- min(rlarge, ripley)
( Lenv <- plot( envelope(start, fun="Lr", r=seq(0, rmax, by=1), nsim=199, nrank=5) ) )

### Ripley's K ( Besag L(r) ) for end locations
stop <- endpoints.psp(l, which="second")
  marks(stop) <- factor("stop")
W <- stop$window
area <- area.owin(W)
lambda <- stop$n / area
 ripley <- min(diff(W$xrange), diff(W$yrange))/4
   rlarge <- sqrt(1000/(pi * lambda))
     rmax <- min(rlarge, ripley)
( Lenv <- plot( envelope(start, fun="Lr", r=seq(0, rmax, by=1), nsim=199, nrank=5) ) )

### Ripley's Cross-K ( Besag L(r) ) for start/stop
sdata.ppp <- superimpose(start, stop)
( Lenv <- plot(envelope(sdata.ppp, fun="Kcross", r=bw, i="start", j="stop", nsim=199,nrank=5, 
                 transform=expression(sqrt(./pi)-bw), global=TRUE) ) )

Tài liệu tham khảo

Thomas JCR (2011) Thuật toán phân cụm mới dựa trên K-Means sử dụng phân đoạn dòng làm nguyên mẫu. Trong: San Martin C., Kim SW. (eds) Tiến bộ trong nhận dạng mẫu, phân tích hình ảnh, thị giác máy tính và ứng dụng. CIpeg 2011. Ghi chú bài giảng Khoa học máy tính, tập 7042. Springer, Berlin, Heidelberg


14

Bạn có thể muốn nhìn vào khoảng cách Fréchet . Gần đây tôi mới phát hiện ra điều này sau một câu hỏi gần đây đang tìm kiếm một con trăn.

Đây là một số liệu để tìm sự tương tự về không gian của linestrings . Đó là một ý tưởng tương tự với khoảng cách của Hausdorff, tương đương với các biện pháp tương tự đa giác, nhưng đối với các linestrings có hướng.

Khoảng cách Fréchet được định nghĩa là chiều dài tối thiểu của một dây xích nối một con chó trên một quỹ đạo với chủ của nó trên một quỹ đạo thứ hai, cả hai không bao giờ di chuyển ngược

Số liệu này sẽ có một giá trị nhỏ cho hai đường cong nằm gần nhau, gần như song song, được căn chỉnh theo cùng một cách và có độ dài tương tự nhau.

Điều đó không trả lời phần nhận dạng cụm, mặc dù.

Có một bài trình bày toàn diện ở đây . Tình huống của bạn có vẻ giống như một số trường hợp sử dụng được đề cập trong phần 46-49

Số liệu này có rất nhiều cách sử dụng phi không gian địa lý như

  • phát hiện các mẫu con phổ biến trong giải trình tự gen
  • nhận dang chu Viet
  • phát hiện các khoảng thời gian tương quan trong chuỗi thời gian như lịch sử giá cổ phiếu

Vì vậy, trong khi rất nhiều bài viết trong thư mục đề cập đến chủ đề này, hầu hết chúng không phải là không gian địa lý. Ngoài ra, hầu hết các bài viết này đều thuộc thuật toán / toán học / khoa học máy tính hơn là không gian địa lý / khoa học địa chất và được nhắm mục tiêu phù hợp.

Tuy nhiên, bài báo này có vẻ đầy hứa hẹn: -

Hội trưởng, K., Hội trưởng, M. và Wang, Y. (2009). Các thuật toán chính xác để khớp đường cong một phần thông qua khoảng cách Fréchet. Trong Kỷ yếu của Hội nghị chuyên đề ACM-SIAM lần thứ 20 về các thuật toán rời rạc, trang 645 Hang654

Một số bài báo khác nghe có vẻ gần gũi hơn với mục đích của bạn - xác định cụm và phân bổ quỹ đạo cho các cụm - nhưng chúng được minh họa bằng cách sử dụng dữ liệu chuỗi thời gian hoặc các ví dụ phi địa lý khác. Tuy nhiên họ có thể chỉ ra những hướng thú vị.


2
Tôi nghĩ rằng việc liên kết tối thiểu (hoặc DBSCAN) phân cụm bằng khoảng cách Frechet hoặc Hausdorff, thay vì khoảng cách Euclide, sẽ là một giải pháp tốt.
dbaston

Tôi thích khoảng cách Frechet tồn tại và tôi cũng thích rằng bài thuyết trình so sánh "thạch" và "bụng bầu".
Fezter

5

Tôi đề nghị sử dụng cách tiếp cận tương tự như một giải thích ở đây .

ALGORITHM và đặt tên:

a) Tên dòng NODES. Tính toán vòng bi

b) tham gia không gian vào chính nó (một đến nhiều) bằng cách sử dụng dung sai khoảng cách. Tên lớp LIÊN KẾT

c) xóa khỏi LINKS tham gia vào chính nó, tức là NAME = NAME_1

d) bên trong LIÊN KẾT tìm các cặp hướng "giống nhau". Tôi đã sử dụng:

def theSame(aList,tol):
    maxB=max(aList);minB=min(aList)
    if abs(maxB-minB)<tol:return 1
    if abs(maxB-minB-180)<tol:return 1
    return 0
#-----------
theSame( [!BEARING!, !BEARING_1!],15)

tức là các đường giả định đi ngược chiều là tương tự nhau về hướng

d) xóa các cặp không tương tự (0) khỏi LIÊN KẾT.

e) tính toán các nhóm LIÊN KẾT được kết nối qua NODES và chuyển số nhóm vào bảng NODES:

nhập mô tả hình ảnh ở đây

Không may:

nhập mô tả hình ảnh ở đây

Tuy nhiên, số liệu thống kê đơn giản về vòng bi trong nhóm, ví dụ độ lệch chuẩn của:

abs(tan(bearing))

cho thấy không có sai lệch trong trường hợp đầu tiên và một rất lớn trong thứ hai. Thống kê tương tự về độ dài có thể giúp "chạy song song trong một thời gian dài".

Nếu ở trên là mối quan tâm tôi có thể cập nhật câu trả lời với tập lệnh tính toán các nhóm liên kết được kết nối. Nó đang sử dụng mô-đun arcpy và networkx.

Không biết làm thế nào để điều trị cặp đường đi từ cùng một điểm theo hướng ngược lại ...


Tôi muốn xem kịch bản.
alphabetasoup

1
@RichardLaw theo liên kết tại dòng đầu tiên của giải pháp của tôi và cuộn xuống để xem nó. Tôi có một phiên bản đánh bóng tốt hơn một chút, nhưng điều này sẽ làm. Logic cực kỳ đơn giản: 1. thực hiện đồ thị bằng cách sử dụng các liên kết và nút được gắn vào nó 2. Lấy nút thứ nhất và tìm tổ tiên (nhóm 0) 3) loại bỏ các nút khỏi biểu đồ và lặp lại cho đến khi không còn nút nào. Tôi sử dụng nó nhiều lần để tìm các nhóm đường ống (luồng và bất cứ thứ gì) bị ngắt kết nối, v.v. cho các bộ dữ liệu / LINZ của Hội đồng chất lượng cao
FelixIP

5

Trong mắt tôi có một vấn đề với định nghĩa của các dòng, một trong đó sẽ xác định cách tiếp cận để sử dụng (một số trong những người được đề cập ở trên). Nếu đây là các cặp OD và hình học không đóng vai trò, tôi sẽ tiếp cận điều này dựa trên phân cụm mạng. Bạn nói rằng các mạng không tạo thành một mạng - cũng vậy, nhưng có khả năng nguồn gốc và đích đến rơi vào các khu vực có ý nghĩa, và do đó bạn có thể coi nó là một mạng.

Nếu hình học có gì đó để nói (đó là, nói về quỹ đạo GPS và bạn muốn xem xét hình học), thì bạn sẽ cần phải thực sự làm việc trong một không gian (x, y, t) - hình học tương tự của dấu chân chuyển động nhưng khác nhau thời gian có thể không được đánh giá như nhau - điều này không được chỉ định trong câu hỏi.

Một số khả năng những gì bạn có thể xem xét:

  1. Gần nhất với nhu cầu của bạn là Dodge, Weibel, Forootan (2009), tại đây http://orca.cf.ac.uk/94865/1/PhysicsMovement.pdf
  2. Nếu hình học có thể được đơn giản hóa, có thể các tham số được đề cập ở đây có thể được sử dụng: http://www.tandfonline.com/doi/full/10.1080/17445647.2017.1313788

Nhưng cuối cùng, đọc lại một lần nữa câu hỏi ban đầu của bạn, nó có thể đơn giản hơn: bạn có thể tính toán theo cặp (giữa các phân đoạn) khoảng cách giữa giao điểm của phần mở rộng tuyến tính của các phân đoạn và các điểm gần nhất của chúng, bình thường hóa bằng cách nào đó (có thể dựa trên độ dài của chính phân khúc) và sử dụng thuật toán phân cụm ma trận? Lý do: các phân đoạn giao nhau xa tương tự (song song) hơn các phân đoạn gần nhau. Trong các bản vẽ, bạn không nói làm thế nào để xử lý các đoạn đồng tuyến tính hoặc song song nằm trong một phần bù (distechech dài). Tôi cho rằng điều này sẽ gây rắc rối cho giải pháp trên. (được chỉnh sửa cho rõ ràng, bằng cách nêu rõ "phần mở rộng tuyến tính" ở trên)

Lưu ý (tháng 1 năm 2018): Gần đây tôi đã vấp phải điều này:

  1. Cai, Yuhan và Raymond Ng. "Lập chỉ mục quỹ đạo theo thời gian với đa thức Ch Quashev." Kỷ yếu hội thảo quốc tế ACM SIGMOD năm 2004 về Quản lý dữ liệu. ACM, 2004.

Điều này liên quan đến sự tương tự quỹ đạo và do đó sẽ cho phép định lượng độ tương tự ở một mức độ nào đó. Điều này dựa trên sự gần đúng đa thức của các đường cong và tính toán khoảng cách Ch Quashev.


4

Bạn có thể cung cấp thêm một chút chi tiết về loại dữ liệu bạn đang làm việc không? Đây chỉ là một loạt các dòng khác nhau hoặc chúng tạo thành một mạng? Bạn đã sử dụng bất kỳ công cụ ArcGIS nào để phân tích mô hình không gian chưa? Nhiều phương pháp ArcGIS (chỉ số K, NN, Morans I) của Ripley chỉ sử dụng trọng tâm của các dòng / đa giác khi được sử dụng trên dữ liệu phi điểm. Tuy nhiên, ở đây bạn có thể cần xem xét việc chia từng dòng thành các phần bằng nhau để tránh các dòng rất dài không được xem xét do trọng tâm của chúng ở rất xa.

Một điều khác cần suy nghĩ là, về mặt khái niệm cụm cụm là gì? Bạn có thể có nhiều dòng có nguồn gốc gần nhau, nhưng sau đó điểm cuối của chúng có thể bị phân tán. Tương tự, bạn có thể nhận được nhiều dòng bắt đầu và kết thúc rất gần nhau, nhưng sau đó trở nên rất phân tán ở giữa điểm bắt đầu / kết thúc của chúng.

Tuy nhiên, một cách tiếp cận có thể chỉ đơn giản là thực hiện phân tích mật độ dòng để các khu vực có nhiều dòng hơn (có thể được coi là phân cụm theo nghĩa nào đó) sẽ có giá trị lưới cao, trong khi các khu vực có mật độ thấp sẽ có giá trị thấp. Vì vậy, bạn nhận được một chút của một đầu ra điểm nóng; tuy nhiên điều này không cung cấp cho bạn một thống kê duy nhất như Morans I hoặc NNI. Nó cũng sẽ không phân biệt giữa mật độ là kết quả của một dòng rất bất thường (tức là một vòng xoắn chặt) so với nhiều dòng.

Xin lỗi, đây không phải là câu trả lời đầy đủ cho vấn đề của bạn nhưng tôi nghĩ việc đóng đinh khái niệm đầy đủ về những gì bạn đang cố gắng đạt được có thể cung cấp một số giải pháp tốt hơn.

CẬP NHẬT

Dựa trên ví dụ mà bạn đã đưa ra, tôi nghĩ rằng gợi ý của FelixlP về việc tạo một điểm có thuộc tính mang dòng để sử dụng với các số đo mẫu điểm có lẽ là một cách hay. Ngoại trừ tôi sẽ chia các điểm thành các đoạn bằng nhau và có một điểm với đường mang ở mỗi đỉnh của đường. Sau đó, bạn cần xem xét các biện pháp sẽ xem xét độ gần của từng điểm và sự tương đồng giữa các vòng bi (để bạn phát hiện các đường gần với phương vuông góc hơn).

Vì vậy, sử dụng Getis-Ord GI (phân tích Hotspot) sẽ là một công cụ tốt để sử dụng để hình dung vị trí của các cụm; và sau đó là một Moran toàn cầu để đánh giá mức độ phân cụm toàn cầu.

Tuy nhiên, khoảng cách mà bạn phân đoạn các dòng sẽ ảnh hưởng đến mức độ phân cụm được tìm thấy. Nếu bạn đang tìm kiếm các cụm ở quy mô 1km thì bạn sẽ cần phải phân đoạn các dòng xung quanh đó. Tương tự nếu bạn đang tìm kiếm các cụm ở tỷ lệ 100m, bạn sẽ cần phân đoạn các dòng cho phù hợp. Điều này là để bạn không bỏ lỡ các dòng và cũng vì vậy bạn không phát hiện ra mỗi dòng là một cụm.


Các dòng đại diện cho nguồn gốc chuyến đi và điểm đến. Họ không tạo thành một mạng lưới. Tôi đã sử dụng các phương thức R cho các mẫu điểm không gian của điểm gốc và điểm đích cho đến nay. Tôi không thích ý tưởng sử dụng centroid dòng nhưng có thể đáng để thử làm dày dòng và phân tích các nút kết quả, cảm ơn!
underdark

Phân tích mật độ dòng có thể là một giải pháp dự phòng nếu tôi không thể tìm thấy bất cứ điều gì phù hợp hơn.
underdark

Việc đệm dòng chính một khoảng cách nhất định sau đó truy vấn các dòng không được bao bọc hoàn toàn bởi bộ đệm có phải là một giải pháp không? Tôi đã thực hiện rất nhiều điều này trong quá khứ để tìm ra tuyến đường đi được xác suất cao nhất, nhưng dữ liệu bao gồm các đa tuyến nút thay vì các đoạn đường đơn giản.
jbgramm

@jbgramm Tôi có thể nghĩ ra nhiều cách tiếp cận sẽ tính toán một cái gì đó nhưng tôi không phải là một nhà thống kê và do đó tôi đang tìm kiếm các phương pháp đã được thiết lập - nếu có tồn tại
underdark

2
Sử dụng một điểm trung tâm đường hoặc đỉnh, để biểu diễn một quá trình điểm không phải là một cách tiếp cận hợp lệ. Bên cạnh đó, bạn cũng đang thay đổi sâu sắc đại diện của quá trình không gian. Tôi sẽ đăng một số lời giới thiệu nhưng thành thật mà nói, cách duy nhất đã cung cấp một cách tiếp cận có phần hợp lệ là đề xuất @underdark về mật độ dòng. Trên các thang đo, kết hợp với một thống kê tự tương quan sẽ chỉ ra một mức độ phân cụm trong các tính năng tuyến tính.
Jeffrey Evans

3

Cảm ơn các ví dụ.

Tôi chưa thấy bất kỳ phương pháp được thiết lập nào để tính toán những gì bạn đang tìm kiếm, tuy nhiên đây sẽ là cách tiếp cận của tôi. Nó là một loại giải pháp vũ phu.

Tính toán một hình chữ nhật giới hạn tối thiểu, sau đó mở rộng nó một số lượng lớn tùy ý, nhưng bằng nhau ở mỗi bốn góc.

Tìm tâm khối lượng của hình chữ nhật tạo, tính toán góc phương vị và phân bố khoảng cách cho các điểm OD cho mỗi dòng và thực hiện tương tự bằng cách sử dụng các góc của hình chữ nhật giới hạn của bạn, cùng với việc so sánh các góc phương vị của các đường.

Kiểm tra độ song song từ bốn góc đến cuối của mỗi tia. Kiểm tra độ song song từ tâm khối lượng đến cuối mỗi tia.

Bằng cách này, bạn có thể so sánh độ lệch từ các góc đến cuối. Trong ví dụ (a) bạn sẽ có các đường gần song song từ hai trong số các góc đến mỗi cụm ba dòng. Bạn cũng sẽ có các đường gần song song từ tâm khối đến cuối của đầu xa của đường.

Ví dụ (b) bạn sẽ không có các đường gần song song khi tính toán từ các góc đến cuối của mỗi dòng, nhưng các dòng không có vẻ ngẫu nhiên, chúng dẫn đến nhau với độ lệch nhẹ.

Ví dụ (c) dường như là ngẫu nhiên

Ví dụ (d) không ngẫu nhiên, nó là xuyên tâm.

Khi xem xét thêm, tôi sẽ chạy các thử nghiệm mà tôi đã mô tả ở trên, cũng như tạo các thử nghiệm giải pháp tam giác từ các góc của hình chữ nhật kèm theo được tạo ra đến các đầu của tia. Các góc bên trong tương tự và các khu vực sẽ giúp xác minh phân cụm trừ khi một trong các dòng trong cụm ngắn hơn đáng kể so với các dòng khác.

Trên đây chỉ là ý kiến ​​của một kẻ ngốc, và tôi có lẽ sai.


-1

Theo mô tả bản năng của bạn, tiêu chí để 2 dòng song song là gì?

Về cơ bản, bạn có thể thực hiện bài kiểm tra về điểm bắt đầu hoặc điểm kết thúc:
Đặt Sx = (start_x_line_1 - start_x_line_2),
Sy = (start_y_line_1 - start_y_line_2)
và Ex, Ey giống nhau nhưng cho điểm cuối của chúng.

Vì vậy, nếu sqrt (Sx² + Sy²) VÀ sqrt (Ex² + Ey²) nằm dưới một ngưỡng nhất định, bạn có thể coi các đường này là song song.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.