Visual Studio Code là trình chỉnh sửa mã nguồn nhẹ. Visual Studio Code thường được gọi là VS Code. Mã VS chạy trên máy tính để bàn của bạn. Nó có sẵn cho Windows, macOS và Linux
VS Code đi kèm với nhiều tính năng như IntelliSense, chỉnh sửa mã và tiện ích mở rộng cho phép bạn chỉnh sửa mã nguồn Python hiệu quả. Phần tốt nhất là Mã VS là mã nguồn mở và miễn phí
Bên cạnh phiên bản dành cho máy tính, VS Code còn có phiên bản dành cho trình duyệt mà bạn có thể sử dụng trực tiếp trên trình duyệt web của mình mà không cần cài đặt
Hướng dẫn này hướng dẫn bạn cách thiết lập Visual Studio Code cho môi trường Python để bạn có thể chỉnh sửa, chạy và gỡ lỗi mã Python
Thiết lập mã Visual Studio
Để thiết lập Mã VS, bạn làm theo các bước sau
Đầu tiên, điều hướng đến trang web chính thức của VS Code và tải xuống mã VS dựa trên nền tảng của bạn [Windows, macOS hoặc Linux]
Thứ hai, khởi chạy trình hướng dẫn thiết lập và làm theo các bước
Sau khi cài đặt hoàn tất, bạn có thể khởi chạy ứng dụng mã VS
Cài đặt phần mở rộng Python
Để Mã VS hoạt động với Python, bạn cần cài đặt tiện ích mở rộng Python từ Visual Studio Marketplace
Hướng dẫn này minh họa cách sử dụng Visual Studio Code và tiện ích mở rộng Microsoft Python với các thư viện khoa học dữ liệu phổ biến để khám phá một kịch bản khoa học dữ liệu cơ bản. Cụ thể, bằng cách sử dụng dữ liệu hành khách từ tàu Titanic, bạn sẽ học cách thiết lập môi trường khoa học dữ liệu, nhập và làm sạch dữ liệu, tạo mô hình máy học để dự đoán khả năng sống sót trên tàu Titanic và đánh giá độ chính xác của mô hình được tạo
điều kiện tiên quyết
Cần có các cài đặt sau để hoàn thành hướng dẫn này. Đảm bảo cài đặt chúng nếu bạn chưa cài đặt
Mã phòng thu trực quan
Tiện ích mở rộng Python cho Mã VS và tiện ích mở rộng Jupyter cho Mã VS từ Thị trường Visual Studio. Theo mặc định, tiện ích mở rộng Python sẽ cài đặt tiện ích mở rộng Jupyter cho bạn. Để biết thêm chi tiết về cách cài đặt tiện ích mở rộng, hãy xem Thị trường tiện ích mở rộng. Cả hai tiện ích mở rộng đều được xuất bản bởi Microsoft
Miniconda với Python 3. 9
Ghi chú. Nếu bạn đã cài đặt bản phân phối Anaconda đầy đủ, bạn không cần cài đặt Miniconda. Ngoài ra, nếu bạn không muốn sử dụng Anaconda hoặc Miniconda, bạn có thể tạo môi trường ảo Python và cài đặt các gói cần thiết cho hướng dẫn bằng cách sử dụng pip. Nếu bạn đi theo con đường này, bạn sẽ cần cài đặt các gói sau. gấu trúc, jupyter, seaborn, scikit-learning, máy ảnh và tensorflow
Thiết lập môi trường khoa học dữ liệu
Visual Studio Code và tiện ích mở rộng Python cung cấp trình chỉnh sửa tuyệt vời cho các kịch bản khoa học dữ liệu. Với sự hỗ trợ riêng dành cho sổ ghi chép Jupyter kết hợp với Anaconda, thật dễ dàng để bắt đầu. Trong phần này, bạn sẽ tạo không gian làm việc cho hướng dẫn, tạo môi trường Anaconda với các mô-đun khoa học dữ liệu cần thiết cho hướng dẫn và tạo sổ ghi chép Jupyter mà bạn sẽ sử dụng để tạo mô hình máy học
Bắt đầu bằng cách tạo môi trường Anaconda cho hướng dẫn về khoa học dữ liệu. Mở dấu nhắc lệnh Anaconda và chạy
6 để tạo môi trường có tên myenv. Để biết thêm thông tin về cách tạo và quản lý môi trường Anaconda, hãy xem tài liệu về Anacondadata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Tiếp theo, tạo một thư mục ở một vị trí thuận tiện để dùng làm không gian làm việc Mã VS của bạn cho hướng dẫn, đặt tên là
7data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Mở thư mục dự án trong Mã VS bằng cách chạy Mã VS và sử dụng lệnh Tệp > Mở thư mục. Bạn có thể yên tâm mở thư mục vì bạn đã tạo nó
Sau khi Mã VS khởi chạy, hãy tạo sổ ghi chép Jupyter sẽ được sử dụng cho hướng dẫn. Mở Bảng lệnh [ ⇧⌘P [Windows, Linux Ctrl+Shift+P]] and select Create: New Jupyter Notebook.
Ghi chú. Ngoài ra, từ VS Code File Explorer, bạn có thể sử dụng biểu tượng Tệp mới để tạo tệp Notebook có tên là
8data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Lưu tệp dưới dạng
8 bằng Tệp > Lưu dưới dạngdata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Sau khi tệp của bạn được tạo, bạn sẽ thấy sổ ghi chép Jupyter đang mở trong trình chỉnh sửa sổ ghi chép. Để biết thêm thông tin về hỗ trợ máy tính xách tay Jupyter gốc, bạn có thể đọc chủ đề Máy tính xách tay Jupyter
Bây giờ, chọn Select Kernel ở trên cùng bên phải của sổ ghi chép
Chọn môi trường Python bạn đã tạo ở trên để chạy kernel của bạn
Chuẩn bị dữ liệu
Hướng dẫn này sử dụng bộ dữ liệu Titanic có sẵn trên OpenML. org, được lấy từ Khoa thống kê sinh học của Đại học Vanderbilt tại https. //hbiostat. tổ chức/dữ liệu. Dữ liệu Titanic cung cấp thông tin về sự sống sót của hành khách trên tàu Titanic và các đặc điểm về hành khách như tuổi và hạng vé. Sử dụng dữ liệu này, hướng dẫn sẽ thiết lập một mô hình để dự đoán liệu một hành khách cụ thể có sống sót sau vụ chìm tàu Titanic hay không. Phần này cho biết cách tải và thao tác dữ liệu trong sổ ghi chép Jupyter của bạn
Để bắt đầu, hãy tải xuống dữ liệu Titanic từ hbiostat. org dưới dạng tệp CSV [liên kết tải xuống ở phía trên bên phải] có tên là
0 và lưu nó vào thư mụcimport seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
7 mà bạn đã tạo ở phần trướcdata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Nếu bạn chưa mở tệp trong Mã VS, hãy mở thư mục
7 và sổ ghi chép Jupyter [data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
8], bằng cách đi tới Tệp > Mở Thư mụcdata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Trong sổ ghi chép Jupyter của bạn, hãy bắt đầu bằng cách nhập thư viện pandas và numpy, hai thư viện phổ biến được sử dụng để thao tác dữ liệu và tải dữ liệu Titanic vào DataFrame của gấu trúc. Để làm như vậy, hãy sao chép mã bên dưới vào ô đầu tiên của sổ ghi chép. Để được hướng dẫn thêm về cách làm việc với sổ ghi chép Jupyter trong Mã VS, hãy xem tài liệu Làm việc với sổ ghi chép Jupyter
________số 8Bây giờ, hãy chạy ô bằng biểu tượng Chạy ô hoặc phím tắt Shift+Enter .
Sau khi ô chạy xong, bạn có thể xem dữ liệu đã được tải bằng Trình khám phá biến và Trình xem dữ liệu. Trước tiên, hãy chọn biểu tượng Biến trong thanh công cụ phía trên của sổ ghi chép
MỘT JUPYTER. Ngăn VARIABLES sẽ mở ở cuối Mã VS. Nó chứa một danh sách các biến được xác định cho đến nay trong hạt nhân đang chạy của bạn
Để xem dữ liệu trong Khung dữ liệu Pandas đã tải trước đó, hãy chọn biểu tượng Trình xem dữ liệu ở bên trái của biến
4import seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
Sử dụng Data Viewer để xem, sắp xếp và lọc các hàng dữ liệu. Sau khi xem xét dữ liệu, có thể hữu ích khi vẽ biểu đồ một số khía cạnh của nó để giúp hình dung mối quan hệ giữa các biến khác nhau
Trước khi dữ liệu có thể được vẽ biểu đồ, bạn cần đảm bảo rằng không có bất kỳ vấn đề nào với dữ liệu đó. Nếu bạn xem tệp csv Titanic, bạn sẽ nhận thấy một điều là dấu chấm hỏi ["?"] đã được sử dụng để xác định các ô không có sẵn dữ liệu
Mặc dù Pandas có thể đọc giá trị này vào DataFrame, kết quả cho một cột như tuổi là loại dữ liệu của nó sẽ được đặt thành đối tượng thay vì loại dữ liệu số, đây là vấn đề đối với việc vẽ biểu đồ
Vấn đề này có thể được khắc phục bằng cách thay thế dấu chấm hỏi bằng một giá trị bị thiếu mà gấu trúc có thể hiểu được. Thêm mã sau vào ô tiếp theo trong sổ ghi chép của bạn để thay thế các dấu chấm hỏi trong cột tuổi và giá vé bằng giá trị NaN gọn gàng. Lưu ý rằng chúng ta cũng cần cập nhật kiểu dữ liệu của cột sau khi thay thế các giá trị
Mẹo. Để thêm một ô mới, bạn có thể sử dụng biểu tượng chèn ô ở góc dưới cùng bên trái của một ô hiện có. Ngoài ra, bạn cũng có thể sử dụng Esc để vào chế độ lệnh, sau đó là B key.
data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Ghi chú. Nếu bạn cần xem loại dữ liệu đã được sử dụng cho một cột, bạn có thể sử dụng thuộc tính dtypes DataFrame
Bây giờ dữ liệu ở trạng thái tốt, bạn có thể sử dụng seaborn và matplotlib để xem các cột nhất định của tập dữ liệu liên quan đến khả năng sống sót như thế nào. Thêm mã sau vào ô tiếp theo trong sổ ghi chép của bạn và chạy mã đó để xem các ô được tạo
import seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
Để xem chi tiết tốt hơn trên biểu đồ, bạn có thể mở chúng trong trình xem sơ đồ bằng cách di chuột qua góc trên bên phải của biểu đồ và nhấp vào nút xuất hiện
Các biểu đồ này rất hữu ích trong việc xem một số mối quan hệ giữa tỷ lệ sống sót và các biến đầu vào của dữ liệu, nhưng cũng có thể sử dụng gấu trúc để tính toán các mối tương quan. Để làm như vậy, tất cả các biến được sử dụng cần phải là số để tính toán tương quan và giới tính hiện tại được lưu trữ dưới dạng chuỗi. Để chuyển đổi các giá trị chuỗi đó thành số nguyên, hãy thêm và chạy đoạn mã sau
2data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Giờ đây, bạn có thể phân tích mối tương quan giữa tất cả các biến đầu vào để xác định các tính năng sẽ là đầu vào tốt nhất cho mô hình máy học. Giá trị càng gần 1 thì mối tương quan giữa giá trị và kết quả càng cao. Sử dụng đoạn mã sau để tương quan mối quan hệ giữa tất cả các biến và tỷ lệ sống sót
3data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Nhìn vào kết quả tương quan, bạn sẽ nhận thấy rằng một số biến như giới tính có mối tương quan khá cao với khả năng sống sót, trong khi những biến khác như họ hàng [sibsp = anh chị em hoặc vợ/chồng, parch = cha mẹ hoặc con cái] dường như có ít mối tương quan.
Hãy giả thuyết rằng sibsp và parch có liên quan đến cách chúng ảnh hưởng đến khả năng sống sót và nhóm chúng vào một cột mới gọi là "họ hàng" để xem liệu sự kết hợp của chúng có mối tương quan cao hơn với khả năng sống sót hay không. Để làm điều này, bạn sẽ kiểm tra xem đối với một hành khách nhất định, số sibsp và parch có lớn hơn 0 hay không và nếu vậy, bạn có thể nói rằng họ có người thân trên máy bay
Sử dụng đoạn mã sau để tạo một biến và cột mới trong tập dữ liệu có tên là
5 và kiểm tra lại mối tương quanimport seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
5data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Bạn sẽ nhận thấy rằng trên thực tế, khi xem xét từ quan điểm liệu một người có người thân hay không, so với bao nhiêu người thân, thì có mối tương quan cao hơn với khả năng sống sót. Với thông tin này trong tay, giờ đây bạn có thể thả từ tập dữ liệu các cột sibsp và parch có giá trị thấp, cũng như bất kỳ hàng nào có giá trị NaN, để kết thúc bằng tập dữ liệu có thể được sử dụng để huấn luyện mô hình
6data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Ghi chú. Mặc dù độ tuổi có mối tương quan trực tiếp thấp, nhưng nó vẫn được giữ lại vì có vẻ hợp lý là nó vẫn có thể có mối tương quan khi kết hợp với các yếu tố đầu vào khác
Đào tạo và đánh giá một mô hình
Với tập dữ liệu đã sẵn sàng, bây giờ bạn có thể bắt đầu tạo mô hình. Đối với phần này, bạn sẽ sử dụng thư viện scikit-learning [vì nó cung cấp một số hàm trợ giúp hữu ích] để xử lý trước tập dữ liệu, huấn luyện mô hình phân loại để xác định khả năng sống sót trên tàu Titanic, sau đó sử dụng mô hình đó với dữ liệu thử nghiệm
Bước đầu tiên phổ biến để đào tạo một mô hình là chia tập dữ liệu thành dữ liệu đào tạo và xác nhận. Điều này cho phép bạn sử dụng một phần dữ liệu để đào tạo mô hình và một phần dữ liệu để kiểm tra mô hình. Nếu bạn đã sử dụng tất cả dữ liệu của mình để đào tạo mô hình, thì bạn sẽ không có cách nào để ước tính mức độ hiệu quả của nó trên thực tế đối với dữ liệu mà mô hình chưa thấy. Một lợi ích của thư viện scikit-learning là nó cung cấp một phương pháp cụ thể để chia tập dữ liệu thành dữ liệu huấn luyện và kiểm tra
Thêm và chạy một ô có mã sau vào sổ ghi chép để chia nhỏ dữ liệu
7data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Tiếp theo, bạn sẽ chuẩn hóa các đầu vào sao cho tất cả các tính năng được đối xử bình đẳng. Ví dụ: trong tập dữ liệu, các giá trị cho độ tuổi nằm trong khoảng từ ~0-100, trong khi giới tính chỉ là 1 hoặc 0. Bằng cách chuẩn hóa tất cả các biến, bạn có thể đảm bảo rằng các phạm vi giá trị đều giống nhau. Sử dụng đoạn mã sau trong một ô mã mới để chia tỷ lệ các giá trị đầu vào
8data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Có nhiều thuật toán học máy khác nhau mà bạn có thể chọn để mô hình hóa dữ liệu. Thư viện scikit-learning cũng cung cấp hỗ trợ cho nhiều trong số chúng và biểu đồ để giúp chọn biểu đồ phù hợp với kịch bản của bạn. Hiện tại, hãy sử dụng thuật toán Naïve Bayes, một thuật toán phổ biến cho các bài toán phân loại. Thêm một ô có mã sau để tạo và huấn luyện thuật toán
9data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Với một mô hình được đào tạo, giờ đây bạn có thể dùng thử mô hình đó với tập dữ liệu thử nghiệm đã bị giữ lại khi đào tạo. Thêm và chạy đoạn mã sau để dự đoán kết quả của dữ liệu thử nghiệm và tính toán độ chính xác của mô hình
0data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Nhìn vào kết quả của dữ liệu thử nghiệm, bạn sẽ thấy rằng thuật toán được đào tạo có tỷ lệ thành công ~75% khi ước tính tỷ lệ sống sót
[Tùy chọn] Sử dụng mạng thần kinh
Mạng thần kinh là một mô hình sử dụng các trọng số và chức năng kích hoạt, mô hình hóa các khía cạnh của tế bào thần kinh của con người, để xác định kết quả dựa trên đầu vào được cung cấp. Không giống như thuật toán máy học mà bạn đã xem xét trước đây, mạng lưới thần kinh là một hình thức học sâu trong đó bạn không cần biết trước một thuật toán lý tưởng cho vấn đề của mình. Nó có thể được sử dụng cho nhiều tình huống khác nhau và phân loại là một trong số đó. Đối với phần này, bạn sẽ sử dụng thư viện Keras với TensorFlow để xây dựng mạng thần kinh và khám phá cách nó xử lý bộ dữ liệu Titanic
Bước đầu tiên là nhập các thư viện cần thiết và tạo mô hình. Trong trường hợp này, bạn sẽ sử dụng mạng nơ-ron tuần tự, là mạng nơ-ron phân lớp trong đó có nhiều lớp liên kết với nhau theo trình tự
1data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Sau khi xác định mô hình, bước tiếp theo là thêm các lớp của mạng thần kinh. Hiện tại, hãy giữ mọi thứ đơn giản và chỉ sử dụng ba lớp. Thêm đoạn mã sau để tạo các lớp của mạng thần kinh
2data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
- Lớp đầu tiên sẽ được đặt có kích thước là 5, vì bạn có năm đầu vào. giới tính, pclass, tuổi tác, họ hàng, và giá vé
- Lớp cuối cùng phải xuất ra 1, vì bạn muốn có kết quả 1 chiều cho biết liệu một hành khách có sống sót hay không
- Lớp giữa được giữ ở mức 5 để đơn giản, mặc dù giá trị đó có thể khác
Chức năng kích hoạt đơn vị tuyến tính [relu] được chỉnh lưu được sử dụng như một chức năng kích hoạt chung tốt cho hai lớp đầu tiên, trong khi chức năng kích hoạt sigmoid được yêu cầu cho lớp cuối cùng vì đầu ra bạn muốn [về việc hành khách có sống sót hay không] cần
Bạn cũng có thể xem tóm tắt mô hình mà bạn đã xây dựng bằng dòng mã này
3data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Khi mô hình được tạo, nó cần được biên dịch. Là một phần của việc này, bạn cần xác định loại trình tối ưu hóa nào sẽ được sử dụng, cách tính tổn thất và số liệu nào sẽ được tối ưu hóa cho. Thêm đoạn mã sau để xây dựng và đào tạo mô hình. Bạn sẽ nhận thấy rằng sau khi đào tạo, độ chính xác là ~61%
Ghi chú. Bước này có thể mất từ vài giây đến vài phút để chạy tùy thuộc vào máy của bạn
4data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Bây giờ mô hình đã được xây dựng và đào tạo, chúng ta có thể thấy cách thức hoạt động của mô hình đối với dữ liệu thử nghiệm
5data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Tương tự như phần đào tạo, bạn sẽ nhận thấy rằng giờ đây bạn có thể dự đoán khả năng sống sót của hành khách với độ chính xác là 79%. Sử dụng mạng thần kinh đơn giản này, kết quả tốt hơn độ chính xác 75% từ Trình phân loại Naive Bayes đã thử trước đây
Bước tiếp theo
Bây giờ, bạn đã quen thuộc với kiến thức cơ bản về thực hiện máy học trong Visual Studio Code, đây là một số tài nguyên và hướng dẫn khác của Microsoft để tham khảo