機器學習特訓營前四次課總結

機器學習的分類:

監督學習:帶標籤

  • 迴歸:連續python

  • 分類:離散算法

無監督學習 聚類:無標籤,異常檢測,降維

強化學習:試錯

機器學習流程:

1.數據獲取 2.數據清洗 3.特徵工程 4.預處理 5.選擇學習模型 6.機器學習

graph TD 訓練 --> 調參 調參 --> 訓練

7.模型部署函數

數據預處理

特徵提取:特徵工程 處理缺失數據:均值、衆數、聚類、丟棄 數據定標:歸一化 \(\frac{x-min}{max-min}\) 、標準化 \(\frac{x-均值}{方差}\) 提高模型精度、收斂速度,改變稀疏性質 數據轉換:取對數 大類吞小類的:將小類數據加入噪聲添加到數據集中去學習

K最近鄰(KNN)算法

適合低維空間 k通常選奇數 避免打平手 決策邊界 交叉驗證 在數據較少時提升fold,在計算量容許的狀況下彌補數據不足 不能用測試數據來調參 數據量大的狀況下使用 KD樹 、Locality Sensitivity Hashing近似求解 如何處理數據相關性(?) 權重和距離有關測試

def knn_classify(X, y, testInstance, k):
distances = [euc_dis(x, testInstance) for x in X]#計算歐式距離
kneighbors = np.argsort(distances)[:k]#排序獲得k個距離最近的鄰居
count = Counter(y[kneighbors])#統計不一樣類型鄰居出現次數
return count.most_common()[0][0]#取出現次數最多的類型

線性迴歸和邏輯迴歸

線性迴歸是利用線性方程的最小二乘函數對一個或多個自變量和因變量之間關係進行建模的方法spa

線性迴歸的損失函數爲凸函數,具備全局最優解。對損失函數求導(梯度法),使得損失函數的導數爲0時,獲得解析解。code

邏輯迴歸解決二元(0/1)分類問題邏輯函數$f(x)=\frac{1}{1+e^-x}$排序

似然函數(?)部署

樸素貝葉斯:最適合簡單的文本分析的算法

\(P(x|y)(後驗)=\frac{P(y|x)(似然)*P(x)(先驗)}{PI(y)(通常難計算)}\)

樸素:假設P(y1,y2,y3 ... |x)條件獨立 P(y1,y2,y3 ... |x)=P(y1|x)*P(y2|x)*P(y3|x) ...

tfidf(w)=tf(d,w)idf(w) 詞頻權重 idf(w)=log \(\frac{N}{N(w)}\) N:文章總數 N(w):單詞出現次數 避免分母N(w)爲0 ,分母加1,分子加v

文本分類之 - 情感分析

MultinomialNB 適合向量爲整數狀況,高斯樸素貝葉斯適合實數但不適合稀疏矩陣

from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
clf = MultinomialNB()
# 利用樸素貝葉斯作訓練
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print("accuracy on test data: ", accuracy_score(y_test, y_pred))
相關文章
相關標籤/搜索