1. Trang chủ
  2. » Giáo án - Bài giảng

Lập trình cho khoa học dữ liệu phần 2

156 30 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 156
Dung lượng 6,54 MB

Nội dung

LOGO LẬPTRÌNH CHO KHOA HỌC DỮ LIỆU Bài Thư viện numpy Nội dung Mộtsốgóitrongpython choKHDL Giới thiệu numpy Khởi tạo mảng số Các phép toán mảng Mộtsốthaotáccơbản Một số gói python cho KHDL ▪ Ngơn ngữ python có hệ thống gói phong phú, hỗ trợ nhiều lĩnh vực khác nhau, từ xây dựng ứng dụng, xử lý web, xử lý text, xử lý ảnh,… ▪ Sửdụng pip để tải gói từ internet ▪ Một số gói dành cho lập trình thơngthường: ▪ os: xử lý file tương tác với hệ điều hành ▪ networkx igraph: làm việc với liệu đồ thị,có thể làm việc với liệu lớn (đồ thị hàng triệu đỉnh) ▪ regular expressions: tìmkiếm mẫu liệu text ▪ BeautifulSoup: trích xuất liệu từ fileHTML từ website Một số gói python cho KHDL ▪ NumPy (Numerical Python): gói chuyên xử lý liệu số (nhiều chiều); gói chứa hàm đại số tuyến tính bản, biến đổi fourier, sinh số ngẫu nhiên nâng cao,… ▪ SciPy (Scientific Python): dựa Numpy, cung cấp công cụ mạnh cho khoa học kỹ nghệ, chẳng hạn biến đổi fourier rời rạc, đại số tuyến tính, tối ưu hóa ma trận thưa ▪ Matplotlib: chuyên sử dụng để vẽ biểu đồ, hỗtrợ nhiều loại biểu đồ khácnhau Một số gói python cho KHDL ▪ Pandas: chuyên sử dụng cho quản lý tương tác với liệu có cấu trúc, sử dụng rộng rãi việc thu thập tiền xử lý dữliệu ▪ Scikit Learn: chuyên học máy, dựa NumPy, SciPy matplotlib; thư viện có sẵn nhiều cơng cụ hiệu cho học máy thiết lập mô hìnhthống kê chẳng hạn thuật tốn phân lớp, hồi quy, phân cụm giảm chiều liệu ▪ Statsmodels: cho phép người sử dụng khám phá liệu, ước lượng mơ hình thống kê kiểm định Một số gói python cho KHDL ▪ Seaborn: dự matplotlib, cung cấp công cụ diễn thị (visualization) liệu thốngkê đẹp hiệu quả, mục tiêu gói sử dụng việc diễn thị trọng tâm khám phá hiểu dữliệu ▪ Bokeh: để tạo ô tương tác, biểu đồtổng quan web, hiệu tương tác với liệu lớn trực tuyến ▪ Blaze: gói dựa Numpy Pandas hướng đến liệu phân tán truyền phát, làcông cụ mạnh mẽ tạo diễn thị liệucực lớn Một số gói python cho KHDL ▪ Scrapy: chuyên thu thập thông tin web, phù hợp với việc lấy liệu theo mẫu ▪ SymPy: tính tốn chun ngành dùng cho số học, đại số, toán rời rạc vật lý lượngtử ▪ Theano: gói chun dùng tính tốn hiệu mảng nhiều chiều, sử dụng rộng rãi học máy ▪ TensorFlow: gói chuyên dùng cho học máy Google, đặc biệt mạng thần kinh nhântạo ▪ Keras: thư viện cấp cao chuyên học máy, sử dụng Theano, TensorFlow CNTKlàm phụ trợ Giới thiệu Numpy ▪ NumPy thư viện bổ sung python, khơng có sẵn, ta phải cài đặt: pi p i n s t a l l numpy ▪ Một số hệ thống python có sẵn numpy bỏ qua bước ▪ Cách đơn giản để kiểm tra xem hệ thống cài numpy hay khơng thử import gói xem có bị báo lỗi hay không: import numpy as np Giới thiệu Numpy Đặc điểm Numpy ▪ Đối tượng NumPy mảng đa chiều đồng (homogeneous multidimention array) Kiểu liệu phần tử trongmảng phải giống Mảng chiều nhiềuchiều Các chiều (axis) đánh thứ tự từ trởđi Số chiều gọi hạng(rank) Có đến 24 kiểu số khácnhau Kiểu ndarray lớp xử lý liệu mảng nhiều chiều ▪ Rất nhiều hàm phương thức xử lý ma trận ▪ ▪ ▪ ▪ ▪ ▪ Giới thiệu Numpy Tạo truy cập mảng import numpy as np a = np.array([1, 2, ] ) print(type(a)) print(a.shape) p r i n t ( a [ ] , a [ ] , a[2]) a[0] = # tạo mảng1 chiều # i n "" # in "(3,)" # i n "1 3" print(a) # i n " [ , 2, 3]" b = np.array([[1, 2, ] , [ , 5, ] ] ) # tạo mảng2 chiều print(b.shape) # i n " ( , 3)" print(b[0, ] , b[0, ] , b[1, ] ) # i n "1 4" print(np.diag([1, 3, ] ) ) # i n gì? 10 Phân lớp SVM Định nghĩa (Linear SVM – Trường hợp phân tách được) ◼ Tập gồm r ví dụ huấn luyện phân tách tuyến tính D = {(x1,y1), (x2,y2), …, (xr,yr)} ◼ ◼ SVM học phân lớp (classifier) mà có mức lề cực đại Tương đương với việc giải toán tối ưu bậc hai sau ❑ ❑ Tìm w b cho: margin = Với điều kiện:   w  x i  + b  1, if y i =1    w  xi  + b  − 1, if y i = -1 với ví dụ huấn luyện xi (i=1 r) 24 w đạt cực đại Phân lớp SVM ◼ Học SVM tương đương với giải tốn cực tiểu hóa có ràng buộc sau Cực tiểu hóa: Với điều kiện: ◼   w  x i  + b  1,    w  xi  + b  − 1, if y i =1 if y i = − tương đương với Cực tiểu hóa: Với điều kiện: 25 w  w  w  w  y i ( w  x i  + b )  1, i = r Phân lớp SVM ◼ Học SVM tương đương với giải toán cực tiểu hóa có ràng buộc sau Cực tiểu hóa: Với điều kiện: ◼   w  x i  + b  1,    w  xi  + b  − 1, if y i =1 if y i = − tương đương với Cực tiểu hóa: Với điều kiện: 26 w  w  w  w  y i ( w  x i  + b )  1, i = r Phân lớp SVM ◼ SVM làm việc với không gian đầu vào số thực → Đối với thuộc tính định danh (nominal), cần chuyển giá trị định danh thành giá trị số ◼ SVM làm việc (thực phân lớp) với lớp → Đối với toán phân lớp gồm nhiều lớp, cần chuyển thành tập toán phân lớp gồm lớp, sau giải riêng rẽ tốn lớp → Ví dụ: chiến lược “one-against-rest” ◼ Siêu phẳng phân tách (ranh giới định phân lớp) xác định SVM thường khó hiểu người dùng ❑ ❑ 27 Vấn đề (khó giải thích định phân lớp) nghiêm trọng, hàm nhân (kernel functions) sử dụng SVM thường dùng tốn ứng dụng mà việc giải thích hoạt động (quyết định) hệ thống cho người dùng yêu cầu quan trọng Phân lớp SVM Anh chị lựa chọn cho số mơ hình sau: - 28 Phân lớp dựa Naïve bayes Phân lớp dựa SVM Phân cụm liệu cứng K-mean Phân cụm liệu mờ FCM Hồi quy tuyến tính Cây định Mạng nơron LOGO Bài tập Bài Nhập tọa độ điểm A, B C mặt phẳng chiều Hãy kiểm tra hình dạng tam giác ABC (đều, vuông, cân, vuông cân) Bài Viết chương trình in số lớn bốn số nhập từ bàn phím Bài Viết chương trình dịch ngày tuần sang tiếng anh Bài Viết chương trình giải hệ phương trình bậc { 𝑎𝑥 + 𝑏𝑦 = 𝑐 𝑎′ 𝑥 + 𝑏′ 𝑦 = 𝑐′ Bài Tính z, với x, y nhập vào từ bàn phím 𝑥2 + 𝑦2 𝑧 = {𝑥 + 𝑦 𝑥3 + 𝑦3 𝑛ế𝑢 𝑥 , 𝑦 ≤ 𝑛ế𝑢 𝑥 , 𝑦 > 𝑣à 𝑥 ≥ 𝑦 𝑛ế𝑢 𝑥 , 𝑦 > 𝑣à 𝑥 < 𝑦 Bài Tính tiền taxi từ số km nhập vào Biết: a km đầu giá 15000đ b Từ km thứ đến km thứ giá 13500đ c Từ km thứ trở giá 11000đ d Nếu 120km giảm 10% tổng tiền Bài Nhập vào tháng năm Cho biết tháng có ngày Bài tập Bài Viết chương trình nhập hai số A B, in tất số nguyên tố nằm khoảng [A, B] Bài Viết chương trình nhập vào số n Kiểm tra xem số n có số hồn hảo hay khơng? Bài Viết chương trình tìm tất số chia hết cho bội số 5, nằm đoạn A B (A, B nhập vào từ bàn phím) Bài Nhập vào số n tính: a 𝑆 = + b 𝑆 = + c 𝑆 = − 2! + ⋯+ 1∗2 2! 𝑛! + ⋯+ (𝑛−1)𝑛 𝑛−1 + ⋯ (−1) 𝑛! Bài 5: Hãy nhập số nguyên n, tạo số fibonacci nhỏ n in Dãy fibonacci dãy số nguyên định nghĩa cách đệ quy sau: f(0)=0, f(1) = 1, f(n) = f(n-1) + f(n-2) Bài 6: Nhập n, in n dòng tam giác pascal Bài Hãy nhập vào dãy số nhị phân, số nhị phân cách dấu phẩy Tạo danh sách lưu số nhị phân Chuyển đổi số nhị phân hệ số 10 lưu vào danh sách Bài Viết chương trình tạo danh sách lớp danh sách (tên, tuổi, địa chỉ) theo thứ tự tăng dần theo tên, tuổi, địa Mỗi phần tử nhập vào bàn phím dịng, thơng tin phân tử năm cách bới dấu ‘;’ Bài Hãy tạo tuple lưu trữ số có tổng ước lớn chúng nhỏ n Với n nhập vào từ bàn phím Bài Hãy nhập vào danh sách sinh viên lớp Thông tin sinh viên gồm: Mã sv, họ tên, địa email, điện thoại Mỗi sinh viên nhập dòng, thuộc tính cách dấu “;” Bài Hãy nhập vào dãy số, số cách dấu “,” Hãy tạo tuple lưu trữ giá trị chuyển đổi số sang hệ số 16 Bài Hãy tạo file có tên là: .txt (ví dụ sinh viên có mã sv là: 123 file cần đọc là: 123.txt) Mỗi thông tin sau dịng: Họ tên, mã sinh viên, giới tính, ngày sinh, quê quán, số điện thoại, Facebook) Đọc file in hình dịng cuối (yêu cầu sinh viên lấy theo thông tin mình) Bài Đọc file, tìm in nội dung dịng dài file Bài Đọc file, tìm in từ dài file Bài Đọc file, thống kê in tất chữ có file số lần xuất chữ Bài 10 Đọc file, thống kê in tần xuất xuất tất từ file, in theo thứ tự giảm dần số lần xuất Bài tập Bài 1: Cho D từ điển định nghĩa cách đọc chữ số tiếng Anh, in value D theo thứ tự tăng dần Bài 2: Người dùng nhập từ bàn phím chuỗi số nhị phân viết liên tiếp nối dấu phẩy Hãy tạo từ điển với phần key số thập phân, value số nhị phân Bài 3: Nhập từ điển D có value số nguyên, in hình giá trị value lớn Bài 4: Nhập string S, tạo từ điển D key chữ xuất S value tương ứng số lần xuất chữ S Bài 5: Hãy tạo từ điển key số nguyên tố nhỏ n, value chủng nhỏ số với n Bài 6: Hãy tạo từ điển với key lã mã sinh viên, value thông tin sinh viên báo gồm: Họ tên, tuổi, địa chị Các thông tin đọc từ file: “sinhvien.txt” Trong file: “sinhvien.txt” sinh viên lưu trữ dòng thông tin cách bới dấu “;”, bao gồm thơng tin: mã sv, họ tên sv, tuổi, giới tính, địa chỉ, điểm TB Bài 7: Tạo tập hợp gồm phần tử từ đến 99, in chúng hình Bài 8: Tạo tập hợp gồm số nguyên lẻ khoảng từ đến 199, in chúng hình Bài 9: Tạo tập hợp gồm số nhập vào từ bàn phím (nhập dịng, cách ký tự trống), tìm in số phần tử tập, giá trị lớn nhỏ tập Bài 10: Hãy tạo hai tập hợp lưu trư số nguyên tố (các số nguyên tố nhỏ n, với n cho trước) bình phương số nguyên tố Thực phép tính tập hợp Bài tập Bài 1: Cho dãy số nguyên 100 phần tử, tách lấy tất phần tử lẻ cho vào mảng Bài 2: Cho dãy số tự nhiên 20 phần tử, thay tất phần tử lẻ số -1 Bài 3: Cho mảng a, in tất phần tử khoảng từ đến 10 Bài 4: Sinh mảng số thực có 1000 phần tử, phần tử nằm khoảng từ -0.5 đến >> np.minimum(x, 2) / / so sánh phần tử với lấy array([1, 2, 2] ) >>> x* *2 array([1, 4, ] ) 24 / / lũy thừa phần tử Một số thao tác thơng dụng Tính

Ngày đăng: 21/03/2021, 18:29

TỪ KHÓA LIÊN QUAN