phan-tich-chuoi-thoi-gian-2

Chúng tôi biết rằng các tài liệu nói chung được nhóm thành các chủ đề. Đôi khi chúng ta cần xác định các mẫu trong văn bản tương ứng với một chủ đề cụ thể. Kỹ thuật làm điều này được gọi là mô hình hóa chủ đề. Nói cách khác, chúng ta có thể nói rằng mô hình hóa chủ đề là một kỹ thuật để khám phá các chủ đề trừu tượng hoặc cấu trúc ẩn trong một bộ tài liệu nhất định.

Chúng ta có thể sử dụng kỹ thuật lập mô hình chủ đề trong các trường hợp sau –

Phân loi văn bn

Với sự trợ giúp của mô hình chủ đề, việc phân loại có thể được cải thiện vì nó nhóm các từ tương tự lại với nhau thay vì sử dụng từng từ riêng biệt làm đặc điểm.

H thng đề xut

Với sự trợ giúp của mô hình chủ đề, chúng ta có thể xây dựng các hệ thống đề xuất bằng cách sử dụng các biện pháp tương tự.

Các thut toán cho mô hình ch đề

Mô hình hóa chủ đề có thể được thực hiện bằng cách sử dụng các thuật toán. Các thuật toán như sau –

Phân b Dirichlet tim n (LDA)

Thuật toán này là phổ biến nhất cho mô hình chủ đề. Nó sử dụng các mô hình đồ họa xác suất để triển khai mô hình chủ đề. Chúng ta cần nhập gói gensim bằng Python để sử dụng LDA slgorithm.

Phân tích ng nghĩa tim n (LDA) hoc Lp ch mc ng nghĩa tim n (LSI)

Thuật toán này dựa trên Đại số tuyến tính. Về cơ bản, nó sử dụng khái niệm SVD (Phân tách giá trị số ít) trên ma trận thuật ngữ tài liệu.

Tha s ma trn không âm (NMF)

Nó cũng dựa trên Đại số tuyến tính.

Tất cả các thuật toán được đề cập ở trên để lập mô hình chủ đề sẽ có số lượng chủ đề làm tham số, Ma trận tài liệu- từ làm đầu vào và WTM (Ma trận chủ đề từ) & TDM (Ma trận tài liệu chủ đề) làm đầu ra.

AI với Python – Phân tích dữ liệu chuỗi thời gian

Dự đoán tiếp theo trong một chuỗi đầu vào nhất định là một khái niệm quan trọng khác trong học máy. Chương này cung cấp cho bạn giải thích chi tiết về phân tích dữ liệu chuỗi thời gian.

Gii thiu

Dữ liệu chuỗi thời gian có nghĩa là dữ liệu nằm trong một chuỗi các khoảng thời gian cụ thể. Nếu chúng ta muốn xây dựng dự đoán trình tự trong học máy, thì chúng ta phải xử lý dữ liệu tuần tự và thời gian. Dữ liệu chuỗi là một bản tóm tắt của dữ liệu tuần tự. Thứ tự dữ liệu là một tính năng quan trọng của dữ liệu tuần tự.

Khái niệm cơ bản về phân tích trình tự hoặc phân tích chuỗi thời gian

Phân tích trình tự hoặc phân tích chuỗi thời gian là dự đoán phần tiếp theo trong một chuỗi đầu vào nhất định dựa trên dữ liệu được quan sát trước đó. Dự đoán có thể là bất cứ thứ gì có thể xảy ra tiếp theo: biểu tượng, số, thời tiết ngày hôm sau, thuật ngữ tiếp theo trong bài phát biểu, v.v. Phân tích trình tự có thể rất hữu ích trong các ứng dụng như phân tích thị trường chứng khoán, dự báo thời tiết và đề xuất sản phẩm.

Ví dụ Xem xét ví dụ sau để hiểu dự đoán trình tự. Ở đây A, B, C, D là các giá trị đã cho và bạn phải dự đoán giá trị E bằng Mô hình dự đoán trình tự.

Xác định các mẫu trong dữ liệu văn bản AI với Python

Cài đặt các gói hu ích

Để phân tích dữ liệu chuỗi thời gian bằng Python, chúng ta cần cài đặt các gói sau –

gu trúc

Pandas là một thư viện mã nguồn mở được BSD cấp phép cung cấp các công cụ phân tích dữ liệu và cấu trúc dữ liệu hiệu suất cao, dễ sử dụng cho Python. Bạn có thể cài đặt Pandas với sự trợ giúp của lệnh sau

pip install pandas

Nếu bạn đang sử dụng Anaconda và muốn cài đặt bằng cách sử dụng trình quản lý gói conda , thì bạn có thể sử dụng lệnh sau –

conda install -c anaconda pandas

hmmhc

Nó là một thư viện mã nguồn mở được BSD cấp phép bao gồm các thuật toán và mô hình đơn giản để tìm hiểu các Mô hình Markov ẩn (HMM) trong Python. Bạn có thể cài đặt nó với sự trợ giúp của lệnh sau –

pip install hmmlearn

Nếu bạn đang sử dụng Anaconda và muốn cài đặt bằng cách sử dụng trình quản lý gói conda , thì bạn có thể sử dụng lệnh sau –

conda install -c omnia hmmlearn

PyStruct

Nó là một thư viện học tập và dự đoán có cấu trúc. Các thuật toán học được triển khai trong PyStruct có các tên như trường ngẫu nhiên có điều kiện (CRF), Mạng ngẫu nhiên Markov có lợi nhuận tối đa (M3N) hoặc máy vectơ hỗ trợ cấu trúc. Bạn có thể cài đặt nó với sự trợ giúp của lệnh sau –

pip install pystruct

CVXOPT

Nó được sử dụng để tối ưu hóa lồi dựa trên ngôn ngữ lập trình Python. Nó cũng là một gói phần mềm miễn phí. Bạn có thể cài đặt nó với sự trợ giúp của lệnh sau –

pip install cvxopt

Nếu bạn đang sử dụng Anaconda và muốn cài đặt bằng cách sử dụng trình quản lý gói conda , thì bạn có thể sử dụng lệnh sau –

conda install -c anaconda cvdoxt

Pandas: X lý, ct và trích xut thng kê t d liu chui thi gian

Pandas là một công cụ rất hữu ích nếu bạn phải làm việc với dữ liệu chuỗi thời gian. Với sự trợ giúp của Pandas, bạn có thể thực hiện các thao tác sau –

  • Tạo phạm vi ngày bằng cách sử dụng gói pd.date_range
  • Lập chỉ mục gấu trúc với ngày tháng bằng cách sử dụng gói pd.Series
  • Thực hiện lấy mẫu lại bằng cách sử dụng gói ts.resample
  • Thay đổi tần số

Ví d

Ví dụ sau đây cho thấy bạn xử lý và cắt dữ liệu chuỗi thời gian bằng cách sử dụng Pandas. Lưu ý rằng ở đây chúng tôi đang sử dụng dữ liệu Dao động Bắc cực hàng tháng, dữ liệu này có thể được tải xuống từ (https:// months.ao.index.b50.current.ascii) và có thể được chuyển đổi sang định dạng văn bản để chúng tôi sử dụng.

X lý d liu chui thi gian

Để xử lý dữ liệu chuỗi thời gian, bạn sẽ phải thực hiện các bước sau – Bước đầu tiên liên quan đến việc nhập các gói sau

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Tiếp theo, xác định một hàm sẽ đọc dữ liệu từ tệp đầu vào, như được hiển thị trong đoạn mã dưới đây

def read_data(input_file):
   input_data = np.loadtxt(input_file, delimiter = None)

Bây giờ, hãy chuyển đổi dữ liệu này thành chuỗi thời gian. Đối với điều này, hãy tạo phạm vi ngày của chuỗi thời gian của chúng tôi. Trong ví dụ này, chúng tôi giữ một tháng làm tần suất dữ liệu. Tệp của chúng tôi có dữ liệu bắt đầu từ tháng 1 năm 1950.

dates = pd.date_range('1950-01', periods = input_data.shape[0], freq = 'M')

Trong bước này, chúng tôi tạo dữ liệu chuỗi thời gian với sự trợ giúp của Pandas Series, như được hiển thị bên dưới

output = pd.Series(input_data[:, index], index = dates)	
return output
	
if __name__=='__main__':

Nhập đường dẫn của tệp đầu vào như được hiển thị ở đây

input_file = "/Users/admin/AO.txt"

Bây giờ, chuyển đổi cột thành định dạng chuỗi thời gian, như được hiển thị ở đây –

timeseries = read_data(input_file)

Cuối cùng, vẽ đồ thị và trực quan hóa dữ liệu, sử dụng các lệnh được hiển thị

plt.figure()
timeseries.plot()
plt.show()

Bạn sẽ quan sát các biểu đồ như trong các hình ảnh sau

Xác định các mẫu trong dữ liệu văn bản AI với Python

Cắt dữ liệu chuỗi thời gian

Cắt liên quan đến việc chỉ truy xuất một số phần của dữ liệu chuỗi thời gian. Là một phần của ví dụ, chúng tôi chỉ cắt dữ liệu từ năm 1980 đến năm 1990. Quan sát đoạn mã sau thực hiện tác vụ này

timeseries['1980':'1990'].plot()
   <matplotlib.axes._subplots.AxesSubplot at 0xa0e4b00>

plt.show()

Khi bạn chạy mã để cắt dữ liệu chuỗi thời gian, bạn có thể quan sát biểu đồ sau như minh họa trong hình ở đây

Xác định các mẫu trong dữ liệu văn bản AI với Python

Trích xut thng kê t d liu chui thi gian

Bạn sẽ phải trích xuất một số thống kê từ một dữ liệu nhất định, trong trường hợp bạn cần rút ra một số kết luận quan trọng. Giá trị trung bình, phương sai, tương quan, giá trị tối đa và giá trị tối thiểu là một số thống kê như vậy. Bạn có thể sử dụng đoạn mã sau nếu muốn trích xuất số liệu thống kê đó từ dữ liệu chuỗi thời gian nhất định –

Nghĩa là

Bạn có thể sử dụng hàm mean() để tìm giá trị trung bình, như được hiển thị ở đây

timeseries.mean()

Sau đó, đầu ra mà bạn sẽ quan sát cho ví dụ được thảo luận là –

-0.11143128165238671

ti đa

Bạn có thể sử dụng hàm max() để tìm giá trị lớn nhất, như được hiển thị ở đây –

timeseries.max()

Sau đó, đầu ra mà bạn sẽ quan sát cho ví dụ được thảo luận là –

3.4952999999999999

ti thiu

Bạn có thể sử dụng hàm min() để tìm giá trị nhỏ nhất, như minh họa ở đây –

timeseries.min()

Sau đó, đầu ra mà bạn sẽ quan sát cho ví dụ được thảo luận là –

-4.2656999999999998

Nhn mi th cùng mt lúc

Nếu bạn muốn tính toán tất cả số liệu thống kê tại một thời điểm, bạn có thể sử dụng hàm description() như được hiển thị ở đây –

timeseries.describe()

Sau đó, đầu ra mà bạn sẽ quan sát cho ví dụ được thảo luận là

count   817.000000
mean     -0.111431
std       1.003151
min      -4.265700
25%      -0.649430
50%      -0.042744
75%       0.475720
max       3.495300
dtype: float64

ly mu li

Bạn có thể lấy mẫu lại dữ liệu theo tần suất thời gian khác. Hai tham số để thực hiện lấy mẫu lại là –

  • khoảng thời gian
  • Phương pháp

Ly mu li vi mean()

Bạn có thể sử dụng đoạn mã sau để lấy mẫu lại dữ liệu bằng phương thức mean(), đây là phương thức mặc định

timeseries_mm = timeseries.resample("A").mean()
timeseries_mm.plot(style = 'g--')
plt.show()

Sau đó, bạn có thể quan sát biểu đồ sau đây dưới dạng đầu ra của quá trình lấy mẫu lại bằng cách sử dụng mean()

Xác định các mẫu trong dữ liệu văn bản AI với Python

Ly mu li vi median()

Bạn có thể sử dụng đoạn mã sau để lấy mẫu lại dữ liệu bằng phương thức median()

timeseries_mm = timeseries.resample("A").median()
timeseries_mm.plot()
plt.show()

Sau đó, bạn có thể quan sát biểu đồ sau dưới dạng đầu ra của quá trình lấy mẫu lại với median()

Xác định các mẫu trong dữ liệu văn bản AI với Python

trung bình lăn

Bạn có thể sử dụng đoạn mã sau để tính trung bình lăn (di chuyển

timeseries.rolling(window = 12, center = False).mean().plot(style = '-g')
plt.show()

Sau đó, bạn có thể quan sát biểu đồ sau đây là đầu ra của giá trị trung bình lăn (di chuyển)

Xác định các mẫu trong dữ liệu văn bản AI với Python

xem thêm : Phân tích dữ liệu tuần tự bằng mô hình Markov ẩn (HMM)

Trả lời