發表文章

Ubuntu 14.04 藍牙及無線網路沒有自動啟動

老公的筆電忽然無法上網 連整個無線網路的icon都不見了 他這台掉漆的筆電連鍵盤都壞了 所以另外買了一個小藍牙鍵盤 沒想到怎麼會有這麼悲劇的一天 藍牙跟無線都無法啟動 拿到一台電腦連打字都不能打 我只能看著它傻笑啊 老公是以為我可以用意念輸入嗎 應該是ubuntu 14.04某一個更新的問題 因為我重灌以後又可以用了 但是背景默默的更新完之後 重開機又遇到一樣的狀況 沒有網路已經夠淒慘 誰料到有人的電腦連鍵盤都有問題呢 上網查詢幾個解決方法 把這些通通打過一遍 再重開機 結果藍牙跟無線網路都回來了 實在是不知道到底哪一條救了這台可憐的筆電 po出來讓各位鄉民也試試吧 1. 如果跟我一樣遇到鍵盤有問題 可以把on board這個螢幕小鍵盤叫出來 2. 在終端機輸入 rfkill unblock bluetooth 或是 rfkill unblock all 3. 或是輸入以下      sudo chmod +x /usr/sbin/bluetoothd      sudo service bluetooth restart 然後重開機之前念一下阿彌陀佛 藍牙跟無線就回來了~

[R]Random Forest常見的Error

[Type of predictors in new data do not match that of the training data.] 如果使用R裡面的RF package,建好模型之後放入Testing資料要做預測的時候常常會遇到這個錯誤 這是因為模型裡面的Factor Level跟Testing裡面的不一樣 而且不是說Testing裡面的Factor只要符合模型裡的Factor Level裡其中一個就好了 是Factor Level要完全一模一模 要完全一模一模 要完全一模一模 因為很重要所以說 3次! 例如模型建好了以後 有一個類別變數叫性別,裡面有二個Level是男、女 可是如果你只選取了一筆Testing資料做預測,這一筆的性別是女生,而你沒有把男生的level也設定進去的話 就會一直出現這個令人抓狂的錯誤 而且你不知道到底怎麼回事 為什麼一直過不了 解決的方法就是把Model裡的所有變數的Level通通取出來 強制設定在Testing資料中 就算目前資料裡面沒有這個Level也沒關係,如下 genderLevel <- as.factor(model$forest[[11]]$gender) #把模型中的gender變數裡的level取出 levels(Test$gender) <- levels(genderLevel) #強制設定給Testing的gender 所以保險起見 每一個類別變數都要這樣子設定一次 預測資料的時候才不會又error了 還有另外一個情況是Testing的Factor Level是Model裡面沒有的 例如 model裡面的性別level是男、女 但是Testing的性別level裡面有男、女、未知 這樣就不行了,RF Model不接受建模的時候沒有的level 可以用以下指令看二個類別變數不同的部份 setdiff(levels(Test$gender), levels(Model$gender)) 所以解決的方式是 1. 把性別未知那一筆資料刪除 2.把未知的資料再丟進去建一次模型 以上解決方法分享給遇到同樣問題的苦主

[T-SQL]利用cursor將SQL中的geography line的point一一取出

圖片
對SQL Server的geography的型態資料又愛又恨 一方面是他在SQL Server裡真的很好用又方便 一方面是如果要把資料匯出的話其它系統完全認不得 又要另外處理 今天是因為希望BI工具接geography的資料 在地圖上畫出我要的點跟線 但BI工具是另外一家廠商的 完全不認geography的型態資料 而畫出點很容易 線就有點麻煩 於是利用cursor將line裡面的點一一取出並排序號 這樣子我們的BI工具才可以畫出一條連接的線 以下是我自已寫的小範例 就是利用cursor把一行一行的line取出來 取得這一條件共有幾個點 STNumPoints() 然後用迴圈把每一個點的經緯度取出STPointN(@linePointStart).Lat, STPointN(@linePointStart).Long

[Python]簡單的爬網程式

最近去學了Python 有點後悔怎麼沒有早點認識他 Python寫起來真的很直覺 目前已經快要取代R 成為我的心頭好! 以下是筆記我的第一支爬網程式 by the way, GitHub的Gist服務實在是太棒溜~ 程式會爬yahoo電影的網頁 抓出我需要的資訊 並另存在一個txt檔案 結果像這樣 電影名稱:小小兵,Minions 上映日期:2015-07-09 類  型:動畫,喜劇 片  長:1時33分 導  演:《神偷奶爸》皮耶考芬,《羅雷司》凱爾巴爾達 演  員:(配音)《地心引力》珊卓布拉克,《神偷奶爸》史提夫卡爾,喬漢姆,《浪人47》真田廣之,《怒火狂飆》凱蒂米克松,《史瑞克2》珍妮佛珊德絲 發行公司:環球影業 官方網站:未提供 劇情介紹:由環球影業以及Illumination娛樂公司出品的《小小兵》故事起源於盤古開天時期,剛開始只是一個黃色的有機體,隨著時間漸漸演化成小小兵團,他們的存在目的就是要服侍當代最兇惡的主人,然而從T. Rex 恐龍,埃及法老王,拿破崙甚至是德古拉,小小兵總是不停的失敗了-到最後小小兵們發現已經沒有可以服侍的主人,從此開始鬱鬱寡歡,甚至逐漸凋零。這時其中的一隻小小兵—凱文他有個偉大的計畫,就是帶著他的麻吉—大胃王史都華還有膽小的蘿蔔,挺身而出踏上尋找新主人的冒險旅程…

我感受到企業的"大數據"迷思

1.管理階層最近幾年被"大數據"迷的暈頭轉向,認為只要公司裡面資料很多很多就是大數據,但卻不知道跟某些產業的資料量比起來簡直是小巫見大巫。 2.高層一直被啤酒跟尿布的陳年破事(我相信做Data Mining的鄉民都聽得很煩了吧)洗腦,認為只要有資料就可以做出一樣的結果,期待分析人員開始分析之後也可以有這麼驚喜的發現。 3.不去管是不是真的需要一個分散式運算的架構,大家都有我們公司怎麼可以沒有,來人啊,建一個! 我明天要去跟隔壁王董說我們也大數據了。 4.只要提到數據二個字通通改成大數據 5.建立跟管理分散式運算的架構是一批人,數據分析應該是另外一批人,但是要養一個可以架系統的已經很貴了,於是就順便叫他也要會Data Mining跟分析 6.會分析的人找到了! 可是我們要分析什麼? 不好意思啊,你自己研究,我要啤酒跟尿布那種效果(又來了) 7.挖掘出有商業應用的資訊需要時間,老闆通常等不及,或是團隊發現的事實是早就知道的Business know-how (老闆承受得了這種打擊嗎) 8.我認為Data Mining的重點在於最後千垂百鍊的模型,並且已經開發成一個運算核心,這個模型也要時常重新訓練,但是台灣老闆好像不覺得這是重點,分析團隊大部份做出的是一個封測的結果,像寫論文那樣,但是然後呢? 9.發現很多公司認為買了BI = 有大數據 10.市場上號稱自己會Data Mining的人素質參差不齊,我認為自己還要再努力,遇過做DM已經好幾年的 但連分群跟分類都搞不清楚,還很肯定的看著我說 分群跟分類是一樣的,我至今感到很震驚 ,然後不管用什麼演算法只要二個變數相關性很高就說有共線性的問題,而且不止一二位 我認為這是統計系出身的人應該要有的基本觀念 如果以後有機會面試DM的伙伴一定問這二個問題先

[T-SQL] 如何得到台灣村里經緯度及畫出村里界線

圖片
因為負責公司的open data專案而開始常常想 open data的應用 也想用利用open data做一些自己的作品 一直想用地理資訊呈現一些資料視覺化的效果 最近發現原來政府有公開村里的地理資訊資料 實在是太棒了 覺得自己繳的稅有了回報 政府公開的是shp檔 於是又摸索了一下如何把shp轉成SQL Server的地理物件 發現台灣很少有人寫到這一塊 於是我又雞婆的先來跟鄉民報告一下我是怎麼做的吧 在這裡 http://data.gov.tw/node/7438下載地理資訊 或是搜尋 村里界圖 村里經緯度 就可以找到 下載完之後解壓縮 先放著 趕緊再去下載一個很重要的轉檔程式 http://www.sharpgis.net/page/sql-server-2008-spatial-tools 下載完以後一樣要解壓縮 會看到資料夾裡面有Shape2sql執行檔 按二下之後會跳出這個畫面請你設定要連線的資料庫 如果暫時不連就先按Cancel 然後會跳出以下這個畫面 這才是正經的 在Shapefile的地方選擇你剛剛下載好並解壓縮的村里地理資訊資料裡的 .shp 檔案 接著按下Configure輸入你要上傳的資料庫連線資訊 如上圖 然後按下 upload to Database 幸運的話 你就會看到上傳的進度 等到上傳完成會跳出通知的視窗 如果不幸運的話 你可能會像我一樣遇到 系統缺少sqlspatial.dll的錯誤訊息 這時候就要去下載額外的功能套件 叫做   " Microsoft SQL Server System CLR Types "  http://www.microsoft.com/zh-TW/download/details.aspx?id=29065 裝好 Microsoft SQL Server System CLR Types 之後 再重新打開 Shape2sql重新上傳一次 應該就成功囉 你可以到你的資料庫裡面看有沒有多出一個資料表 上傳成功的資料表畫面如下 到空間結果的地方可以看到村里的界線圖 最重要的是資料表裡面已經有了Geometry物件 可以隨心所欲的做其它的運算 例如我運用了STCentriod這個method算...

[T-SQL] geography 資料類型的應用筆記

因為公司產業的關係,常常會需要算二點之間的距離 還沒發現geography這個資料型別之前都是直接算二點之間的直線距離,但是心裡知道其實不對,應該要用弧形距離去算才對 SQL的geography的資料型別可以儲存單點、線、多邊形的表示方式 而且有方法直接可以算出真正的距離(以地球弧形為準) 簡直是天要救我啊 點 INSERT INTO [dbo].[GeoTest] ([ID], [Geo]) VALUES (1, 'POINT (121.43, 25.02)') 這裡可以注意到是用POINT後面直接帶經緯度,寫入之後系統會自動轉成geography物件 線 INSERT INTO [dbo].[GeoTest] ([ID], [Geo]) VALUES (2, 'LINESTRING (121.34 25.10, 120.10 24.33)') 這裡是用LINESTRING後面帶2個點,中間用逗號分隔,所以會變成一直線,寫入之後系統也會自動轉成geography物件,可以在SQL的空間結果裡看到一條線 多邊形 INSERT INTO [dbo].[GeoTest] ([ID], [Geo]) VALUES (3, 'POLYGON (121.34 25.10, 120.10 24.33, 123.11 23.12, 127.55 24.12)') 這裡是用POLYGON後面帶4個點,所以會變成一個多邊形,一樣會自動轉成geography物件,可以在空間結果裡看到一個區塊,這是可以應用到區域的劃分 假設要算二點之間的距離,可以用STDistance這個方法算出來,系統預設是公尺 以剛剛[GeoTest] 資料表為例,其中的Geo欄位是geography的資料型別 所以可以直接 SELECT Geo.STDistance('POINT (122.43, 24.02)'))  算出Geo這個欄位跟點 122.34, 24.02的距離是150127.0711 meters