- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi có một câu hỏi đơn giản nhưng rất thú vị. Như bạn đã biết, Kmeans có thể cho kết quả khác nhau sau mỗi lần chạy do các tâm cụm ban đầu ngẫu nhiên. Nhưng giả sử tôi biết rằng cụm 1 có giá trị trung bình nhỏ hơn cụm 2, cụm 2 có giá trị trung bình nhỏ hơn cụm 3, v.v. Tôi muốn tạo một thuật toán để đạt được phân cụm với giá trị trung bình nhỏ hơn và sau đó gán nó cho chỉ mục cụm nhỏ hơn.
Đây là mã Matlab của tôi. Nếu bạn có nhiều danh mục hơn hoặc cách tiếp cận rõ ràng hơn. xin vui lòng cho tôi lời khuyên
%%K-trung bình
num_cluster=2;
nrows = size(Img_origin,1);
ncols = kích thước(Img_origen,2);
I_1D = định hình lại(Img_origin,nrows*ncols,1);
[cluster_idx mu]=kmeans(double(I_1D),num_cluster,'distance','sqEuclidean','Replicates',3);
cluster_label = định hình lại(cluster_idx,nrows,ncols);
%% Sắp xếp dựa trên mu
[mu_sort id_sort]=sắp xếp(mu);
idx=ô(1,num_cluster)
%% Lưu chỉ mục đơn hàng nếu mu
cho i=1:num_cluster
idx{i}=find(cluster_label==id_sort(i));
end
%% Sắp xếp nhãn cụm dựa trên mu
cho i=1:num_cluster
cluster_label(idx{i})=i;
end
câu trả lời hay nhất
Tôi không rõ lý do tại sao bạn muốn gắn nhãn lại các cụm dựa trên thứ tự của từng trọng tâm. Bạn có thể chỉ cần sử dụng đầu ra vectơ nhãn theo k-mean để tham chiếu cụm/trung tâm mà mỗi điểm thuộc về.
Tuy nhiên, ý tưởng ban đầu là bạn phải sắp xếp các trọng tâm là một ý tưởng hay. Phần cuối cùng của mã có vẻ không hiệu quả vì bạn đang lặp qua từng thẻ và gán lại nó. Một điều tôi có thể đề xuất là có một bảng tra cứu trong đó đầu vào là các nhãn gốc và đầu ra là các nhãn được sắp xếp lại dựa trên các trọng tâm được sắp xếp.
Nếu bạn muốn đi theo con đường này, bạn có thể sử dụng container.Map
chìa khóa dựa vào đâu loại
Thứ tự sắp xếp của đầu ra sẽ cung cấp các nhãn và giá trị là nhãn được sắp xếp lại... tức là một vectơ từ 1 đến số lớp bạn có. Bạn cần phải làm điều này bởi vì loại
Đầu ra thứ hai của cho bạn biết vị trí mỗi giá trị trong mảng ban đầu sẽ xuất hiện trong kết quả được sắp xếp, vì vậy bạn phải sử dụng cách sắp xếp này để thực hiện việc gắn nhãn lại một cách chính xác. Ngoài ra, tôi sẽ sử dụng sắp xếp
chức năng trong MATLAB thay vì bản gốc loại
. Nhân tiện, bạn đang làm việc đó, bạn đang làm việc độc lập trên từngCột/Biến Thực hiện sắp xếp, điều này sẽ cho sai trọng tâm. Điều này sẽ hoạt động đối với các hình ảnh thang độ xám trong đó bạn chỉ phải xem xét một tính năng, thang độ xám, nhưng nếu bạn vượt ra ngoài thang độ xám và có thể chuyển sang RGB hoặc bất kỳ không gian màu nào bạn muốn, hãy sử dụng raw loại
sẽ cho bạn kết quả không chính xác. Bạn cần coi mỗi hàng là một điểm và sau đó sắp xếp các hàng cùng nhau.
Với mã của bạn, bạn sẽ làm một cái gì đó như thế này:
%%K-trung bình
num_cluster=2;
nrows = size(Img_origin,1);
ncols = kích thước(Img_origen,2);
I_1D = định hình lại(Img_origin,nrows*ncols,1);
[cluster_idx mu]=kmeans(double(I_1D),num_cluster,'distance','sqEuclidean','Replicates',3);
%% Sắp xếp dựa trên mu
[mu_sort id_sort]=sắp xếp(mu);
%// Tra cứu tạo mới
tra cứu = container.Map(id_sort, 1:size(mu_sort,1));
%// Dán nhãn lại cho vectơ
cluster_idx_sort = lookup.values(num2cell(cluster_idx));
cluster_idx_sort = [cluster_idx_sort{:}];
%//Định hình lại kích thước ảnh gốc
cluster_label = định hình lại(cluster_idx_sort,nrows,ncols);
Điều này sẽ giúp mã của bạn tăng tốc hơn một chút.
Để kiểm tra lại, tôi người quay phim.tif
Đã thử tính năng này trên hình ảnh, đây là một phần của hộp công cụ xử lý hình ảnh. Chạy mã mang lại cho tôi các trung tâm cụm này:
>>mu
mu =
153.3484
23.7291
Khi tôi sắp xếp các cụm theo thứ tự tăng dần, đây là cách sắp xếp và trọng tâm tôi nhận được:
>> mu_sort
mu_sort =
23.7291
153.3484
>> id_sort
id_sort=
2
1
Vì vậy, điều này hoạt động như chúng ta mong đợi... Bây giờ nếu chúng ta hiển thị biểu đồ nhãn cụm ban đầu trước khi sắp xếp trọng tâm:
cluster_label = định hình lại (cluster_idx, nrows, ncols);
imshow(cluster_label,[]);
...chúng ta có được bức ảnh này:
Bây giờ nếu chúng ta chạy logic sắp xếp và hiển thị trọng tâm:
imshow(cluster_label, []);
...chúng ta có được bức ảnh này:
Đây là những gì tôi mong đợi. Bởi vì trọng tâm bị lật nên bóng đổ cũng bị lật.
Về thuật toán - sắp xếp nhãn của các hình ảnh được phân đoạn theo km dựa trên phương tiện phân cụm, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/32097758/
Tôi muốn lấy giá trị trung bình của các cột nhất định cho mỗi hàng. Tôi có dữ liệu này: w=c(5,6,7,8) x=c(1,2,3,4) y=c(1,2,3) length(y)=4 z=data.frame (w,x,y) trả về:
Tương tự như giá trị trung bình Numpy với điều kiện, câu hỏi của tôi mở rộng nó để hoạt động trên ma trận: tính trung bình hàng của ma trận rdat, bỏ qua một số ô nhất định - trong trường hợp này tôi đã sử dụng 0 làm ô để bỏ qua - như các giá trị này từ một
Tôi có một tập dữ liệu với các tiêu đề cột như tên sản phẩm, thương hiệu, xếp hạng (1:5), văn bản đánh giá, tính hữu ích của đánh giá. Điều tôi cần là đưa ra một thuật toán đề xuất sử dụng các bài đánh giá. Tôi phải sử dụng python để viết mã ở đây. Tập dữ liệu có định dạng .csv. Để xác định số
Tôi có n điểm trong R^3 và tôi muốn che chúng bằng k hình elip hoặc hình trụ (tôi không quan tâm; cái nào dễ hơn). Tôi muốn giảm thiểu sự kết hợp của khối lượng một cách gần đúng. Giả sử n là hàng chục nghìn và k là số ít. Thời gian phát triển (tức là tính đơn giản) quan trọng hơn thời gian chạy. Rõ ràng là tôi có thể may mắn
Tôi đã tạo một chương trình tính giá trị trung bình, trung vị và phương sai. Chương trình chấp nhận tới 500 đầu vào. Tất cả các phương thức của tôi đều hoạt động hoàn hảo khi có 500 đầu vào (kích thước tối đa của mảng của tôi). Khi có ít đầu vào hơn, chỉ có máy tính "Trung bình" hoạt động. Đây là toàn bộ chương trình
Mình đã tính toán khoảng cách và lưu trong vectơ lực đẩy, ví dụ mình có 2 centroid và 5 điểm dữ liệu, cách mình tính khoảng cách là, với mỗi centroid trước tiên mình tính khoảng cách của 5 điểm dữ liệu rồi lưu vào mảng rồi sau đó một cái khác trong mảng 1D có khoảng cách
Mã bên dưới hoạt động với tổng số trong mỗi cột, nhưng tôi muốn tính giá trị trung bình cho từng loài. # Đọc file dữ liệu vào mảng data = numpy.genfromtxt('data/iris.csv',
Tôi có một yêu cầu duy nhất, tôi cần giá trị trung bình của các cột chung (mỗi hàng) của hai khung dữ liệu. Tôi không thể nghĩ ra cách Pythonic để làm điều này. Tôi biết tôi có thể lặp qua cả hai khung dữ liệu và tìm cột công khai, sau đó lấy phần phẳng của các hàng có khóa khớp với nhau
Tôi ném cái này ra ngoài kia với hy vọng ai đó sẽ thử điều gì đó lố bịch như thế này. Mục tiêu của tôi là chụp ảnh đầu vào và phân đoạn nó dựa trên độ lệch chuẩn của một cửa sổ nhỏ xung quanh mỗi pixel. Về cơ bản, điều này phải tương tự về mặt toán học với bộ lọc Gaussian hoặc bộ lọc hộp ở chỗ nó sẽ được áp dụng tại thời điểm biên dịch (hoặc thậm chí là thời gian chạy) với
Có cách nào để vector hóa một hàm sao cho đầu ra là một mảng phương tiện, trong đó mỗi giá trị trung bình biểu thị giá trị trung bình của giá trị được lập chỉ mục 0 của mảng đầu vào không? Việc lặp lại điều này khá đơn giản nhưng tôi đang cố gắng hiệu quả nhất có thể. Ví dụ: 0 = trung bình(0), 1 = trung bình(0-1), N
Tôi đang cố gắng tạo các số ngẫu nhiên được phân phối theo cấp số nhân với giá trị trung bình là 1. Tôi biết cách lấy các số ngẫu nhiên có phân phối chuẩn với độ lệch trung bình và độ lệch chuẩn. Chúng ta có thể lấy nó theo cách bình thường (trung bình, độ lệch chuẩn), nhưng tôi không biết làm cách nào để lấy số mũ
Tôi đã xem qua một đoạn mã Python trông giống như sau: a = np.array([1,2,3,4,5,6,7]) a array([1, 2, 3, 4, 5 , 6, 7]) np.mean(a
Tôi có hai mảng. x là biến độc lập và số đếm là số lần x xuất hiện, giống như biểu đồ. Tôi biết tôi có thể tính giá trị trung bình bằng cách xác định hàm: def Mean(x,counts): return np.sum
Tôi có thuật toán tính tốc độ trung bình trong python thuần: speed = [...] avg_speed = 0,0 speed_count = 0 for i in speed: if i > 0:
Tôi đang cố gắng tính mức trung bình trên một cửa sổ mở rộng, nhưng cấu trúc dữ liệu sao cho các câu trả lời trước đó thiếu ít nhất một chút những gì cần thiết (gần nhất là :link). Dữ liệu của tôi trông như thế này: Company TimePeriod PersonalID
Tôi đang cố gắng triển khai thuật toán Kmeans trong python sẽ sử dụng khoảng cách cosine thay vì khoảng cách euclide làm thước đo khoảng cách. Tôi biết rằng việc sử dụng các hàm khoảng cách khác nhau có thể gây tử vong và nên thận trọng khi sử dụng. Sử dụng khoảng cách cosine làm thước đo buộc tôi phải thay đổi
Có ai biết bản đồ tự tổ chức (SOM) so với k-mean như thế nào không? Tôi tin rằng nói chung trong một không gian màu (ví dụ: RGB) SOM là cách tốt hơn để phân cụm các màu lại với nhau vì có sự chồng chéo về không gian màu giữa các màu trực quan khác nhau ( http://ww
LƯU Ý: Tôi đã hy vọng được hướng dẫn thêm về cách xử lý và đưa ra giải pháp như vậy chứ không phải bản thân giải pháp đó. Có một tính năng rất quan trọng trong hệ thống của tôi hiển thị dưới dạng điểm phát sóng phân tích số 1 trong một ngữ cảnh cụ thể. Nó đang ở giữa quá trình lặp k-mean (đã có nhiều
Tôi có một khung dữ liệu gấu trúc trông như thế này: Mọi giá trị trong một hàng nhất định đều có cùng số hoặc NaN. Tôi muốn tính giá trị trung bình, trung vị và số lượng của tất cả hai kết hợp cột trong một khung dữ liệu trong đó không có cột nào là NaN. Ví dụ: kết quả của khung dữ liệu trên
Có ai biết cách điều chỉnh thuật toán K-mean đơn giản để xử lý các tập dữ liệu ở dạng này Câu trả lời hay nhất Cách đơn giản nhất để xử lý dữ liệu ở dạng này trong khi vẫn sử dụng k-mean là sử dụng phiên bản k-mean được kernel hóa. JSAT
Tôi là một lập trình viên xuất sắc, rất giỏi!