Giới thiệu về Mô hình hóa Toán học trong Mùa hè: Xử lý Dữ liệu và Mô hình Phù hợp

Các thành phần khoa học dữ liệu

Khoa học dữ liệu được xây dựng trên 5 trụ cột chính:

  • Lưu trữ dữ liệu: Công nghệ phân tán như HDFS, hệ thống lưu trữ vật lý
  • Xử lý dữ liệu: Tính toán phân tán (Spark), xử lý luồng dữ liệu
  • Phân tích dữ liệu: Thống kê, học máy, thị giác máy tính
  • Quản trị dữ liệu: Hệ thống cơ sở dữ liệu hiện đại
  • Ứng dụng: Trực quan hóa, xây dựng phần mềm từ dữ liệu

Xử lý dữ liệu thô

Dữ liệu thu thập thường chứa:

  • Dữ liệu thiếu (missing data)
  • Giá trị ngoại lệ (outlier)
  • Định dạng không đồng nhất

Ví dụ: Dữ liệu từ Tổng cục Thống kê Việt Nam thường cần chuẩn hóa trước khi phân tích.

Chuẩn hóa dữ liệu

  • Min-Max scaling:
    du_lieu['cột_dữ_liệu'] = (du_lieu['cột_dữ_liệu'] - du_lieu['cột_dữ_liệu'].min()) / (du_lieu['cột_dữ_liệu'].max() - du_lieu['cột_dữ_liệu'].min())
  • Z-score:
    du_lieu['cột_dữ_liệu'] = (du_lieu['cột_dữ_liệu'] - du_lieu['cột_dữ_liệu'].mean()) / du_lieu['cột_dữ_liệu'].std()

Phân tích thống kê

Hồi quy tuyến tính

Ví dụ phân tích mối liên hệ giữa điểm thi đại học (ACT) và điểm trung bình đại học (GPA):

import statsmodels.api as sm
X = sm.add_constant(du_lieu[['ACT', 'hsGPA']])
model = sm.OLS(du_lieu['colGPA'], X).fit()
print(model.summary())

Phân tích phân loại

Phân tích các yếu tố ảnh hưởng đến việc doanh nghiệp bị xếp hạng ST:

import statsmodels.api as sm
logit_model = sm.Logit(du_lieu['ST'], du_lieu[['ARA','ASSET','ATO','ROA','GROWTH','LEV','SHARE']])
result = logit_model.fit()
print(result.summary())

Kiểm định giả thuyết

Kiểm định t-test

So sánh điểm trung bình lớp học với mục tiêu 137:

from scipy import stats
def kiem_dinh_t(data, gia_tri_muc_tieu):
    t_stat, p_value = stats.ttest_1samp(data, gia_tri_muc_tieu)
    return {'p_value': p_value, 'ket_luan': 'Khác biệt' if p_value < 0.05 else 'Không khác biệt'}

ket_qua = kiem_dinh_t(diem_so_lop, 137)

Mô phỏng ngẫu nhiên

Mô hình Markov

Dự đoán tiến triển bệnh AIDS qua 4 giai đoạn:

def tinh_xac_suat_trang_thai(P, n_buoc):
    P_ket_qua = np.linalg.matrix_power(P, n_buoc)
    return np.dot([0,1,0,0], P_ket_qua)

ma_tran_chuyen = np.array([
    [0.125, 0.775, 0.0625, 0.0375],
    [0, 0.483, 0.321, 0.196],
    [0, 0, 0.818, 0.182],
    [0, 0, 0, 1]
])

xac_suat_ket_qua = tinh_xac_suat_trang_thai(ma_tran_chuyen, 10)

Trực quan hóa dữ liệu

Biểu đồ phân tán

import matplotlib.pyplot as plt
plt.scatter(x=du_lieu['chieu_cao'], y=du_lieu['can_nang'])
plt.xlabel('Chiều cao')
plt.ylabel('Cân nặng')
plt.title('Mối quan hệ chiều cao - cân nặng')
plt.show()

Biểu đồ cột nhóm

import seaborn as sns
sns.barplot(x='thành_phố', y='giá_nhà', hue='năm', data=du_lieu)
plt.legend(title='Năm')
plt.show()

Nội suy dữ liệu

Nội suy spline bậc 3

from scipy import interpolate
x_mau = np.linspace(0, 10, 10)
y_mau = np.sin(x_mau)
f = interpolate.CubicSpline(x_mau, y_mau)
x_noi_suy = np.linspace(0, 10, 100)
plt.plot(x_noi_suy, f(x_noi_suy), label='Đường nội suy')

Thẻ: xử lý dữ liệu phân tích hồi quy kiểm định thống kê nội suy spline Trực quan hóa dữ liệu

Đăng vào ngày 30 tháng 6 lúc 18:32