sklearn数据集与估计器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sklearn數據集與估計器
1 sklearn數據集
(1)數據來源:大多數以文件的形式? (csv文件..), 因為mysql有性能瓶頸、讀取速度遭到限制,數據大的時候很費時間
(2)讀取數據的工具:Python中很強大的模塊?pandas:讀取工具、numpy(數據計算模塊,計算速度非常快,因為釋放了Python中的GIL)
(3)可用數據集:
①Kaggle網址:https://www.kaggle.com/datasets
? ? ? ? ? ?Kaggle特點:大數據競賽平臺;80萬科學家;真實數據;數據量巨大
②UCI數據集網址: http://archive.ics.uci.edu/ml/
? ? ? ? ? ?UCI特點:收錄了360個數據集;覆蓋科學、生活、經濟等領域?;數據量幾十萬
③scikit-learn網址:http://scikit-learn.org/stable/datasets/index.html#datasets
? ? ? ? ? ?scikit-learn特點:1數據量較小?;方便學習
(4)數據集的結構
機器學習中數據集的結構:特征值+目標值
特征值:就是DataFrame(他的特點是有行索引和列索引)中的列索引
目標值:很據特征值得到的結果值,就為目標值,就是想要做的事情的目的的分類
樣本:每一行數據可以作為一個樣本
2?sklearn.datasets
機器學習一般的數據集會劃分為兩個部分:
訓練數據:用于訓練,構建模型
測試數據:在模型檢驗時使用,用于評估模型是否有效
一般在進行模型的測試時,我們會將數據分為訓練集和測試集。在給定的樣本空間中,拿出大部分樣本作為訓練集來訓練模型,剩余的小部分樣本使用剛建立的模型進行預測。
sklearn數據集劃分API:sklearn.model_selection.train_test_split
sklearn.datasets 加載獲取流行數據集
datasets.load_*() 獲取小規模數據集,數據包含在datasets里
datasets.fetch_*(data_home=None) 獲取大規模數據集,需要從網絡上下載,函數的第一個參數是data_home,表示數據集 ?? ?下載的目錄
datasets.make_*()本地生成數據集
datasets.get_data_home()獲取數據集目錄,這個文件夾被一些大的數據集裝載器使用,以避免下載數據。默認情況下,數據目錄設置為用戶主文件夾中名為“scikit_learn_data”的文件夾。或者,可以通過“SCIKIT_LEARN_DATA”環境變量或通過給出顯式的文件夾路徑以編程方式設置它。
clear_data_home(data_home=None)刪除所有下載數據
load*和fetch*返回的數據類型datasets.base.Bunch(字典格式)如下:
| data | 特征數據數組,是 [n_samples * n_features] 的二維numpy.ndarray 數組 |
| target | 標簽數組,是 n_samples 的一維 numpy.ndarray 數組 |
| DESCR | 數據描述 |
| feature_names | 特征名,新聞數據,手寫數字、回歸數據集沒有 |
| target_names | 標簽名,回歸數據集沒有 |
?
2.1 獲取小數據集
(1)分類數據集
①sklearn.datasets.load_iris():加載并返回鳶尾花數據集
| 名稱 | 數量 |
| 類別 | 3 |
| 特征 | 4 |
| 樣本數量 | 150 |
| 每個類別數量 | 50 |
參數:return_X_y: 如果為True,則返回而不是Bunch對象,默認為False
返回值Bunch對象,如果return_X_y為True,那么返回tuple,(data,target)
| from sklearn.datasets import load_iris ld = load_iris() print(ld) |
②sklearn.datasets.load_digits():加載并返回數字數據集
| 名稱 | 數量 |
| 類別 | 10 |
| 特征 | 64 |
| 樣本數量 | 1797 |
(2)回歸數據集
①sklearn.datasets.load_boston():加載并返回波士頓房價數據集
| 名稱 | 數量 |
| 目標類別 | 5-50 |
| 特征 | 13 |
| 樣本數量 | 506 |
②sklearn.datasets.load_diabetes() : 加載和返回糖尿病數據集
| 名稱 | 數量 |
| 目標范圍 | 25-346 |
| 特征 | 10 |
| 樣本數量 | 442 |
2.2 獲取大數據集
sklearn.datasets.fetch_20newsgroups():加載20個新聞組數據集中的文件名和數據
| data_home | 默認值:無,指定數據集的下載和緩存文件夾。如果沒有,所有scikit學習數據都存儲在'?/ scikit_learn_data'子文件夾中 |
| subset | 'train'或者'test','all',可選,選擇要加載的數據集:訓練集的“訓練”,測試集的“測試”,兩者的“全部”,具有洗牌順序 |
| categories | 無或字符串或Unicode的集合,如果沒有(默認),加載所有類別。如果不是無,要加載的類別名稱列表(忽略其他類別) |
| shuffle | 是否對數據進行洗牌 |
| random_state | numpy隨機數生成器或種子整數 |
| remove | 元組 |
| download_if_missing | 默認為True,如果False,如果數據不在本地可用而不是嘗試從源站點下載數據,則引發IOError |
sklearn.datasets.fetch_20newsgroups_vectorized():加載20個新聞組數據集并將其轉換為tf-idf向量
2.3 生成本地數據
sklearn.datasets.make_classification():生成本地分類數據
| n_samples:int | (default = 100),樣本數量 |
| n_features | (默認= 20),特征總數 |
| n_classes | 類(或標簽)的分類問題的數量 |
| random_state | RandomState實例或無,可選(默認=無) |
sklearn.datasets.make_regression():生成本地回歸數據
3 估計器
在sklearn中,估計器(estimator)是一個重要的角色,分類器和回歸器都屬于estimator,是一類實現了算法的API,是sklearn機器學習算法的實現。
在估計器中有有兩個重要的方法是fit和transform:①fit方法用于從訓練集中學習模型參數,②transform用學習到的參數轉換數據。
用于分類的估計器:
sklearn.neighbors?? ?k-近鄰算法
sklearn.naive_bayes ? ? ?貝葉
sklearn.linear_model.LogisticRegression ? ? 邏輯回歸
用于回歸的估計器:
sklearn.linear_model.LinearRegression ? ? 線性回歸
sklearn.linear_model.Ridge ? ? ?嶺回歸
總結
以上是生活随笔為你收集整理的sklearn数据集与估计器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 强制结束线程_在pytho
- 下一篇: postman怎么导出测试用例_利用Ch