特征抽取-----机器学习pycharm软件

这篇具有很好参考价值的文章主要介绍了特征抽取-----机器学习pycharm软件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导入包

from sklearn.datasets import load_iris  # 方法datasets_demo()数据集使用
from sklearn.feature_extraction import DictVectorizer   # 方法dict_demo()字典特征抽取用
from sklearn.feature_extraction.text import CountVectorizer #  方法count_demo()文本特征抽取、count_chinese_demo中文文本特征抽取使用
from sklearn.feature_extraction.text import TfidfVectorizer # 方法使用tfidf_demo()文本特征抽取
import jieba    #  方法count_chinese_demo文本特征抽取使用
import logging  #  方法count_chinese_demo文本特征抽取使用

sklearn数据集的使用

def datasets_demo():
    """
    sklearn数据集的使用
    :return:
    """
    iris = load_iris()
    print("鸢尾花数据集返回值:\n",iris)  #返回值是一个继承自字典的Bench
    print("查看数据集描述:\n",iris["DESCR"])   #通过字典属性查看
    print("查看数据集特征名字:\n",iris.feature_names)
    print("查看特征值形状(几行几列):\n",iris.data.shape)
    return None

部分效果展示:
特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python
特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python
特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python
特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python

字典特征抽取

def dict_demo():
    """
    字典特征抽取
    :return:
    """
    data = [{'city': '上海', 'temperature': 100}, {'city': '上海', 'temperature': 60},{'city': '北京', 'temperature': 60}]
    #   1.实例化一个转换器类
    transfer = DictVectorizer() # 参数默认True,即返回值是稀疏矩阵
    #   2.调用fit_transform()方法
    data_new = transfer.fit_transform(data)
    print("特征名字:\n", transfer.get_feature_names_out())
    print("data_new:\n",data_new)     #   输出为稀疏矩阵,输出 值 没有0 ,即非零值按位置表示出来,
    return None

效果展示:
特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python

文本特征抽取

def count_demo():
    """
    文本特征提取:以单词作为特征值
    :return:
    """
    data = ["life is beautiful,i like it very very much","life is not beatiful,but i am smile"]
    #   1.实例化一个转换器类
    transfer = CountVectorizer()
    #   2.调用fit_transform()方法
    data_new = transfer.fit_transform(data)
    print("数据特征:\n",transfer.get_feature_names_out())
    print("data_new:\n",data_new)   # 返回稀疏矩阵

    print("数据特征:\n", transfer.get_feature_names_out())
    print("data_new:\n",data_new.toarray()) #  看二维数据,对样本出现特征词的个数进行统计

    return None

效果展示:
特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python

中文文本特征抽取

def count_chinese_demo():
    """
    中文文本特征提取 : 以短语作为特征值, 如果需要实现单词作为特征值的效果,有两种方法.
    1.手动实现,需要用空格隔开实现,eg:生活 美好,我 非常 非常 喜欢
    2.jieba分词
    :return:
    """
    data = ["生活美好,我非常非常喜欢", "生活不好,但我微笑面对"]
    data2 = ["生活 美好,我 非常 非常 喜欢","生活 不好,但 我 微笑 面对"]
    #   1.实例化一个转换器类
    transfer = CountVectorizer()
    transfer2 = CountVectorizer()
    #   2.调用fit_transform()方法
    data_new = transfer.fit_transform(data)
    print("数据特征:\n",transfer.get_feature_names_out())
    print("data_new:\n",data_new)   # 返回稀疏矩阵
    print("数据特征:\n", transfer.get_feature_names_out())
    print("data_new:\n", data_new.toarray())  # 看二维数据,对样本出现特征词的个数进行统计

    print("=========================数据用空格分开后============================")

    data_new2 = transfer2.fit_transform(data2)
    print("数据特征:\n", transfer2.get_feature_names_out())
    print("data_new:\n", data_new2)  # 返回稀疏矩阵
    print("数据特征:\n", transfer2.get_feature_names_out())
    print("data_new:\n", data_new2.toarray())  # 看二维数据,对样本出现特征词的个数进行统计

    print("=========================jieba分词============================")
    # """
    #     代码
    #     a = [list(jieba.cut(sentence)) for sentence in data]
    #     print(a)
    #     输出中包含了关于jieba分词库的信息.这是因为在第一次运行jieba.cut时,它会加载分词所需的词典和模型文件,这些文件会被缓存起来以提高后续的分词速度。
    #     因此,会看到类似"Building prefix dict from the default dictionary"、"Dumping model to file cache"、"Loading model cost"和"Prefix dict has been built successfully"这样的信息。
    #     这些信息表明分词库已经成功加载并准备好使用,
    #     而最后的输出[['生活', '美好', ',', '我', '非常', '非常', '喜欢'], ['生活', '不好', ',', '但', '我', '微笑', '面对']]则是分词后的结果。
    #     在调用jieba.cut之前,使用ieba.setLogLevel(logging.INFO)代码来关闭jieba的日志输出,控制jieba输出的日志信息,使其只输出INFO级别及以上的日志,而不输出DEBUG级别的日志。
    #     要注意,使用此代码要导入所需日志包    import logging
    # """
    # jieba.setLogLevel(logging.INFO) # 关掉日志信息
    # a = [list(jieba.cut(sentence)) for sentence in data]    # 此时a是一个列表
    # b = " ".join([" ".join(jieba.cut(sentence)) for sentence in data] ) # 此时b是字符串,首先使用列表推导式将每个句子分词后得到的列表通过空格连接成一个字符串,然后再使用空格将这些字符串连接成一个大的字符串,最终将结果赋值给变量b
    # print(a,type(a),"\n",b,type(b))
    # #根据这些测试 总结为一个方法cut_word方便使用

    #   1.将中文文本进行分词
    jieba.setLogLevel(logging.INFO)  # 关掉日志信息
    data_new3 = []
    for sent in data:
        data_new3.append(cut_word(data))
    # print(data_new3)
    #   2.实例化转换器
    transfer3 = CountVectorizer()
    #   3.调用方法
    data_final = transfer3.fit_transform(data_new3)
    print("数据特征:\n", transfer3.get_feature_names_out())
    print("data_new:\n", data_final.toarray())  # 看二维数据,对样本出现特征词的个数进行统计

    return None

def cut_word(text):
    """
    jieba分词  进行中文分词
    :param text:
    :return:
    """
    return " ".join([" ".join(jieba.cut(sentence)) for sentence in text] )

	print("==============用TF-IDF的方法进行文本特征抽取================")
	
def tfidf_demo():
    """
    用TF-IDF的方法进行文本特征抽取
    :return:
    """
    data = ["生活美好,我非常非常喜欢", "生活不好,但我微笑面对"]
    #   1.将中文文本进行分词
    jieba.setLogLevel(logging.INFO)  # 关掉日志信息
    data_new = []
    for sent in data:
        data_new.append(cut_word(data))
    # print(data_new3)
    #   2.实例化转换器
    transfer3 = TfidfVectorizer()
    #   3.调用方法
    data_final = transfer3.fit_transform(data_new)
    print("数据特征:\n", transfer3.get_feature_names_out())
    print("data_new:\n", data_final.toarray())  # 看二维数据,对样本出现特征词的个数进行统计

    return None

特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python
特征抽取-----机器学习pycharm软件,python,机器学习,pycharm,python

调用方法

什么抽取都写成了方法需要调用才可以输出,输出效果如“效果展示”所示文章来源地址https://www.toymoban.com/news/detail-823429.html

if __name__ == '__main__':
    #skilearn数据集的使用
    datasets_demo()

    #字典特征提取
    dict_demo()

    # 文本特征抽取
    count_demo()

    #中文文本特征抽取
    count_chinese_demo()

    #用TF-IDF的方法进行文本特征抽取
    tfidf_demo()

到了这里,关于特征抽取-----机器学习pycharm软件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python机器学习】决策树——树的特征重要性

    利用一些有用的属性来总结树的工作原理,其中最常用的事特征重要性,它为每个特征树的决策的重要性进行排序。对于每个特征来说,它都是介于0到1之间的数字,其中0代表“根本没有用到”,1代表“完美预测目标值”。特征重要性的求和为1。 将特征重要性进行可视化:

    2024年02月03日
    浏览(42)
  • 【Python机器学习】SVM——线性模型与非线性特征

    SVM(核支持向量机)是一种监督学习模型,是可以推广到更复杂模型的扩展,这些模型无法被输入空间的超平面定义。 线模型在低维空间中可能非常受限,因为线和平面的灵活性有限,但是有一种方式可以让线性模型更加灵活,那就是添加更多特征,比如输入特征的交互式或

    2024年01月21日
    浏览(41)
  • Python机器学习:plot_importance()查看特征重要度

    lightgmb算法里面的plot_importance()方法支持特征重要度的查看,下面将以lightgmb算法为例将特征重要度可视化展示出来。另外xgboost算法的实现也几乎一样哦。 事先准备好模型: 以上模型训练好了,下面查看特征重要度: 代码讲解: import导入lightgbm算法里查看特征重要度的plot_

    2024年02月11日
    浏览(32)
  • python——机器学习:sklearn特征选择feature_selection

        特征选择是机器学习中很重要的一部分,构造并选取合适的特征,能极大的提高模型的表现。sklearn中feature_selection模块提供了一些特征选择方法。可以通过dir()的方法整体看一下。 0. 读取测试数据  1. 方差阈值法 VarianceThreshold         该方法筛选掉方差低于某个值的变量

    2024年02月19日
    浏览(36)
  • python机器学习(七)决策树(下) 特征工程、字典特征、文本特征、决策树算法API、可视化、解决回归问题

    特征提取就是将任意数据转换为可用于机器学习的数字特征。计算机无法直接识别字符串,将字符串转换为机器可以读懂的数字特征,才能让计算机理解该字符串(特征)表达的意义。 主要分为:字典特征提取(特征离散化)、文本特征提取(文章中特征词汇出现的频次)。 字典特

    2024年02月14日
    浏览(44)
  • 【Python | 机器学习】Python中进行特征重要性分析的9个常用方法(含源代码)

    特征重要性分析用于了解每个特征(变量或输入)对于做出预测的有用性或价值。目标是确定对模型输出影响最大的最重要的特征,它是机器学习中经常使用的一种方法。 特征重要性分析在数据科学和机器学习中扮演着重要的角色,具有以下重要性: 理解数据:特征重要性分析

    2024年02月03日
    浏览(44)
  • 【深度学习】以图搜索- 2021sota repVgg来抽取向量 + facebook的faiss的做特征检索, 从环境搭建到运行案例从0到1

    Faiss的全称是Facebook AI Similarity Search。 这是一个开源库,针对高维空间中的海量数据,提供了高效且可靠的检索方法。 暴力检索耗时巨大,对于一个要求实时人脸识别的应用来说是不可取的。 而Faiss则为这种场景提供了一套解决方案。 Faiss从两个方面改善了暴力搜索算法存在

    2024年02月15日
    浏览(34)
  • python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    数据预处理的过程。数据存在不同的量纲、数据中存在离群值,需要稳定的转换数据,处理好的数据才能更好的去训练模型,减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器学习算法来说是常见的要求,很多案例都需要标准化。如果个别特征或多或

    2024年02月16日
    浏览(31)
  • 【机器学习】特征工程 - 字典特征提取

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 特征工程就是从 「原始数据」 中提取 「特征」 ,以供 「算法」 和 「模型

    2024年02月11日
    浏览(37)
  • 【机器学习】特征工程 - 文本特征提取TfidfVectorizer

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 对 「文本」 进行特征提取时,一般会用 「单词」 作为特征,即特征词。

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包