Hình 3.6: Các quan sát và véc tơ riêng trên hai thành phần chính thứ nhất và thứ hai Sau khi đã có các Véc tơ riêng ta chiếu các điểm dữ liệu đã chuẩn hóa lên các véc tơ này và thu đƣợc bảng dữ liệu đầu vào mới:
3.4. T ết lập mô ìn p tuyến RF c o từn c ỉ số c ất lƣợn
PC (số thành phần chính) và N (số cây quyết định) có ảnh hƣởng trực tiếp đến độ chính xác của mô hình RF. Do đó, cần phải tối ƣu hóa thêm trên N và PC (trong một phạm vi nhất định). 50N (20–1000, với kích thƣớc bƣớc là 20) và 9PC (1–9, với kích thƣớc bƣớc là 1) đƣợc chọn tƣơng ứng để tối ƣu hóa các thông số dựa trên RMSE của từng mô hình chỉ số chất lƣợng.
a b
c d
e f
g h
Hình 3.8: Giá trị RMSEC của mỗi chỉ số chất lƣợng cho mô hình RF từ các PC và N khác nhau
a, đại diện cho TF; c, đại diện cho TR; e, đại diện cho TB và g, đại diện cho SS(điểm cảm quan), giá trị tham chiếu so với giá trị dự đoán của mô hình RF: b, đại diện cho TF; d, đại diện cho TR; f, đại diện cho TB và h, đại diện cho SS.
Bảng 3.9: Tổng hợp các thông số sau khi tối ƣu mô hình dự đoán
Thông
số PC N RMSEC Rc biasc RMSEP Rp biasp SEP CV RPD TFs 7 880 0.0286 0.9762 0.0004 0.0526 0.8906 0.0007 0.0526 0.2103 1.8685
TRs 7 60 0.1727 0.9687 0.0105 0.3452 0.7356 0.0051 0.3451 0.0953 1.2321
TBs 6 380 0.1943 0.9864 0.0036 0.3789 0.9008 0.0417 0.3766 0.1083 2.0182
SS 8 60 1.2579 0.9773 0.0249 2.165 0.8855 -0.076 2.1637 0.0522 1.972
Qua các kết quả mô phỏng ta thấy rằng:
- Trong mô hình dự đoán TFs, khi PC = 7 và N = 880, RMSEC của mô hình đạt mức tối thiểu (0,0286), Rp, RMSEP, Bias, SEP, CV và RPD của bộ dự đoán là 0.8906, 0.0526, 0.0007, 0.0526 , 0.2103 và 1.8685 tƣơng ứng, và mối quan hệ giữa giá trị dự đoán và giá trị đo đƣợc thể hiện nhƣ Hình 3.8a, b.
- Trong mô hình dự đoán TRs, khi PC = 7 và N = 60, RMSEC của mô hình đạt mức tối thiểu (0,1727), Rp, RMSEP, Bias, SEP, CV và RPD của bộ dự đoán là
0.7356, 0.3452, 0.0051, 0.3451 , 0.0953 và 1.2321 tƣơng ứng, và mối quan hệ giữa
giá trị dự đoán và giá trị đo đƣợc thể hiện nhƣ Hình 3.8c, d.
- Trong mô hình dự đoán TBs, khi PC = 6 và N = 380, RMSEC của mô hình đạt mức tối thiểu (0,1943), Rp, RMSEP, Bias, SEP, CV và RPD của bộ dự đoán là 0.9008, 0.3789, 0.0417, 0.3766 , 0.1083 và 2.0182 tƣơng ứng, và mối quan hệ giữa giá trị dự đoán và giá trị đo đƣợc thể hiện nhƣ Hình 3.8e, f.
- Trong mô hình dự đoán SS, khi PC = 8 và N = 60, RMSEC của mô hình đạt mức tối thiểu (1.2579), Rp, RMSEP, Bias, SEP, CV và RPD của bộ dự đoán là 0.8855, 2.165, -0.076, 2.1637 , 0.0522 và 1.972 tƣơng ứng, và mối quan hệ giữa giá trị dự đoán và giá trị đo đƣợc thể hiện nhƣ Hình 3.8g, h.
Nói chung, RMSEP, SEP, CV và Bias nhỏ hơn giá trị Rp và RPD, phản ánh mô hình chính xác và tổng quát hơn .
Quá trình lên men trà thƣờng đi kèm với phản ứng trao đổi chất phức tạp, và sự thay đổi của các thành phần vật lý và hóa học đƣợc thể hiện theo trình tự thời
gian. Trong khi đó, đánh giá cảm quan đƣợc thực hiện bằng cách phân biệt thông tin màu sắc của mẫu trà bằng mắt ngƣời, sau đó đi vào hệ thống não bộ phức tạp của con ngƣời và đƣợc tích hợp và đánh giá toàn diện cuối cùng. Do đó, điểm cảm quan cuối cùng và màu sắc có các yếu tố phi tuyến tính chủ quan. Phƣơng pháp phi tuyến tính với chức năng tự học và điều chỉnh có thể giải quyết hiệu quả các vấn đề phức tạp và phát huy khả năng dự đoán của mô hình. Công nghệ trên có thể đƣợc áp dụng cho hệ thống lên men tự động chè đen để dự đoán và giám sát các thông số chất lƣợng.
3.5. Ứn dụn
3.5.1. Lƣu đồ t uật to n đề xuất
- Hình ảnh thu đƣợc từ các điểm đo lƣờng sẽ đƣợc phân tích và xử lý để so sánh với các ngƣỡng chuẩn về chỉ số chất lƣợng, điểm cảm quan dự đoán.
- Nếu dữ liệu thu đƣợc nằm trong ngƣỡng cho phép ta duy trì tham số điều khiển, ở đây, tham số điều khiển sẽ thay đổi sự đóng mở của van khí tuyến tính để thay đổi sự tác động của nhiệt độ, độ ẩm và các hợp chất trong quá trình lên men vào khối chè
- Nếu dữ liệu nằm ngoài ngƣỡng cho phép, ta so sánh tiếp xem dữ liệu ở ngững chƣa đủ hay quá ngƣỡng để thay đổi tham số, điều khiển van khí cho hợp lý.
3.5.2. T ết bị đ ều k ển đề xuất
- Để đảm bảo tính ổn định cũng nhƣ chính xác của hệ thống, tôi đề nghị sử dụng camera chuyên dụng. Ống kính đơn kỹ thuật số phản xạ (Canon DS60D, Nhật Bản, 18MP) đƣợc chọn làm cảm biến hình ảnh; các thông số thu nhận của máy ảnh đƣợc liệt kê trong bảng 3.10. Ánh sáng đồng nhất (Sphere100, Hangzhou Flight Technology Co., Ltd, Trung Quốc) đƣợc chọn làm nguồn sáng có cƣờng độ 100 lux. Điện áp yêu cầu là 24V và công suất là 11,3 W. Khoảng cách từ các mẫu là 180 mm.
- Hệ thống xử lý ảnh đƣợc xử lý trên máy tính với GUI trong Matlab
- Thiết bị xử lý và điều khiển van sử dụng PLC với chuẩn truyền thông RS485 kết nối với máy tính
- Cài đặt thông số, điều khiển các chế độ thông qua màn hình HMI
Hình 3.10: Cài đặt chế độ hoạt động thông qua màn hình HMI
3.6. ết luận c ƣơn
- Trong chƣơng 3, tác giả đã trình bày về việc xử lý dữ liệu, kết quả thực nghiệm khi áp dụng các thuật toán, đƣa ra đƣợc mô hình dự đoán tối ƣu với RF và đƣợc kiểm nghiệm bằng phần mềm. Đánh giá đƣợc các thông số liên quan.
- Đề xuất phƣơng án điều khiển khi áp dụng với thực tế, lựa chọn các thiết bị xử lý hình ảnh, điều khiển.
ẾT LUẬN VÀ IẾN NGHỊ ết quả c ín đã đạt đƣợc:
- Luận văn này đã trình bày cơ sở lý thuyết về lên men chè đen, đặc điểm màu sắc, chuyển đổi giữa các không gian màu liên quan.
- Hiểu, áp dụng và thực hiện viết chƣơng trình cho các thuật toán xử lý dữ liệu
- Tối ƣu hóa mô hình hồi quy phi tuyến sử dụng thuật toán Rừng ngẫu nhiên, cụ thể là dự đoán chất lƣợng lên men chè đen với các chỉ số chất lƣợng.
- Đề xuất phƣơng án ứng dugj điều khiển trong sản suất thực tế
Hạn c ế của đề tà :
- Dữ liệu trong luận văn chỉ mang tính chất tham khảo từ nguồn Internet nên khi áp dụng thực tế có thể có sự khác biệt nhất định
- Chƣa tối ƣu hết các thuật toàn tiền xử lý dữ liệu, mới chỉ tập chung vào PCA và RF
- Kết quả chƣa thực sự tốt, nhất là đối với Rc, Rp của TRs lần lƣợt là 0.9687 và 0.7356(thấp)
ề xuất ƣớn n n cứu t ếp t eo:
Để giúp cho bài toán đƣợc hoàn thiện hơn, các nghiên cứu tới cần quan tâm các vấn đề sau:
- Cần khảo sát thực tế tại các cơ sở sản xuất chè đen để lấy dữ liệu chính xác đối với mỗi loại chè.
- Tối ƣu hóa các thuật toán sử dụng để có kết quả tốt nhất, so sánh các mô hình dự đoán khác nhau để lựa chọn mô hình phù hợp với đối tƣợng.
- Xây dựng mối quan hệ giữa các tiêu chí chất lƣợng với nhiệt độ, độ ẩm để đƣa ra các tham số điều khiển tốt nhất trong quá trình lên men thông qua thực nghiệm.
TÀI LI U THAM HẢO
[1] Chè (1993), Xác định các chỉ tiêu cảm quan bằng phương pháp cho điểm,
TCVN 3218- 1993, Hà Nội.
[2] Đỗ văn chƣơng (1999), Nghiên cứu một số phương pháp héo chè trong sản
xuất chè đen và các yếu tố ảnh hưởng đến chất lượng trong quá trình héo, Luận án tiến sỹ khoa học kỹ thuật, Hà Nội .
[3] Lê Doãn Diên - Vũ Thuỵ Thƣ - Đoàn Hùng Tiến - Đỗ Thị Gấm - Giang Trung
Hoa (2001), Các hợp chất hoá học có trong chè và một số phương pháp phân
tích thông dụng trong sản xuất chè ở Việt Nam, Nxb Nông Nghiệp, Hà Nội .
[4] L. NikhilR.Pal (2005), Advanced Techniques in Knowledge Discovery and
DataMining, Springer.
[5] H.J.a.K.M ( 2001), Data Mining: Concepts and Techniques, MorganKaufman,
Academic Press.
[6] Tiêu chuẩn nhà nƣớc (1993), Chè đen, chè xanh, phân tích cảm quan, phƣơng
pháp cho điểm TCVN 3218 , Hà Nội.
[7] Hoàng Xuân Huấn (2015), Giáo trình học máy, Trƣờng Đại học Công nghệ
- Đại học Quốc gia Hà Nội.
[8] B. P. Hofer J (2004), Distributed Decision Tree Induction within the Grid Data
Mining Framework GridMiner-Core, Institute for SoftwareScience, AUT.
[9] H. Deng and G. Runger (2013), Gene selection with guided regularized
random forest, Journal of Pattern Recognition, vol. 46, pp. 3483-3489.
[10] L. Breiman(2001), “Random Forest,” Machine Learning Journal Paper, vol.
45.
[11] Martin Obanda, P. Okinda Owuor and Richard Mang'oka (2001) “Changes in the chemical and sensory quality parameters of black tea due to variations of fermentation time and temperature” Food Chemistry, Volume (75), Issue 4, Pages 395-404.
[12] Martin Obanda, P. Okinda Owuor, Richard Mang’oka and Mutuku M. Kavoi (2004) “Changes in thearubigin fractions and theaflavin levels due to variations
in processing conditions and their influence on black tea liquor brightness and total colour”, Food Chemistry, Volume (85), Issue 2, Pages 163-173.
[13] Mehmet Tufekci and Saadettin Guner (1997) “The determination of optimum fermentation time in Turkish black tea manufacture”, Food Chemistry, Volume (60), Issue 1, Pages 53-56.
[14] Thomas Muthumani and R.S. Senthil Kumar (Available online 7 March 2006)
”Influence of fermentation time on the development of compounds responsible for quality in black tea”, Food Chemistry, In Press, Corrected Proof.
[15] Leo Breiman, Jerome Friedman, Charles J. Stone, R.A. Olshen (1984),
Classification and Regression Trees, Taylor & Francis.
[16] Martin Obanda, P. Okinda Owuor and Richard Mang'oka (2001) “Changes in
the chemical and sensory quality parameters of black tea due to variations of fermentation time and temperature” Food Chemistry, Volume (75), Issue 4, Pages 395-404.
P ụ lục 1: C ƣơn trìn tố ƣu óa số t àn p ần c ín và số cây tron RF(đạ d ện TFs)
from __future__ import division, print_function import numpy as np
from sklearn.model_selection import train_test_split from scipy.spatial.distance import cdist
def random_split(spectra, test_size=0.25, random_state=None, shuffle=True, stratify=None): return train_test_split( spectra, test_size=test_size, random_state=random_state, shuffle=shuffle, stratify=stratify)
def kennardstone(spectra, test_size=0.33, metric='mahalanobis', *args, **kwargs): if test_size < 1:
train_size = round(spectra.shape[0] * (1 - test_size)) else:
train_size = spectra.shape[0] - round(test_size) if train_size > 2:
distance = cdist(spectra, spectra, metric=metric, *args, **kwargs)
select_pts, remaining_pts = max_min_distance_split(distance, train_size) else:
raise ValueError("kich thuoc mau dao tao it nhat la 2") return select_pts, remaining_pts
def spxy(spectra, yvalues, test_size=0.25, metric='euclidean', *args, **kwargs): if test_size < 1:
train_size = round(spectra.shape[0] * (1 - test_size)) else:
train_size = spectra.shape[0] - round(test_size) if train_size > 2:
yvalues = yvalues.reshape(yvalues.shape[0], -1)
distance_spectra = cdist(spectra, spectra, metric=metric, *args, **kwargs) distance_y = cdist(yvalues, yvalues, metric=metric, *args, **kwargs) distance_spectra = distance_spectra / distance_spectra.max()
distance_y = distance_y / distance_y.max() distance = distance_spectra + distance_y
select_pts, remaining_pts = max_min_distance_split(distance, train_size) else:
raise ValueError("kich thuoc mau dao tao it nhat la 2") return select_pts, remaining_pts
def max_min_distance_split(distance, train_size): select_pts = []
remaining_pts = [x for x in range(distance.shape[0])] # dau tien chon 2 dien xa nhat
first_2pts = np.unravel_index(np.argmax(distance), distance.shape) select_pts.append(first_2pts[0])
select_pts.append(first_2pts[1])
# xoa 2 diem dau tien khoi danh sach con lai remaining_pts.remove(first_2pts[0])
remaining_pts.remove(first_2pts[1]) for i in range(train_size - 2):
# tim khoang cach toi thieu, toi da select_distance = distance[select_pts, :]
min_distance = select_distance[:, remaining_pts] min_distance = np.min(min_distance, axis=0) max_min_distance = np.max(min_distance)
# chon diem dau tien(truong hop khoang cach giong nhau thi chon diem dau tien)
points = np.argwhere(select_distance == max_min_distance)[:, 1].tolist() for point in points:
if point in select_pts: pass else: select_pts.append(point) remaining_pts.remove(point) break
return select_pts, remaining_pts
from __future__ import division, print_function import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split from scipy.spatial.distance import cdist
data = pd.read_excel(r'C:\Users\Long TA\Desktop\test.xlsx') X = data.iloc[:, 0:9].values
from sklearn.preprocessing import StandardScaler sc = StandardScaler()
X_st = sc.fit_transform(X)
[row_train,row_test] = spxy(X_st, y) X_train = X_st[row_train, 0:9] X_test = X_st[row_test, 0:9]
y_train = data.iloc[row_train, 9].values y_test = data.iloc[row_test, 9].values from sklearn.decomposition import PCA
from sklearn.ensemble import RandomForestRegressor from sklearn import metrics
rmsep = [] rmsec = [] for i in range(1, 10, 1): pca = PCA(n_components=i) X_trainPCA = pca.fit_transform(X_train) X_test_PCA = X_test.dot(pca.components_.transpose()) for j in range(20, 1000, 20):
regressor = RandomForestRegressor(n_estimators= j, random_state=0) regressor.fit(X_trainPCA, y_train)
y_c = regressor.predict(X_trainPCA) y_p = regressor.predict(X_test_PCA)
rmsec.append(np.sqrt(metrics.mean_squared_error(y_train, y_c))) rmsep.append(np.sqrt(metrics.mean_squared_error(y_test, y_p)))