机器学习--数据操作初试

#加载数据集,返回字典类型的数据
sklearn.datasets.load_iris()

数据示例
image
image

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())

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

posted @ 2023-04-21 23:48  pureayu  阅读(66)  评论(0)    收藏  举报