Phân cụm dữ liệu và ứng dụng trong phân loại cấu trúc protein

70 234 1
Phân cụm dữ liệu và ứng dụng trong phân loại cấu trúc protein

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT & TRUYỀN THÔNG TRẦN ĐỨC THUẬN PHÂN CỤM DỮ LIỆU VÀ ỨNG DỤNG TRONG PHÂN LOẠI CẤU TRÚC PROTEIN LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT & TRUYỀN THÔNG TRẦN ĐỨC THUẬN PHÂN CỤM DỮ LIỆU VÀ ỨNG DỤNG TRONG PHÂN LOẠI CẤU TRÚC PROTEIN Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: PGS.TS ĐOÀN VĂN BAN THÁI NGUYÊN - 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn i LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Phân cụm liệu ứng dụng phân loại cấu trúc protein" công trình nghiên cứu riêng Các số liệu luận văn đƣợc sử dụng trung thực Kết nghiên cứu đƣợc trình bày luận văn chƣa đƣợc công bố công trình khác Tôi xin chân thành cảm ơn thầy cô Viện Công nghệ Thông tin, thầy cô Trƣờng Công Nghệ Thông Tin Truyền thông Thái Nguyên, thầy giáo Trần Đăng Hƣng - Giảng viên Khoa Công nghệ thông tin Trung tâm khoa học tính toán, Đại học Sƣ phạm Hà Nội, bạn bè, đồng nghiệp Trung tâm Thông tin Công nghệ - Sở Khoa học Công nghệ Thái Nguyên, Cục Dự trữ Nhà nƣớc khu vực Bắc Thái giúp đỡ nhiều trình học tập, sƣu tầm, tìm tòi tài liệu công tác để hoàn thành luận văn Tôi xin bày tỏ lòng kính trọng, biết ơn sâu sắc tới PGS.TS Đoàn Văn Ban, ngƣời trực tiếp hƣớng dẫn, giúp đỡ suốt thời gian thực luận văn Thái Nguyên, tháng 08 năm 2012 Học viên Trần Đức Thuận Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ii MỤC LỤC Lời cam đoan i Mục lục ii Danh mục bảng biểu v Danh mục hình v Mở đầu 1 Lý chọn đề tài Mục tiêu nghiên cứu Phƣơng pháp nghiên cứu Tổng quan luận văn CHƢƠNG 1-TỔNG QUAN LÝ THUYẾT VỀ PHÂN CỤM DỮ LIỆU 1.1 Tổng quan phân cụm liệu 1.2 Phân cụm phân loại liệu 1.3 Các yêu cầu phân cụm liệu 1.4 Các kiểu liệu phân cụm 1.4.1 Phân loại kiểu liệu dựa kích thƣớc miền 1.4.2 Phân loại kiểu liệu dựa hệ đo 1.5 Các phép đo độ tƣơng tự khoảng cách kiểu liệu 10 1.5.1 Khái niệm tƣơng tự phi tƣơng tự 10 1.5.2 Thuộc tính khoảng cách 11 1.5.3 Thuộc tính nhị phân 13 1.5.4 Thuộc tính định danh 15 1.5.5 Thuộc tính có thứ tự 16 1.5.6 Thuộc tính tỉ lệ 16 1.6 Kết luận chƣơng 17 CHƢƠNG - KỸ THUẬT PHÂN CỤM DỮ LIỆU ỨNG DỤNG TRONG PHÂN LOẠI CẤU TRÚC PROTEIN 18 2.1 Giới thiệu 18 2.2 Thuật toán K-means 18 2.3 Thuật toán PAM 22 2.4 Thuật toán CLARA 24 2.5 Thuật toán CLARANS 26 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iii 2.6 Kết luận chƣơng 28 CHƢƠNG - TIN SINH HỌC VÀ PHÂN LOẠI CẤU TRÚC PROTEIN 29 3.1 Tổng quan tin sinh học 29 3.1.1 Chủ thuyết trung tâm sinh học phân tử 29 3.1.2 DNA (DesoxyriboNucleic Acid) 30 3.1.3 RNA (RiboNucleic Acid) 31 3.1.4 Protein 31 3.1.5 Các dạng protein 32 3.2 Các phƣơng pháp phân loại cấu trúc protein 34 3.2.1 Phân loại cấu trúc với SCOP 38 3.2.2 Phân loại cấu trúc với CATH 39 3.2.3 Phân loại cấu trúc với phân loại miền Dali (DDD) 40 3.3 Kết luận chƣơng 41 CHƢƠNG - CHƢƠNG TRÌNH DEMO VỚI PHẦN MỀM CLUSTERS 3.0 42 4.1 Phần mềm Clusters 3.0 42 4.1.1 Yêu cầu phần cứng 42 4.1.2 Nguồn liệu demo chƣơng trình 42 4.1.3 Sử dụng thƣ viện phân cụm 42 4.2 Sử dụng thuật toán K-mean, K-medians 43 4.2.1 Khởi tạo 43 4.2.2 Tìm trọng tâm cụm 44 4.2.3 Tìm trung bình cụm, trung vị cụm 44 4.2.4 Tìm giải pháp tối ƣu với K-means K-medians 46 4.3 Phần mềm demo 48 4.3.1 Đầu vào chƣơng trình 48 4.3.2 Giao diện số chức chƣơng trình 49 4.3.3 Tệp đầu chƣơng trình 52 KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU 53 Kết luận 53 Hƣớng nghiên cứu thời gian tới 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC 56 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iv BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT Chữ viết tắt Nghĩa tiếng anh Nghĩa tiếng việt DesoxyriboNucleic Acid Phân tử nucleic acid mang thông tin di truyền mã hóa cho hoạt động sinh trƣởng phát triển dạng sống RNA RiboNucleic Acid Là hai loại axít nucleic, sở di truyền cấp độ phân PAM Partitioning Around Medoids Thuật toán phân cụm phân vùng xung quanh Medoids CLARA Clustering Large Application Thuật toán phân cụm ứng dụng lớn CLARANS Clustering Large Applications Thuật toán phân cụm với ứng based upon RANdomized dụng lớn sở tìm kiếm Search ngẫu nhiên rRNA ribosome RNA Là ARN mã hóa mang thông tin từ ADN tRNA transfer RNA Là RNA vận chuyển mRNA messenger RNA RNA thông tin SCOP Structural Classification of Proteins Phân loại cấu trúc protein CATH Class Architecture Topology Homologous superfamily Phân loại cấu trúc protein với CATH DDD Dali Domain Dictionary Từ điển miền Dali PDB Protein Data Bank Ngân hàng liệu protein FSSP Families of Structurally Similar Proteins Dòng họ protein với cấu trúc tƣơng tự DNA Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn v DANH MỤC BẢNG BIỂU Bảng 1.1 Bảng dự đoán cho hai đối tƣợng nhị phân x y…………… 14 Bảng 1.2 Ví dụ độ phi tƣơng tự thuộc tính nhị phân…………… 15 Bảng 2.1 Bảng so sánh thuật toán phân cụm trung tâm…………… 28 Bảng 3.1 Đƣa số nguồn tài nguyên phân loại trình tự protein… 35 Bảng 3.2 Nguồn tài nguyên cho phân loại cấu trúc protein…………… 36 Bảng 3.3 Các cấp độ CATH………………………………… 39 DANH MỤC CÁC HÌNH Hình 1.1 Phân cụm vector truy vấn Hình 1.2 Hình thành cụm cha Hình 1.3 Các tỉ lệ khác dẫn tới cụm khác Hình 2.1 Sơ đồ phân loại phƣơng pháp phân cụm………………… Hình 2.2 Các thiết lập để xác định danh giới cụm ban đầu Hình 2.3 Tính toán trọng tâm cụm Hình 2.4 Ví dụ minh họa thuật toán K-means Hình 2.5 Ví dụ minh họa thuật toán PAM Hình 3.1 Chủ thuyết trung tâm sinh học phân tử Hình 3.2 Cấu trúc DNA Hình 3.3 Các kiểu cấu trúc Protein Hình 3.4 Cấu trúc bậc thƣờng thấy protein Hình 3.5 Hai ví dụ protein màng Hình 3.6 Sự phát triển cấu trúc liệu protein Hình 4.1 Đầu vào liệu……………………………………………… Hình 4.2 Giao diện chọn tệp đầu vào…………………………………… Hình 4.3 Giao diện tab Lọc liệu…………………………………… Hình 4.4 Giao diện tab chỉnh sửa liệu……………………………… Hình 4.5 Giao diện Tab K-Means, sử dụng K-means K-medians để phân cụm………………………………………………………………… Hình 4.6 Đầu liệu………………………………………………… Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 12 18 19 20 21 24 30 30 32 33 34 35 48 49 49 50 51 52 MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI Với phát triển vƣợt bậc công nghệ thông tin, đặc biệt ứng dụng công nghệ thông tin vào ngành sinh học giúp ích nhiều cho việc tìm hiểu nghiên cứu sinh học phân tử Chính Tin sinh học, lĩnh vực mới, đời, sử dụng công nghệ ngành toán học ứng dụng, tin học, thống kê, khoa học máy tính, trí tuệ nhân tạo, hóa học, sinh học để giải vấn đề sinh học Nhƣ biết, sở phân tử sống dựa hoạt động phân tử sinh học, bao gồm axit nucleic (DNA RNA), carbohydrate, chất béo, protein Mặc dù loại đóng vai trò thiết yếu sống, nhƣng protein có bật chúng thành phần biểu diễn chức tế bào Chính vậy, tìm hiểu nghiên cứu cấu trúc phân tử sinh học lên nhƣ hƣớng với trải nghiệm hƣớng vào việc khám phá cấu trúc phân tử sinh học Hƣớng phát triển sinh học trải qua với phát triển cao thông qua nghiên cứu cấu trúc với mục đích có nhìn toàn diện không gian cấu trúc protein, thông tin lƣu trữ liệu cấu trúc protein chìa khóa để thành công nằm khả để tổ chức, phân tích thông tin chứa sở liệu, tích hợp thông tin với nỗ lực khác nhằm giải bí ẩn chức tế bào Nhận thấy tính thiết thực vấn đề đƣợc gợi ý giảng viên hƣớng dẫn, em chọn đề tài "Phân cụm liệu ứng dụng phân loại cấu trúc protein" MỤC TIÊU NGHIÊN CỨU - Tìm hiểu tổng quan lý thuyết phân cụm liệu - Nghiên cứu số kỹ thuật phân cụm liệu ứng dụng phân loại cấu trúc protein Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - Tìm hiểu Tin sinh học số vấn đề liên quan, nghiên cứu phƣơng pháp phân loại cấu trúc protein - Tìm hiểu sử dụng phần mềm Cluster 3.0 ứng dụng vào phân loại cấu trúc protein PHƢƠNG PHÁP NGHIÊN CỨU - Nghiên cứu qua tài liệu nhƣ: sách, sách điện tử, báo, thông tin tài liệu website tài liệu liên quan - Phân tích, tổng hợp lý thuyết giới thiệu phân cụm liệu số thuật toán phân cụm liệu dựa vào cụm trung tâm ứng dụng phân loại cấu trúc protein - Tìm hiểu sử dụng phần mềm Cluster 3.0 ứng dụng thuật toán Kmeans để phân loại cấu trúc protein TỔNG QUAN LUẬN VĂN Luận văn đƣợc trình bày chƣơng phần kết luận, với nội dung đƣợc trình bày từ việc tìm hiểu khái niệm đến nội dung cần sâu tìm hiểu, giúp ngƣời đọc có nhìn tổng quan nhƣ vấn đề đƣợc nghiên cứu: - Chƣơng - Tổng quan: Giới thiệu tổng quan lý thuyết phân cụm liệu - Chƣơng - Một số kỹ thuật phân cụm liệu ứng dụng phân loại cấu trúc protein - Chƣơng - Tin sinh học Phân loại cấu trúc Protein - Chƣơng - Chƣơng trình Demo với phần mềm cluster 3.0 - Kết luận - Tóm tắt nội dung chính, kết đạt đƣợc hƣớng nghiên cứu luận văn Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn CHƢƠNG TỔNG QUAN LÝ THUYẾT VỀ PHÂN CỤM DỮ LIỆU 1.1 TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU Phân cụm chia liệu thành nhóm mà đối tƣợng nhóm giống theo nghĩa khác với đối tƣợng nhóm khác Mỗi nhóm đƣợc gọi cluster Mỗi đối tƣợng đƣợc mô tả tập độ đo mối quan hệ với đối tƣợng khác Cũng có nhiều định nghĩa cluster, nhƣng định nghĩa sau đƣợc sử dụng nhiều [4]: - "Một cluster tập đối tƣợng giống khác với đối tƣợng không cluster đó" - "Một cluster tập điểm không gian mà khoảng cách hai điểm nhỏ khoảng cách điểm điểm ngoài" - "Các cluster đƣợc mô tả nhƣ miền liên thông không gian đa chiều chứa mật độ tƣơng đối cao điểm, phân biệt miền mật độ thấp điểm" Phân cụm có ý nghĩa quan trọng hoạt động ngƣời từ y tế, giáo dục, xử lý thông tin, nghiên cứu phân tích thị trƣờng,… Phân cụm đƣợc sử dụng rộng rãi nhiều ứng dụng, bao gồm nhận dạng mẫu, phân tích liệu, xử lý ảnh, nghiên cứu thị trƣờng, phân loại tin sinh học,… Bằng phân cụm, thƣơng mại giúp nhà phân tích thị trƣờng tìm nhóm khách hàng có nhu cầu riêng dựa độ tuổi, sở thích tâm lý tiêu dùng Trong sinh học, đƣợc sử dụng để phân loại thực vật, động vật, phân loại cấu trúc protein dựa cấu trúc tƣơng đồng vốn có, từ xây dựng ngân hàng liệu protein Trong xử lý thông tin, phân cụm giúp phân loại tài liệu với dạng lƣu trữ văn, đĩa Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 49 4.3.2 Giao diện số chức chƣơng trình - Giao diện chọn file đầu vào: Hình 4.2 Giao diện chọn tệp đầu vào - Giao diện tab Lọc liệu: Hình 4.3 Giao diện tab Lọc liệu Tab Data Filter cho phép ta để loại bỏ gen thuộc tính mong muốn từ sở liệu Các thuộc tính đƣợc sử dụng để lọc liệu % Present> = X - Thuộc tính cho phép loại bỏ tất gen bị giá trị lớn (100 - X ) phần trăm cột SW (Gene Vector)> = X - Điều loại bỏ tất gen có độ lệch chuẩn giá trị nhận xét đƣợc X Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 50 At least X observation with abs (Val)> = Y Điều loại bỏ tất gen X nhận xét với giá trị tuyệt đối lớn so với Y MaxVal - MinVal> = X Điều loại bỏ tất gene có giá trị tối đa trừ giá trị tối thiểu nhỏ so với X Ghi chú: Khi ta bấm nút Filter, lọc không áp dụng cho tập liệu Khi lần bấm Filter, có thông báo có gen thông qua lọc Nếu muốn chấp nhận kết lọc, bấm Accept, không thay đổi đƣợc thực - Giao diện tab Chỉnh sửa liệu: Hình 4.4 Giao diện tab chỉnh sửa liệu Từ tab liệu Ajust data, ta thực số hoạt động thay đổi liệu từ liệu đầu vào Các hoạt động là: - Log Transform Data: thay tất liệu giá trị x cách đăng log2(x) - Center genes [mean median]: Tùy chọn mean median từ giá trị hàng liệu, giá trị trung bình trung bình hàng Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 51 - Center arrays [mean median]: Trừ cột mean median từ giá trị cột liệu, giá trị trung bình trung bình cột - Normalize genes: Nhân tất giá trị hàng liệu với hệ số tỷ lệ S để tổng bình phƣơng giá trị hàng 1.0 (riêng S đƣợc tính cho hàng) - Normalize genes: Nhân tất giá trị cột liệu với hệ số tỉ lệ S để tổng bình phƣơng giá trị cột 1.0 (riêng S đƣợc tính cho cột) Các hoạt động riêng rẽ, thứ tự hoạt động đƣợc áp dụng quan trọng, nên xem xét cẩn thận trƣớc áp dụng hoạt động Thứ tự hoạt động: + Log transform all values + Center rows by subtracting the mean or median + Normalize rows + Center columns by subtracting the mean or median + Normalize columns - Giao diện Tab k-Means, sử dụng K-means K-medians để phân cụm Hình 4.5 Giao diện Tab k-Means, sử dụng K-means K-medians Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 52 Với hai khung Genes Arrays, ngƣời dùng chọn trƣớc số cụm k số lần chạy thuật toán nhƣ hình vẽ Chƣơng trình cho phép ngƣời dùng sử dụng loại K-means K-medians chọn độ đo tƣơng tự với tùy chọn nhƣ tính theo khoảng cách Euclide khoảng cách City-block 4.3.3 Tệp đầu chƣơng trình Là file text (Có thể mở tệp đầu Excel) với gen có cấu trúc tƣơng tự đƣợc phân cụm xếp theo tham số đầu vào chƣơng trình Hình 4.6 Đầu liệu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 53 KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU KẾT LUẬN Trong luận văn tìm hiểu, nghiên cứu số vấn đề sau: - Luận văn trình bày lý thuyết phân cụm liệu, số thuật toán phân cụm liệu dựa vào cụm trung tâm để ứng dụng vào phân loại cấu trúc protein - Giới thiệu Protein, cấu trúc, chức protein, số phƣơng pháp phân loại cấu trúc protein - Luận văn sử dụng chƣơng trình Cluster 3.0 với mục đích biểu diễn phân cụm liệu sử dụng thuật toán K-means K-medians Chƣơng trình có sử dụng thƣ viện phân cụm C áp dụng thuật toán K-means, Kmedians để tìm trung tâm cụm, trung vị cụm xử lý phân cụm dựa hai thuật toán Với nhiệm vụ nghiên cứu tìm hiểu việc áp dụng số thuật toán phân cụm để phân loại cấu trúc protein Tuy nhiên chƣơng trình có nhiều hạn chế: - Chƣơng trình sử dụng đầu vào tập tin txt (có thể mở với excel) chƣa sử dụng định dạng protein từ đƣợc ngân hàng liệu protein PDB để phân loại - Chƣơng trình dừng việc sử dụng thuật toán K-means K-medians HƢỚNG NGHIÊN CỨU TRONG THỜI GIAN TỚI Trong tƣơng lai đề tài phát triển theo hƣớng nghiên cứu phân loại Protein với phân loại trình tự, phân loại cấu trúc protein Tìm hiểu ngân hàng liệu protein sử dụng nguồn liệu chƣơng trình Cơ sở liệu protein lớn đa dạng cho nhiều loài, cần sử dụng thuật toán có tốc độ xử lý tốt Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 54 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Lƣu Thị Hải Yến (2008), Luận văn Thạc sỹ - Đề tài: Nghiên cứu phát triển hệ thống đa phương tiện sở phân cụm liệu, Đại học Thái Nguyên- Khoa công nghệ thông tin [2] Nguyễn Q.D., Trần Đ.H., Trần T.T.B., Phạm T.H (2011) Dự đoán chức protein phƣơng pháp phân cụm liệu, Đặc san CNTT, Tạp chí Khoa học ĐHSPHN, 56, 3-16 Tiếng Anh [3] A.K Jain, M.N Murty and P,J Flyn (1999), Data Clustering: A Review, ACM Computing Survey [4] A.K Jain, Richard C Dubes (1988), Algorithms for Clustering Data, Prentice Hall, Englewood Cliffs, New Jersey 07632 [5] Patrice Koehl (2006), Protein Structure Classification, Department of Computer Science and Genome Center, University of California, Davis, California [6] Michiel Jan Laurens de Hoon (2010), The C Clustering Library for cDNA microarray data, The University of Tokyo, Institute of Medical Science, Human Genome Center, University of Tokyo, 4-6-1 Shirokanedai, Minato-ku, Tokyo 108-8639, Japan [7] Michael Eisen; updated by Michiel de Hoon (2002), Cluster 3.0 Manual, Human Genome Center, University of Tokyo, 4-6-1 Shirokanedai, Minato-ku, Tokyo 108-8639, Japan [8] Michelle Kamber and Jiawei Han (2001), Data Mining: Concepts and Techniques Morgan Kaufmann Publishers, University of Illinois at Urbana-Champaign, 500 Sansome Street, Suite 400, San Francisco, CA 94111 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 55 [9] Michael R Anderberg (1973), Cluster analysis for applications Academic Press [10] Periklis Andritsos (2002), Data Clustering Technique, University of Toronto, Department of Computer Science Nguồn internet: [11] http://bonsai.hgc.jp/~mdehoon/software/cluster/software.htm [12] http://en.wikipedia.org/wiki/Structural_Classification_of_Proteins_ database [13] http://en.wikipedia.org/wiki/CATH [14] http://rana.lbl.gov/EisenSoftware.htm [15] http://www.agbiotech.com.vn/vn/?mnu=preview&key=475 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 56 PHỤ LỤC /* ********HÀM GETCLUSTERCENTROIDS*******/ int getclustercentroids(int nclusters, int nrows, int ncolumns,double** data, int** mask, int clusterid[], double** cdata, int** cmask,int transpose, char method) { switch(method) { case 'm': { const int nelements = (transpose==0) ? nrows: ncolumns; double* cache = malloc(nelements*sizeof(double)); if (!cache) return 0; getclustermedians(nclusters, nrows, ncolumns, data, mask, clusterid, cdata, cmask, transpose, cache); free(cache); return 1; } case 'a': { getclustermeans(nclusters, nrows, ncolumns, data, mask, clusterid, cdata, cmask, transpose); return 1; } } return 0; } /* **********THỦ TỤC GETCLUSTERMEANS******* */ static void getclustermeans(int nclusters, int nrows, int ncolumns, double** data, int** mask, int clusterid[], double** cdata, int** cmask, int transpose) { int i, j, k; if (transpose==0) { for (i = 0; i < nclusters; i++) { for (j = 0; j < ncolumns; j++) { cmask[i][j] = 0; cdata[i][j] = 0.; } } for (k = 0; k < nrows; k++) { i = clusterid[k]; for (j = 0; j < ncolumns; j++) { if (mask[k][j] != 0) { cdata[i][j]+=data[k][j]; cmask[i][j]++; } } } for (i = 0; i < nclusters; i++) { for (j = 0; j < ncolumns; j++) { if (cmask[i][j]>0) { cdata[i][j] /= cmask[i][j]; cmask[i][j] = 1; } Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 57 } } } else { for (i = 0; i < nrows; i++) { for (j = 0; j < nclusters; j++) { cdata[i][j] = 0.; cmask[i][j] = 0; } } for (k = 0; k < ncolumns; k++) { i = clusterid[k]; for (j = 0; j < nrows; j++) { if (mask[j][k] != 0) { cdata[j][i]+=data[j][k]; cmask[j][i]++; } } } for (i = 0; i < nrows; i++) { for (j = 0; j < nclusters; j++) { if (cmask[i][j]>0) { cdata[i][j] /= cmask[i][j]; cmask[i][j] = 1; } } } } } /* ****************THỦ TỤC GETCLUSTERMEDIANS***********/ static void getclustermedians(int nclusters, int nrows, int ncolumns, double** data, int** mask, int clusterid[], double** cdata, int** cmask,int transpose, double cache[]) { int i, j, k; if (transpose==0) { for (i = 0; i < nclusters; i++) { for (j = 0; j < ncolumns; j++) { int count = 0; for (k = 0; k < nrows; k++) { if (i==clusterid[k] && mask[k][j]) { cache[count] = data[k][j]; count++; } } if (count>0) { cdata[i][j] = median(count,cache); cmask[i][j] = 1; } else { cdata[i][j] = 0.; cmask[i][j] = 0; } } } } else Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 58 { for (i = 0; i < nclusters; i++) { for (j = 0; j < nrows; j++) { int count = 0; for (k = 0; k < ncolumns; k++) { if (i==clusterid[k] && mask[j][k]) { cache[count] = data[j][k]; count++; } } if (count>0) { cdata[j][i] = median(count,cache); cmask[j][i] = 1; } else { cdata[j][i] = 0.; cmask[j][i] = 0; } } } } } /* *************THỦ TUC KCLUSTER********** */ void kcluster (int nclusters, int nrows, int ncolumns,double** data, int** mask, double weight[], int transpose,int npass, char method, char dist, int clusterid[], double* error, int* ifound) */ { const int nelements = (transpose==0) ? nrows: ncolumns; const int ndata = (transpose==0) ? ncolumns: nrows; int i; int ok; int* tclusterid; int* mapping = NULL; double** cdata; int** cmask; int* counts; if (nelements < nclusters) { *ifound = 0; return; } /* More clusters asked for than elements available */ *ifound = -1; /* This will contain the number of elements in each cluster, which is * needed to check for empty clusters */ counts = malloc(nclusters*sizeof(int)); if(!counts) return; /* Find out if the user specified an initial clustering */ if (npass1) { free(tclusterid); free(mapping); return; } } if (method=='m') { double* cache = malloc(nelements*sizeof(double)); if(cache) { *ifound = kmedians(nclusters, nrows, ncolumns, data, mask, weight, transpose, npass, dist, cdata, cmask, clusterid, error, tclusterid, counts, mapping, cache); free(cache); } } else *ifound = kmeans(nclusters, nrows, ncolumns, data, mask, weight, transpose, npass, dist, cdata, cmask, clusterid, error, tclusterid, counts, mapping); /* Deallocate temporarily used space */ if (npass > 1) { free(mapping); free(tclusterid); } if (transpose==0) freedatamask(nclusters, cdata, cmask); else freedatamask(ndata, cdata, cmask); free(counts); } /* ********************************************************************* */ static int kmeans(int nclusters, int nrows, int ncolumns, double** data, int** mask, Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 60 double weight[], int transpose, int npass, char dist, double** cdata, int** cmask, int clusterid[], double* error, int tclusterid[], int counts[], int mapping[]) { int i, j, k; const int nelements = (transpose==0) ? nrows: ncolumns; const int ndata = (transpose==0) ? ncolumns: nrows; int ifound = 1; int ipass = 0; /* Set the metric function as indicated by dist */ double (*metric) (int, double**, double**, int**, int**, const double[], int, int, int) = setmetric(dist); /* We save the clustering solution periodically and check if it reappears */ int* saved = malloc(nelements*sizeof(int)); if (saved==NULL) return -1; *error = DBL_MAX; { double total = DBL_MAX; int counter = 0; int period = 10; /* Perform the EM algorithm First, randomly assign elements to clusters */ if (npass!=0) randomassign (nclusters, nelements, tclusterid); for (i = 0; i < nclusters; i++) counts[i] = 0; for (i = 0; i < nelements; i++) counts[tclusterid[i]]++; /* Start the loop */ while(1) { double previous = total; total = 0.0; if (counter % period == 0) /* Save the current cluster assignments */ { for (i = 0; i < nelements; i++) saved[i] = tclusterid[i]; if (period < INT_MAX / 2) period *= 2; } counter++; /* Find the center */ getclustermeans(nclusters, nrows, ncolumns, data, mask, tclusterid, cdata, cmask, transpose); for (i = 0; i < nelements; i++) /* Calculate the distances */ { double distance; k = tclusterid[i]; if (counts[k]==1) continue; /* No reassignment if that would lead to an empty cluster */ /* Treat the present cluster as a special case */ distance = metric(ndata,data,cdata,mask,cmask,weight,i,k,transpose); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 61 for (j = 0; j < nclusters; j++) { double tdistance; if (j==k) continue; tdistance = metric(ndata,data,cdata,mask,cmask,weight,i,j,transpose); if (tdistance < distance) { distance = tdistance; counts[tclusterid[i]] ; tclusterid[i] = j; counts[j]++; } } total += distance; } if (total>=previous) break; /* total>=previous is FALSE on some machines even if total and previous * are bitwise identical */ for (i = 0; i < nelements; i++) if (saved[i]!=tclusterid[i]) break; if (i==nelements) break; /* Identical solution found; break out of this loop */ } if (npass=previous) break; /* total>=previous is FALSE on some machines even if total and previous * are bitwise identical */ for (i = 0; i < nelements; i++) if (saved[i]!=tclusterid[i]) break; if (i==nelements) break; /* Identical solution found; break out of this loop */ } if (npass[...]... THUẬT PHÂN CỤM DỮ LIỆU ỨNG DỤNG TRONG PHÂN LOẠI CẤU TRÚC PROTEIN 2.1 GIỚI THIỆU Các kỹ thuật phân cụm có rất nhiều cách tiếp cận và các ứng dụng trong thực tế Các kỹ thuật phân cụm đều hƣớng tới hai mục tiêu chung: chất lƣợng của các cụm khám phá đƣợc và tốc độ thực hiện của thuật toán Dƣới đây là sơ đồ phân loại các phƣơng pháp phân cụm dữ liệu [3]: Hình 2.1 Sơ đồ phân loại các phƣơng pháp phân cụm Trong. .. phân cụm - Khả năng thích nghi với dữ liệu nhiễu: Hầu hết những cơ sở dữ liệu thực đều chứa đựng dữ liệu ngoại lai, dữ liệu lỗi, dữ liệu chƣa biết hoặc dữ liệu sai Một số thuật toán phân cụm nhạy cảm với dữ liệu nhƣ vậy và có thể dẫn đến chất lƣợng phân cụm thấp - Ít nhạy cảm với thứ tự của các dữ liệu vào: Một số thuật toán phân cụm nhạy cảm với thứ tự của dữ liệu vào, ví dụ nhƣ với cùng một tập dữ. .. toán phân cụm trung tâm Thuật toán phân cụm trung tâm Thuật toán Tham số đầu vào Tối ƣu hóa cho Cấu trúc phân cụm Độ phức tạp thuật toán K-means Số các phân cụm Phân chia các phân cụm Hình cầu O(tkn) PAM Số các phân cụm Phân chia các phân cụm, Dữ liệu nhỏ Hình cầu O(tk(n-k)2) CLARA Số các phân cụm Dữ liệu lớn Hình cầu O(ks2+k(n-k)) Số các phân cụm, Số đối tƣợng hàng xóm Dữ liệu không gian, chất lƣợng phân. .. - Dễ hiểu và dễ sử dụng: Ngƣời sử dụng có thể chờ đợi những kết quả phân cụm dễ hiểu, dễ lý giải và dễ sử dụng Nghĩa là, sự phân cụm có thể cần đƣợc giải thích ý nghĩa và ứng dụng rõ ràng Việc nghiên cứu cách để một ứng dụng đạt đƣợc mục tiêu là rất quan trọng, có thể gây ảnh hƣởng tới sự lựa chọn các phƣơng pháp phân cụm 1.4 CÁC KIỂU DỮ LIỆU TRONG PHÂN CỤM Trong phân cụm, các đối tƣợng dữ liệu thƣờng... phƣơng pháp phân cụm Trong sơ đồ phân thành hai nhóm chính là phân cụm phân cấp và phân cụm dựa vào cụm trung tâm (K-means, PAM, CLARA, CLARANS) Trong giới hạn tìm hiểu, luận văn chỉ đi sâu vào một số thuật toán phân cụm dựa vào cụm trung tâm nhằm áp dụng phân loại cấu trúc protein 2.2 THUẬT TOÁN K-MEANS K-means là thuật toán phân cụm theo các phần tử bởi trung tâm của các cụm Phƣơng pháp này dựa trên... tƣơng tự đƣợc nhóm thành cụm Trọng tâm các cụm hoặc /và các mục trong mỗi cụm đƣợc tổ chức nhờ cấu trúc dữ liệu nào đó để tìm kiếm hiệu quả 1.3 CÁC YÊU CẦU CỦA PHÂN CỤM DỮ LIỆU Phân cụm là một thách thức trong lĩnh vực nghiên cứu ở chỗ những ứng dụng tiềm năng của chúng đƣợc đƣa ra ngay chính trong những yêu cầu đặc biệt của chúng, sau đây là một số yêu cầu cơ bản của phân cụm dữ liệu [1]: - Có khả năng... ổ cứng, trên mạng internet thành giúp tạo lập và hoàn chỉnh kho dữ liệu khổng lồ về tri thức của loài ngƣời Là một chức năng khai phá dữ liệu, phân cụm có thể sử dụng nhƣ một công cụ độc lập để quan sát đặc trƣng của mỗi cụm thu đƣợc bên trong sự phân bố dữ liệu và tập trung vào một tập riêng biệt của các cụm để phân tích Phân cụm có thể dụng nhƣ một bƣớc tiền xử lý cho các thuật toán nhƣ phân loại, ... hiệu quả cao trong việc đảm bảo chất lƣợng cũng nhƣ chi phí tính toán 1.6 KẾT LUẬN CHƢƠNG Chƣơng 1 nêu những kiến thức cơ bản về khái niệm phân cụm, các yêu cầu trong phân cụm dữ liệu đối với thực tế, các kiểu thuộc tính dữ liệu trong phân cụm, một số phép đo khoảng cách phổ biến cũng nhƣ một số thuộc tính phố biến áp dụng trong các thuật toán phân cụm dữ liệu Số hóa bởi Trung tâm Học liệu – Đại học... thuật toán phân cụm áp dụng tốt cho dữ liệu với số chiều thấp, bao gồm chỉ từ hai đến 3 chiều Ngƣời ta đánh giá việc phân cụm là có chất lƣợng tốt nếu nó áp dụng đƣợc cho dữ liệu có từ 3 chiều trở lên Nó là sự thách thức với các đối tƣợng dữ liệu cụm trong không gian với số chiều lớn, đặc biệt vì khi xét những không gian với số chiều lớn và có độ nghiêng lớn - Phân cụm ràng buộc: Nhiều ứng dụng thực... các cơ sở dữ liệu lớn? - Khả năng thích nghi với các kiểu thuộc tính khác nhau: Nhiều thuật toán đƣợc thiết kế cho việc phân cụm dữ liệu có kiểu khoảng (kiểu số) Tuy nhiên, nhiều ứng dụng có thể đòi hỏi việc phân cụm với nhiều kiểu dữ liệu khác nhau, nhƣ kiểu nhị phân, kiểu tƣờng minh (định danh - không thứ tự), và dữ liệu có thứ tự hay dạng hỗn hợp của những kiểu dữ liệu này - Khám phá các cụm với hình ... tài "Phân cụm liệu ứng dụng phân loại cấu trúc protein" MỤC TIÊU NGHIÊN CỨU - Tìm hiểu tổng quan lý thuyết phân cụm liệu - Nghiên cứu số kỹ thuật phân cụm liệu ứng dụng phân loại cấu trúc protein. .. thiệu phân cụm liệu số thuật toán phân cụm liệu dựa vào cụm trung tâm ứng dụng phân loại cấu trúc protein - Tìm hiểu sử dụng phần mềm Cluster 3.0 ứng dụng thuật toán Kmeans để phân loại cấu trúc protein. .. VỀ PHÂN CỤM DỮ LIỆU 1.1 Tổng quan phân cụm liệu 1.2 Phân cụm phân loại liệu 1.3 Các yêu cầu phân cụm liệu 1.4 Các kiểu liệu phân cụm 1.4.1 Phân loại

Ngày đăng: 04/01/2016, 01:03

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan