sklearn資料集
資料集API介紹
sklearn.datasets
- 載入獲取流行資料集
- datasets.load_*()
- 獲取小規模資料集,資料包含在datasets裡
- datasets.fetch_*(data_home=None)
- 獲取大規模資料集,需要從網路上下載,函式的第一個引數是data_home,表示資料集下載的目錄,預設是 ~/scikit_learn_data/
sklearn小資料集
-
sklearn.datasets.load_iris()
載入並返回鳶尾花資料集
-
sklearn.datasets.load_boston()
載入並返回波士頓房價資料集
sklearn大資料集
- sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
- subset:'train'或者'test','all',可選,選擇要載入的資料集。
- 訓練集的“訓練”,測試集的“測試”,兩者的“全部”
sklearn資料集的使用
sklearn資料集返回值介紹
- load和fetch返回的資料型別datasets.base.Bunch(字典格式)如下:
- data:特徵資料陣列,是 [n_samples * n_features] 的二維 numpy.ndarray 陣列
- target:標籤陣列,是 n_samples 的一維 numpy.ndarray 陣列
- DESCR:資料描述
- feature_names:特徵名,新聞資料,手寫數字、迴歸資料集沒有
- target_names:標籤名
def datasets_demo():
"""
sklearn資料集使用
"""
#獲取資料集
iris=load_iris()
print("鳶尾花資料集:\n",iris)
print("檢視資料集描述:\n",iris.DESCR)
print("檢視特徵值的名字:\n",iris.feature_names)
print("檢視特徵值:\n",iris.data,iris.data.shape)
#資料集劃分
# 訓練集的特徵值x_train 測試集的特徵值x_test 訓練集的目標值y_train 測試集的目標值y_test
x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
#訓練集的特徵值
print("訓練集的特徵值:\n",x_train,x_train.shape )
# 隨機數種子
x_train1, x_test1, y_train1, y_test1 = train_test_split(iris.data, iris.target, random_state=6)
x_train2, x_test2, y_train2, y_test2 = train_test_split(iris.data, iris.target, random_state=6)
print("如果隨機數種子不一致:\n", x_train == x_train1)
print("如果隨機數種子一致:\n", x_train1 == x_train2)
return None
特徵提取
字典特徵提取
作用:對字典資料進行特徵值化
- sklearn.feature_extraction.DictVectorizer(sparse=True,…)
- DictVectorizer.fit_transform(X) X:字典或者包含字典的迭代器返回值:返回sparse矩陣
- DictVectorizer.inverse_transform(X) X:array陣列或者sparse矩陣 返回值:轉換之前資料格式
- DictVectorizer.get_feature_names() 返回類別名稱
我們對以下資料進行特徵提取
[{'city': '北京','temperature':100}
{'city': '上海','temperature':60}
{'city': '深圳','temperature':30}]
def dict_demo():
"""
對字典型別的資料進行特徵抽取
:return: None
"""
data = [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 60}, {'city': '深圳', 'temperature': 30}]
# 1、例項化一個轉換器類
transfer = DictVectorizer(sparse=False)
# 2、呼叫fit_transform
data = transfer.fit_transform(data)
print("返回的結果:\n", data)
# 列印特徵名字
print("特徵名字:\n", transfer.get_feature_names())
return None
對於特徵當中存在類別資訊的我們都會做one-hot編碼處理