机器学习--数据操作初试
#加载数据集,返回字典类型的数据
sklearn.datasets.load_iris()
数据示例


iris = sklearn.datasets.load_iris()
#数据集特征值
iris['data']
#数据集标签值
iris['target']
特征和标签相对应
数据集的划分
由于数据集在某些情况下是很珍贵的,并且在训练后需要对模型性能进行验证,因此如果将所有数据都用于训练模型,那么将没有数据可以用来测试模型。所以需要对数据集进行划分,使用一大部分用来训练模型,剩余部分用来测试模型。
工具包提供了划分方法,使用sklearn.model_selection包下的train_test_split方法传递分割的参数进行划分。
- 参数依次为:
数据集特征值、数据集标签值、测试集规模(浮点数表示)、随机数种子 - 返回类型为:
数据集特征值、测试集特征值、数据集标签值、测试集标签值
因此demo如下:
#0.2表示划分的测试集规模为20%
x_train, y_train, x_target, y_target = train_test_split(iris['data'], iris['target'], test_size=0.2,random_state=22)
print("训练集特征值:\n", x_train, x_train.shape)
特征提取
概念、意义
将任意数据转换为可用于机器学习的数字特征。
形象化比喻:剥鸡蛋,使计算机更好的去消化数据
- 字典特征提取
- 文本特征提取
- 图像特征提取
特征提取API
sklearn.feature_extraction
字典特征提取
- 作用:对字典数据进行特征值化
使用sklearn.feature_extraction.DictVectorizer()实例化字典向量化对象,随后通过该对象的.fit_transform(data)方法获得处理后的数据
DictVectorizer().get_feature_names_out()方法可以获取特征属性名。
data = [{'city': '北京', 'temperature': 100},
{'city': '上海', 'temperature': 60},
{'city': '深圳', 'temperature': 30}]
#实例化转换对象
transfer = DictVectorizer()
#转换数据
data_new = transfer.fit_transform(data)
name = transfer.get_feature_names_out()
print(data_new)
print(name)
注:返回的矩阵为稀疏矩阵

文本特征提取
单词作为特征
特征:特征词
sklearn.feature_extraction.text.CountVectorizer(),返回词频矩阵
CountVectorizer().fit_transform(data),返回稀疏矩阵
CountVectorizer().get_feature_names(),返回单词列表
代码示例
def count_demo():
data = ["life is short, i like python",
"life is too long, i dislike python"]
transfer = CountVectorizer()
data_new = transfer.fit_transform(data)
print(transfer.get_feature_names_out())
print(data_new.toarray())

然而这种方式对中文就基本没啥用了,不会分割词语,除非自己手打空格。

浙公网安备 33010602011771号