學習SFrame,根據GraphLab庫

2022-05-02 13:09:08 字數 3179 閱讀 6228

參考課程:機器學習基礎:案例研究--華盛頓大學

開發環境搭建,graphlab create安裝參考:教程1,教程2,以及graphlab教育版註冊鏈結tips(註冊郵箱中)

匯入python的matplotlib庫繪圖(注意as的作用

matplotlib.pyplot的簡單應用

多特徵下的回歸模型建立

my_features = ['bedrooms', 'bathrooms', 'sqft_living', 'sqft_lot', 'floors', 'zipcode']

my_features_model = graphlab.linear_regression.create(train_data,target='price',features=my_features,validation_set=none)

#評估兩個模型

print sqft_model.evaluate(test_data)

print my_features_model.evaluate(test_data)

len(products) :資料集長度測量

products['rating'].show(view = 'categorical') :分類categorical統計products中rating數目

products = products[products['rating'] != 3] :排除非三星的產品

products['sentiments'] = products['rating']>=4 :分類增加情感sentiment類(大於3星)

生成邏輯分類器

auc:(area under the curve)

roc(receiver operating characteristic)曲線和auc常被用來評價乙個二值分類器(binary classifier)的優劣,roc即受試工作曲線,考慮roc曲線圖中的四個點和一條線。第乙個點,(0,1),即fpr=0, tpr=1,這意味著fn(false negative)=0,並且fp(false positive)=0。wow,這是乙個完美的分類器,它將所有的樣本都正確分類。第二個點,(1,0),即fpr=1,tpr=0,類似地分析可以發現這是乙個最糟糕的分類器,因為它成功避開了所有的正確答案。第三個點,(0,0),即fpr=tpr=0,即fp(false positive)=tp(true positive)=0,可以發現該分類器**所有的樣本都為負樣本(negative)。類似的,第四個點(1,1),分類器實際上**所有的樣本都為正樣本。經過以上的分析,我們可以斷言,roc曲線越接近左上角,該分類器的效能越好。

利用roc曲線評估學習好的分類器:

將dict / list / array型別的資料,重新分列:

對個體(obama)做tfidf,並進行根據tfidf結果進行降序排列

計算兩向量(obama、clinton、backham)之間的余弦距離,需要注意這裡cosin距離的定義為1-***

knn_model = graphlab.nearest_neighbors.create(people,features=['tfidf'],label='name') :建立最近鄰模型,label賦值的作用在於query時候,確定返回name的具體值。

knn_model.query(obama) ;詢問距離資料集obama最近的人物

popularity_model = graphlab.popularity_recomender.create(train_data, user_id = 'user_id', term_id = 'song') :基於條款流行度進行推薦

為每個人都推薦當前最流行的單曲(推薦內容是一樣的)

個性化推薦:

推薦例項

利用auc曲線定量比較兩個模型的性質(popularity_model、personality_model)

資料聚合:將資料集song中的被聽得最多/最少的歌手統計出來

挑選前1000名不重複的聽眾朋友

通過filter_by,過濾源集中的相同的值: image_train.filter_by(querry_result['reference_label'], 'id')

>>> sf = graphlab.sframe()

>>> household_pets = ['cat', 'hamster', 'dog', 'fish', 'bird', 'snake']

>>> sf.filter_by(household_pets, 'animal_type')

+-------------+----+------+

| animal_type | id | name |

+-------------+----+------+

| dog | 1 | bob |

| cat | 2 | jim |

+-------------+----+------+

python 小技巧,lambda的使用,編寫簡單的函式,如:f = lambda x,y,z : x+y+z print f(1,2,3)

image_train['label'].sketch_summary() :統計總和,結果為:

most frequent items:

+-------+------------+-----+-----+------+

| value | automobile | cat | dog | bird |

+-------+------------+-----+-----+------+

| count | 509 | 509 | 509 | 478 |

+-------+------------+-----+-----+------+

根據RSSI測距學習收集

1.rssi計算公式 rssi txpower pathloss rxgain systemgain rxgain可以通過天線結構模擬 2.已知rssi 強度 根據公式 d 10 abs rssi a 10 n 可求得距離 a 代表在距離一公尺時的訊號強度 n 代表環境對訊號的衰減係數,視具體環境而...

根據metalink指令碼學習undo(四)

下面這個指令碼是顯示哪些活動事務占用undo空間 set lines 200 set pages 999 clear col set termout off set trimout on set trimspool on remrem current transactions remrem will...

Flask學習 根據WTF實現登入

htm頁面 doctype html html lang en head meta charset utf 8 title 登入 title head body form method post form body html demo02 from flask import flask,render...