Làm cách nào để trích xuất thông tin từ ma trận phân tán khi bạn có N lớn, dữ liệu rời rạc và nhiều biến?


10

Tôi đang chơi xung quanh với bộ dữ liệu ung thư vú và tạo ra một biểu đồ phân tán tất cả các thuộc tính để có ý tưởng về cái nào có tác dụng nhất trong việc dự đoán lớp malignant(màu xanh) của benign(màu đỏ).

Tôi hiểu rằng hàng đại diện cho trục x và cột đại diện cho trục y nhưng tôi không thể thấy những quan sát nào tôi có thể thực hiện về dữ liệu hoặc các thuộc tính từ biểu đồ phân tán này.

Tôi đang tìm kiếm một số trợ giúp để diễn giải / thực hiện các quan sát về dữ liệu từ biểu đồ phân tán này hoặc nếu tôi nên sử dụng một số hình ảnh trực quan khác để trực quan hóa dữ liệu này.

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

Mã R tôi đã sử dụng

link   <- "http://www.cs.iastate.edu/~cs573x/labs/lab1/breast-cancer-wisconsin.arff"
breast <- read.arff(link)
cols   <- character(nrow(breast))
cols[] <- "black"
cols[breast$class == 2] <- "red"
cols[breast$class == 4] <- "blue"
pairs(breast, col=cols)

Bạn nói đúng: thật khó để thấy nhiều điều này. Vì tất cả các biến của bạn dường như rời rạc, với số lượng danh mục tương đối nhỏ, không thể xác định có bao nhiêu biểu tượng được xếp chồng lên nhau để tạo thành từng biểu tượng rõ ràng. Điều đó làm cho hình ảnh đặc biệt này có ít giá trị trong việc đánh giá bất cứ điều gì.
whuber

1
Đó là loại những gì tôi nghĩ. Tôi đã thử vẽ một barplot đóng hộp nhưng điều đó sẽ không hữu ích trong việc xem thuộc tính nào có ảnh hưởng nhất đến lớp phải không ...? Tìm kiếm sự giúp đỡ về loại hình ảnh trực quan sẽ cung cấp một số thông tin có ý nghĩa.
Birdy

2
Các phân tán hai màu của bạn có thể có ý nghĩa tốt nếu bạn jitter (thêm nhiễu) đống điểm của bạn.
ttnphns

@ttnphns Tôi không hiểu những gì bạn có ý nghĩa bởi "jitter cọc lại điểm"
Birdy

1
jitter có nghĩa là chỉnh sửa cốt truyện của bạn, sao cho các điểm quá mức được đặt bên cạnh nhau để không che khuất tầm nhìn của một biểu dữ liệu so với điểm khác. nó thường được sử dụng trong các hàm vẽ R.
OFish

Câu trả lời:


3

Tôi không chắc đây có giúp ích gì cho bạn không, nhưng đối với EDA chính tôi thực sự thích tabplotgói này. Cung cấp cho bạn ý thức tốt về những mối tương quan có thể có trong dữ liệu của bạn.

install.packages("tabplot")
tableplot(breast) # gives you the unsorted image below
tableplot(breast, sortCol="class") # gives you a sorted image according to class

cốt truyện không có thứ tự âm mưu


Làm thế nào một người sẽ giải thích tabplot này? Từ tabplot thứ hai có vẻ như các cột 2, 3, 4 và 7 cư xử rất giống nhau?
Birdy

Đây có phải là một assigment / bài tập về nhà của một số loại? Nếu vậy, xin vui lòng tham khảo các metas cho các quy tắc vv về việc nhận trợ giúp với các vụ ám sát. Câu trả lời ngắn gọn của tôi: a) Tôi không biết tất cả các giá trị khác nhau có nghĩa gì trong các cột vì tôi chưa nghiên cứu mô tả tập dữ liệu, b) nếu tôi chỉ đơn giản là để mô tả những gì tôi thấy, tôi nói: lớp 4 dường như là liên kết với các giá trị cao hơn của mỗi cột / biến và ngược lại.
OFish

6

Có một số vấn đề gây khó khăn hoặc không thể trích xuất bất kỳ thông tin có thể sử dụng nào từ ma trận phân tán của bạn.

Bạn có quá nhiều biến được hiển thị cùng nhau. Khi bạn có nhiều biến trong ma trận phân tán, mỗi ô trở nên quá nhỏ không có ích. Điều cần chú ý là nhiều lô được nhân đôi, gây lãng phí không gian. Ngoài ra, mặc dù bạn muốn xem mọi sự kết hợp, bạn không cần phải vẽ tất cả chúng cùng nhau. Lưu ý rằng bạn có thể chia ma trận phân tán thành các khối nhỏ hơn bốn hoặc năm (một số có thể hiển thị hữu ích). Bạn chỉ cần tạo nhiều ô, một ô cho mỗi khối.

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

bạn có rất nhiều dữ liệu tại các điểm riêng biệt trong không gian , nên cuối cùng chúng xếp chồng lên nhau. Do đó, bạn không thể thấy có bao nhiêu điểm tại mỗi vị trí. Có một số thủ thuật để giúp bạn đối phó với điều này.

  1. .5
  2. Với rất nhiều dữ liệu, thậm chí jitter sẽ làm cho các patters khó nhận ra. Bạn có thể sử dụng các màu có độ bão hòa cao, nhưng phần lớn trong suốt để giải thích cho điều này. Khi có nhiều dữ liệu xếp chồng lên nhau, màu sẽ trở nên đậm hơn và ở nơi có mật độ nhỏ, màu sẽ nhạt hơn.
  3. Để tính minh bạch hoạt động, bạn sẽ cần các biểu tượng rắn để hiển thị dữ liệu của mình, trong khi R sử dụng các vòng tròn rỗng theo mặc định.

Sử dụng các chiến lược này, đây là một số ví dụ mã R và các sơ đồ được thực hiện:

# the alpha argument in rgb() lets you set the transparency
cols2 = c(rgb(red=255, green=0, blue=0,   alpha=50, maxColorValue=255),
          rgb(red=0,   green=0, blue=255, alpha=50, maxColorValue=255) )
cols2 = ifelse(breast$class==2, cols2[1], cols2[2])
# here we jitter the data
set.seed(6141)  # this makes the example exactly reproducible
jbreast = apply(breast[,1:9], 2, FUN=function(x){ jitter(x, amount=.5) })
jbreast = cbind(jbreast, class=breast[,10])  # the class variable is not jittered

windows()  # the 1st 5 variables, using pch=16
  pairs(jbreast[,1:5], col=cols2, pch=16)

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

windows()  # the 2nd 5 variables
  pairs(jbreast[,6:10], col=cols2, pch=16)

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

windows()  # to match up the 1st & 2nd sets requires more coding
  layout(matrix(1:25, nrow=5, byrow=T))
  par(mar=c(.5,.5,.5,.5), oma=c(2,2,2,2))
  for(i in 1:5){
    for(j in 6:10){
      plot(jbreast[,j], jbreast[,i], col=cols2, pch=16, 
           axes=F, main="", xlab="", ylab="")
      box()
      if(j==6 ){ mtext(colnames(jbreast)[i], side=2, cex=.7, line=1) }
      if(i==5 ){ mtext(colnames(jbreast)[j], side=1, cex=.7, line=1) }
      if(j==10){ axis(side=4, seq(2,10,2), cex.axis=.8) }
      if(i==1 ){ axis(side=3, seq(2,10,2), cex.axis=.8) }
    }
  }

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


5

Thật khó để hình dung hơn 3-4 chiều trong một cốt truyện. Một lựa chọn sẽ là sử dụng phân tích thành phần chính (PCA) để nén dữ liệu và sau đó trực quan hóa nó theo các kích thước chính. Có một số gói khác nhau trong R (cũng như prcomphàm cơ sở ) làm cho việc này dễ dàng về mặt cú pháp ( xem CRAN ); diễn giải các lô, tải, là một câu chuyện khác, nhưng tôi nghĩ dễ dàng hơn một ma trận phân tán thứ tự 10 biến.

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


Cảm ơn đề nghị về PCA. Tôi đa không biêt gi vê no. Làm thế nào tôi sẽ giải thích hình ảnh bạn đăng? Có nghĩa là tất cả các thuộc tính được nhóm lại trong một nhóm sẽ có tầm quan trọng nào đó?
Birdy
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.