datasets.load_* ()
获取小规模数据集,数据包含在datasets
datasets.fetch_* (data_home=None,subset=’’)
获取大规模数据集,需要重网络下载
函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/,要修改默认目录,可以修改环境变量SCIKIT_LEARN_DATA
第二个参数可以选择 ‘train’ ‘all’ ‘test’ 分别表示训练集 测试机 和两者
返回值都为datesets.base.Bunch()继承自字典
本质上是一个 dict,它的键值对可用通过对象的属性方式访问。主要包含以下属性:
data:特征数据数组,是 n_samples * n_features 的二维 numpy.ndarray 数组
target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名
target_names:标签名
from sklearn.datasets import load_iris
def dataset_demo():
# 获取数据集
iris = load_iris()
print("鸢尾花数据集\n", iris)
print("查看数据集描述\n",iris["DESCR"])
print("查看特征值的名字\n",iris['feature_names'])
print("查看特征值\n",iris.data,iris.data.shape)
return None
if __name__ == "__main__":
dataset_demo()
机器学习的数据一般分为两个部分
* 训练数据:用于训练,构建模型 70%~80%
* 测试数据:在模型检测时使用,用于评估模型是否有效 20%~30%
最常用的是train_test_split()函数,用来随机划分样本数据为训练集和测试集。
x_train, x_test, y_train, y_test = train_test_split(data, label, test_size = 0.3, random_state = 7)
data:待划分样本数据,特征值
label:待划分样本数据的标签,目标值
test_size:测试数据占样本数据的比例,若整数则是测试数据数量
random_state: 设置随机数种子,保证每次都是同一个随机数。如果为0或者不填,则每次得到数据都不一样。
返回值的顺序依次是训练集特征值,测试集特征值,训练集目标值,测试机目标值
https://blog.csdn.net/Albert201605/article/details/82313139
* data*{ndarray, dataframe} of shape (150, 4)*
The data matrix. If `as_frame=True`, `data` will be a pandas DataFrame. 属性数据,一个二维数组,对应多行特征值(属性值),对应鸢尾花的四个属性的数据集,其实就是取整个表的前四列
* target: {ndarray, Series} of shape (150,)
the classification target. If `as_frame=True`, `target` will be a pandas Series. 种类数据或者说目标数据,对应鸢尾花的种类的数据集
* feature_names: list
四个属性,分别是Sepal.Length(花萼长度),单位是cm;Sepal.Width(花萼宽度),单位是cm;Petal.Length(花瓣长度),单位是cm;Petal.Width(花瓣宽度),单位是cm;
* target_names: list
三个种类,分别是Iris Setosa(山鸢尾);Iris Versicolour(杂色鸢尾);Iris Virginica(维吉尼亚鸢尾)。
* **frame: DataFrame of shape (150, 5)**
Only present when `as_frame=True`. DataFrame with `data` and `target`.
* DESCR: str
The full description of the dataset.描述
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def dataset_demo():
# 获取数据集
iris = load_iris()
print("鸢尾花数据集标签\n", iris.target)
#鸢尾花共有4个属性,分别是花萼的长、花萼的宽、花瓣的长和花瓣的宽,分别是sepal length sepal width,petal length,petal width
print("查看数据集描述\n", iris["DESCR"])
# ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
print("查看特征值的名字\n", iris['feature_names'])
print("查看特征值\n", iris.data, iris.data.shape)
# 数据集划分成训练集和测试集
print("训练集特征值:")
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
print(x_train,x_train.shape)
return None
if __name__ == "__main__":
dataset_demo()
特征工程是使用专业背景指示和技巧处理数据,使得特征集在机器学习算法上发挥更好的作用的过程(会影响机器学习的效果)
特征抽取,特征预处理,特征降维
特征提取是将任意数据比如文本或图像转换为可用于机器学习的数字特征
字典特征提取
文本特征提取
图像特征提取
# 采用api
sklearn.feature_extraction
sklearn.feature_extraction import DictVectorizer(sparse=True,....) sparse -- 稀疏
from sklearn.feature_extraction import DictVectorizer
def dict_demo():
data = [{
'city': '北京', 'temperature': 100},{
'city': '上海', 'temperature': 60},{
'city': '深圳', 'temperature': 30}]
#1、实例化一个转换器类,不转化为稀疏矩阵
transfer = DictVectorizer(sparse=False)
#把数据保存在data_new中
data_new = transfer.fit_transform(data)
print("data_new:\n", data_new)
print("特征名字:\n", transfer