發表文章

目前顯示的是 5月, 2019的文章

Machine Learning-python用LSTM模型進行時間序列預測1(LSTM to do time series forecasting using python keras)

這篇實作LSTM多對一的模型,顧名思義就是用過去多筆資料去預測未來一筆。 整個處理流程可分為 1.讀取資料 2.正規化資料(較會收斂) 3.切割訓練集 4.打亂資料順序(訓練結果可更好) 5.建模型 6.最佳化並評估訓練結果 以下直接用程式範例說明 import pandas as pd import numpy as np from keras.models import Sequential from keras.layers import Dense, Dropout, Activation, Flatten, LSTM, TimeDistributed, RepeatVector import mysql.connector from keras import optimizers from keras.callbacks import EarlyStopping #讀資料 xls_file = pd.ExcelFile('A.xlsx') df = xls_file.parse('sheet1') data=df #正規化 def normalize(train):   train_norm = train.apply(lambda x: (x - np.mean(x)) / (np.max(x) - np.min(x)))   return train_norm data=normalize(data) #切訓練集,24筆去預測未來1筆,Y_train就是你要預測的參數。 def buildTrain(train, pastDay, futureDay):   X_train, Y_train = [], []   for i in range(train.shape[0]-futureDay-pastDay):     X_train.append(np.array(train.iloc[i:i+pastDay]))     Y_train.append(np.array(train.iloc[i+pastDay:i+pastDay+futureDay]["goal"]))   retur...

Python-相關係數矩陣實作(python-correlation matrix )

圖片
相關係數被用來 用於度量兩個變數X和Y之間的相關 程度(線性相依),其值介於-1與1之間。在自然科學領域中,該係數廣泛用於度量兩個變數之間的線性相依程度。 再資料科學中,前處理步驟可先用來觀察參數間的關係,可幫助找到對目標參數影響較大的變數。 下面就用python實作係數矩陣視覺化。 import pandas as pd import matplotlib.pyplot as mp, seaborn #讀資料 xls_file = pd.ExcelFile('A.xlsx') df = xls_file.parse('sheet1') data=df print(df) #視覺化 df_corr = df.corr() seaborn.heatmap(df_corr, center=0, annot=True) mp.show() dataframe長這樣 相關係數矩陣

有錢人想的和你不一樣-書後短評(Secrets of the Millionaire Mind)

圖片
有錢人想的和你不一樣 不是一本教妳如何投資,如何賺錢的書。一本改變妳對待人生各種生活事務心態的書。 前半部教妳要有自己的金錢藍圖,大方向如何去執行,人生規劃想的遠是很重要的事。 後半部告訴妳17種思維,並舉些實例讓你了解這樣思維的含意,並配合一些肢體動作要您記住。 簡單總評是一本簡單的入門書,要你要去相信你可以,思維有了後最重要的是要行動,不然只會淪為空想,就像高雄發大財口號一般。

關島自由行-美食篇(Guam restaurant)

圖片
記錄2019/02/17~2019/02/22在關島吃過的餐廳與小小心得。 因為是小島也沒啥海產與畜牧業,食物都偏貴。 Core BBQ Garden & Bar 第一天晚上吃的餐廳,生蠔是烤過的原以為是生的,牛排尚可。 Uomaru Honten 某日晚上想吃日本料理挑到的,口味還OK算好吃,分量很大。 Fuji Ichiban Ramen 2 當地的拉麵店,吃起來OK蠻像日本的口味。 Ban Thai Restaurant 泰國料理口味很道地,當天去中午人很多,是吃到飽的型式,好吃。 Jeff's Pirates Cove 環島到東岸時吃的景觀餐廳,當天暴雨,食物普普就是環島到一半少數的幾家餐廳。 最後第二天中午點的牛排,很好吃可以說是這次最好吃或第二,與下一家差不多,但google map竟然找不到,就在這家義大利餐廳的隔壁,當時選戶外吃。 Tony Roma's 豬肋排跟龍蝦非常好吃,值得再點,但法式洋蔥湯不要輕易嘗試,不像台灣的洋蔥湯,它非常鹹。

ASP.NET-Timer應用(using timer)

Timer配合ajax可以在定期內更新部分頁面,但若在timer method中必須下條件,timer會把順序做完才更新無法達成效果,必須在條件內return,以下為程式範例。 前端: <asp:ScriptManager ID="ScriptManager1" runat="server"> <asp:UpdatePanel ID="UpdatePanel1" runat="server">                         <ContentTemplate>                             <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">                             </asp:Timer>                                 <asp:Label ID="lbl_test" runat="server" ></asp:Label>                         </ContentTemplate>                     </asp:UpdatePan...

ASP.NET-FileUpload上傳後自動觸發button click(FileUpload upload auto trigger button click)

在ASP.NET中FileUpload很常都需要配一個button,上傳檔案一個動作,上傳後還需點擊按鈕才能觸發後續的儲存等等功能。 這邊要實作上傳檔案後自動觸發後續功能,不用再多一步點擊按鈕。 前端: 當fileUpload的值不為空自動找到button做click動作     <script type="text/javascript">     function UploadFile(fileUpload) {         if (fileUpload.value != '') {             document.getElementById("<%=btn_upload.ClientID %>").click();         }     }     </script> 新增FileUpload跟button並把button隱藏 <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btn_upload" runat="server" OnClick="btn_upload_Click" Style="display: none" /> 後端: using System.IO; //新增屬性當onchange時觸發javascript function protected void Page_Load(object sender, EventArgs e) {       FileUpload1.Attributes["onchange"] = "UploadFile(this)";        } //完成自動觸發button click protected void btn_upload_Click(object sender, EventArgs e)...

ASP.NET-利用Oledb讀取DBF資料庫(Oledb load .dbf file)

使用Oledb讀取DBF資料庫可參考下列兩個methods,實際呼叫參考最下面的code,把讀出檔案匯入datatable              using System.Data.OleDb;         // 利用Oledb讀取DBF資料庫         public static OleDbConnection OleDbDbfOpenConn(string DatabaseDirectory)         {             string cnstr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + DatabaseDirectory + "; Extended Properties=dBASE IV; User ID=Admin; Password=;");             OleDbConnection icn = new OleDbConnection();             icn.ConnectionString = cnstr;             if (icn.State == ConnectionState.Open) icn.Close();             icn.Open();             return icn;         }         public static DataTable GetOleDbDbfDataTable(...

Python讀取mysql出現Authentication plugin 'caching_sha2_password' is not supported解決方法

用mysql.connector在讀取MySQL時如下程式碼 cnx = mysql.connector.connect(user='ccc', password='bbb',                               host='172.00.000.000',                               database='aaa') cursor = cnx.cursor() query = ("SELECT xxx FROM aaa;") cursor = cnx.cursor(buffered=True) cursor.execute(query) 在mySQL8.0預設caching_sha2_password加密,但套件不支援,所以必須加上一行把預設加密改為mysql_native_password cnx = mysql.connector.connect(user='ccc', password='bbb',                               host='172.00.000.000',                               database='aaa',                               auth_plugin='mysql_native_password') 即可...

酒-君度波丹 CointreauPolitan

圖片
君度波丹 CointreauPolitan 好市多入手的君度橙酒,單飲有橘子皮的香味與甜味,酒味有但不重,隨便配個果汁都很好喝,橙酒50ml、蔓越梅汁30ml、檸檬汁20ml就是居度波丹,整體就是水果飲料,好喝也醉很快🍸

酒-格蘭利威15年 The Glenlivet 15 Year Old French Oak Reserve

圖片
格蘭利威15年 The Glenlivet 15 Year Old French Oak Reserve 家樂福禮盒組,衝著聞香杯買的。 聞起來有點淡淡的巧克力味,入口微微果香,隨即來的是些許苦味與嗆辣感。 整體來說算好入喉,但又有點沒特色😂

Machine Learning-多層感知器程式範例 使用python (Multilayer perceptron case using python keras)

手上剛好有一份冷媒的溫壓對照表,如下連結 R245fa 但當你的數值不能剛好match還需要一個一個換算,因此直接用MLP訓練個擬合模型來換算。 目標就是希望壓力經過模型後自動換算成溫度,就直接看code。 import pandas as pd import numpy as np from keras.models import Sequential from keras.layers import Dense, Dropout, Activation, Flatten, LSTM, TimeDistributed, RepeatVector #讀取資料 xls_file = pd.ExcelFile('R245fa溫壓表.xlsx') df = xls_file.parse('工作表1') print(df.columns) print(df) #分別把壓力當input與溫度當output train=df X = train.iloc[:,1:]  Y = train.iloc[:,0] X=X.values Y=Y.values #故意打亂1~120的順序,可讓訓練結果更好 def shuffle(X,Y):   np.random.seed(10)   randomList = np.arange(X.shape[0])   np.random.shuffle(randomList)   return X[randomList], Y[randomList] #區分訓練集與測試集 def splitSet(X,Y,rate):     count=int(round(len(X)*rate))     X_train, Y_train = X[:count], Y[:count]        X_test, Y_test = X[count:], Y[count:]     return X_train, Y_train, X_test, Y_test  #再切一份驗證集可讓訓練結果更好 def splitData(X...