python機器學習算法與數據降維分析詳解
一、數據降維
機器學習中的維度就是特征的數量,降維即減少特征數量。降維方式有:特征選擇、主成分分析。
1.特征選擇
當出現以下情況時,可選擇該方式降維:
①冗餘:部分特征的相關度高,容易消耗計算性能
②噪聲:部分特征對預測結果有影響
特征選擇主要方法:過濾式(VarianceThreshold)、嵌入式(正則化、決策樹)
過濾式:
sklearn特征選擇API
sklearn.feature_selection.VarianceThreshold
註意:沒有最好的方差選擇,需要根據實際效果選擇方差。
2.主成分分析(PCA)
API:sklearn.decomposition
主成分分析會盡可能降低原數據的維數,損失少量信息。當特征數量達到上百的時候,就需要考慮主成分分析。可以削減回歸分析或者聚類分析中特征的數量。
PCA語法:
裡面的n_components通常填0-1的小數,代表保留百分之多少的數據,比如0.95意思是保留95%的數據。通常在0.9-0.95之間
3.降維方法使用流程
例如:研究用戶和購買物品類別的關系,數據有不同的表格存儲,均為csv文件,但所需的兩者“用戶”和“購買物品類別”,存在於不同的表中。則可以按照以下流程進行:
1.觀察各個表格的鍵,通過相同的鍵對表格進行合並,使用pandas.merge(表1,表2,鍵1,鍵2)方法,其中鍵1和鍵2相同。經過多次合並,最終將兩個目標合並到一張表中。
2.通過交叉表pd.crosstab(合並後的表[‘用戶’], 合並後的表[‘物品類別’]),建立一個以用戶為行,以物品類別為列的數據表。
3.對表格進行數據的降維,可以使用PCA(n_components=0.9),保留90%的有效信息,輸出降維後的數據。即可有效減少維度,並確保留存90%的有效信息。
二、機器學習開發流程
1.機器學習算法分類
數據類型:
離散型:區間內不可分,通常是在分類型問題中。
連續型:區間內可分,通常是在預測型問題中。
算法分類:
算法總體分為兩類,監督學習和無監督學習。
①監督學習包含特征值+目標值,算法又分為兩小類,分類算法和回歸算法。
分類算法:k-近鄰算法、貝葉斯分類、決策樹與隨機森林、邏輯回歸、神經網絡
回歸算法:線性回歸、嶺回歸
②無監督學習隻有特征值,通常是聚類算法:k-means
2.機器學習開發流程
機器學習開發首先需要有數據,數據來源可能有以下幾種:公司本身有數據、合作過來的數據、購買的數據。
具體開發流程如下:
①明確實際問題做什麼:根據目標值數據類型,建立模型,劃分應用種類。看看是分類問題還是預測問題。
②數據的基本處理:使用pandas處理數據,缺失值,合並表等等。
③特征工程:對數據特征進行處理(重要)。
④找到合適的算法去進行預測。
⑤模型的評估,判定效果→上線使用,以API形式提供;若模型評估沒有合格:換算法、參數,特征工程
sklearn數據集的使用:
通常在使用前會對數據集進行劃分,從數據中拿出約75%作為訓練集、25%作為測試集。也可以0.8/0.2等。通常0.75/0.25是使用最多的。
sklearn數據集劃分API:sklearn.model_selection.train_set_split
sklearn數據集API:
獲取數據集返回的類型:
數據集進行分割:
用於分類的大數據集:
sklearn回歸數據集:
三、轉換器與估計器
1.轉換器
在數據處理中用到的fit_tansform方法中,其實可以拆分為fit方法和transform方法。
fit_transform() = fit() + transform()
若直接使用fit_transform(),則是對輸入的數據進行求平均值、標準差,並使用它們進行數據處理最終輸出結果。
如果拆開的話:
fit()
:輸入數據,計算平均值,標準差等,不進行後續工作。
transform()
:使用fit計算好的內容進行轉換。
也就是說可以通過fit()方法,生成1個數據對應的標準,使用這個標準,對其他數據,通過transform方法進行轉換。
2.估計器
估計器就是已經實現瞭的算法的API,可以直接調用,輸入相關數據,對結果進行預測等。
估計器工作流程:
1.調用fit(x_train, y_train),輸入訓練集
2.輸入測試集的數據(x_test, y_test),調用不同接口可得不同結果
API①:y_predict = predict(x_test),該接口可獲得算法對y的預測值。
API②:score(x_test, y_test) ,該接口可獲得預測的準確率。
以上就是python機器學習算法與數據降維分析詳解的詳細內容,更多關於python機器學習算法與數據降維的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- python機器學習樸素貝葉斯算法及模型的選擇和調優詳解
- Python集成學習之Blending算法詳解
- python機器學習基礎線性回歸與嶺回歸算法詳解
- 人工智能-Python實現嶺回歸
- python機器學習基礎K近鄰算法詳解KNN