2019年8月20日 星期二

百香果栽培新里程碑無毒果園揭牌,全果加值應用做成面膜、蜜餞、蛋糕、冰淇淋



南開科技大學執行教育部大學社會責任實踐計畫南投百香果資源永續煉銀網平台計畫團隊,於108819日來到百香果故鄉南投縣埔里鎮合成里展開一天的行程。回顧107317該計畫團隊與社區民眾首次座談、10766日又再次座談,還有不記次數的明查暗訪。密集座談訪問的目的是藉以了解社區需求,回應社區期待,確立了計畫的走向。轉眼來到了108819日,計畫執行一年多了,有哪些成果?有哪些可以向大眾分享?

    早上到鄭家果園,為無毒果園揭牌去年4月南開團隊在校園栽植30棵百香果,採用無毒友善管理。在不噴灑藥劑的情況下,成功地讓百香果獲得豐碩的收成。果樹度過寒冬,在春分時節,又產出新的的果實。可惜初夏的大豪雨夾帶狂風吹倒了棚架,校園百香果暫時走入歷史。感謝鄭家願意以一年的收成風險讓南開實現無毒場域的理想,也無縫接軌校園百香果。如今鄭家果園滿滿健碩的果實,讓大家鬆了一口氣,也證實我們走在正確的道路上。





下午舉行百香果加值產品發表。由計畫主持人孫校長台平教授以及陳信順里長共同主持,孫校長首先告訴大家一個好消息,計畫團隊所設計的NPF商標具備高產業價值通過,其中N有南投、南開和無毒三層意義;P代表百香果、熱情;而F則有水果以及福爾摩沙諸多種意義。陳里長首先感謝南開科技大學集全校之力,以社區共好、共遊、和共榮三個子計畫投入大學社會責任,經過一年多,成果大家有目共睹,特別感謝孫校長所帶領的煉銀網團隊。

今日發表產品有果皮提煉花青素做的面膜、果肉製成的蜜餞、果汁做成百香果蛋糕、百香果法式冰淇淋等,這些產品都是南開科技大學教師帶領學生完成的,除了有人才培育外,更鏈結在地資源。座談會也有邀請行銷專長的業者雞耀密酥黃榮祥和高應大趙伯元老師提供行銷管道。面膜由陳榮煇學務長提煉花青素研發、果皮蜜餞由本校老師紀璟叡老師研發,百香果蛋糕是甜心大叔江鈴莉、林育德研發。面膜體驗由沐馨工作室創辦人邱斐俞主持,當場邀請合成里三位里民體驗面膜,邱創辦人示範如何運用科學方法來看面膜的保養效果,三位體驗的里民紛紛表示體驗者都稱好。法式冰淇淋是吳書瑀團隊研發,這隻冰淇淋即將在國慶進軍國宴,無毒百香果冰淇淋即將走向國際舞台。純而不膩細緻軟密的蛋糕獲得合成里陳里長高度讚賞,法式冰淇淋打破用添加物才能做出冰淇淋的成規」完整保留百香果的香甜。冰淇淋和蛋糕業者都走天然無添加方向,符合環境永續與身心健康之現代趨勢。面膜、蜜餞則發揮回收再利用之精神,並需以無毒產品為原料,大有益於環境之永續

百香果花青素面膜

面膜體驗

法式冰淇淋 吳書瑀小姐

百香果汁法式冰淇淋

甜心大叔 林育德 先生

百香果汁蛋糕

紀璟叡老師研發果皮蜜餞

百香果果皮蜜餞


2019年8月4日 星期日

利用最近鄰居法(KNN)搭配matplotlib畫出水果分類圖

程式原始碼:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/Solving%20A%20Simple%20Classification%20Problem%20with%20Python.ipynb

水果資料來源:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/fruit_data_with_colors.txt


在上一篇文章中,我們發現最近鄰居法(KNN)在水果分類上表現最好,本篇將原始程整理後列出,並以matplotlib套件畫出水果分類圖,在原始程式中有一點小小錯誤,在第25行,已修復,讀者不妨試試。




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import ListedColormap, BoundaryNorm
import matplotlib.patches as mpatches
import matplotlib.patches as mpatches
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

fruits = pd.read_table('fruit_data_with_colors.txt')

X = fruits[['mass', 'width', 'height', 'color_score']]
y = fruits['fruit_label']
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

def plot_fruit_knn(X, y, n_neighbors, weights):
    X_mat = X[['height', 'width']].as_matrix()
    y_mat = y.as_matrix()

    # Create color maps
    cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF','#AFAFAF'])
    cmap_bold  = ListedColormap(['#FF0000', '#00FF00', '#0000FF','#AFAFAF'])

    clf = KNeighborsClassifier(n_neighbors, weights=weights)
    clf.fit(X_mat, y_mat)

    # Plot the decision boundary by assigning a color in the color map
    # to each mesh point.
    
    mesh_step_size = .01  # step size in the mesh
    plot_symbol_size = 50
    
    x_min, x_max = X_mat[:, 0].min() - 1, X_mat[:, 0].max() + 1
    y_min, y_max = X_mat[:, 1].min() - 1, X_mat[:, 1].max() + 1
    xx, yy = np.meshgrid(np.arange(x_min, x_max, mesh_step_size),
                         np.arange(y_min, y_max, mesh_step_size))
    Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])

    # Put the result into a color plot
    Z = Z.reshape(xx.shape)
    plt.figure()
    plt.pcolormesh(xx, yy, Z, cmap=cmap_light)

    # Plot training points
    plt.scatter(X_mat[:, 0], X_mat[:, 1], s=plot_symbol_size, c=y, cmap=cmap_bold, edgecolor = 'black')
    plt.xlim(xx.min(), xx.max())
    plt.ylim(yy.min(), yy.max())

    patch0 = mpatches.Patch(color='#FF0000', label='apple')
    patch1 = mpatches.Patch(color='#00FF00', label='mandarin')
    patch2 = mpatches.Patch(color='#0000FF', label='orange')
    patch3 = mpatches.Patch(color='#AFAFAF', label='lemon')
    plt.legend(handles=[patch0, patch1, patch2, patch3])

        
    plt.xlabel('height (cm)')
    plt.ylabel('width (cm)')
    plt.title("4-Class classification (k = %i, weights = '%s')"
              % (n_neighbors, weights))
    
    plt.show()
plot_fruit_knn(X_train, y_train, 5, 'uniform')