栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习算法基础(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习算法基础(一)

机器学习算法基础一
  • 机器学习算法的基本开发流程
  • sklearn介绍
    • 字典特征抽取
    • 文本特征提取
      • 英文文本特征提取
      • 中文文本特征提取
      • TF- IDF算法
  • 特征预处理
    • 归一化
    • 标准化

机器学习算法的基本开发流程

获取数据-》数据处理-》特征工程-》机器学习算法训练-》模型-》模型评估-》应用

sklearn介绍 字典特征抽取
def dict_demo():
   """
   字典特征抽取
   :return:
   """
   data = [{'city': '北京','temperature':100}, {'city': '上海','temperature':60}, {'city': '深圳','temperature':30}]
   # 1、实例化一个转换器类
   transfer = DictVectorizer(sparse=False)

   # 2、调用fit_transform()
   data_new = transfer.fit_transform(data)
   print("data_new:n", data_new(), type(data_new))
   print("特征名字:n", transfer.get_feature_names())

   return None
文本特征提取 英文文本特征提取
def count_demo():
    """
    文本特征抽取:CountVecotrizer
    :return:
    """
    data = ["life is short,i like like python", "life is too long,i dislike python"]
    # 1、实例化一个转换器类
    transfer = CountVectorizer(stop_words=["is", "too"])

    # 2、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:n", data_new.toarray())
    print("特征名字:n", transfer.get_feature_names())

    return None
中文文本特征提取

中文调用一个能够分词的库: jieba

import jieba

def cut_word(text):
    """
    进行中文分词:"我爱北京天安门" --> "我 爱 北京 天安门"
    """
    return " ".join(list(jieba.cut(text)))
    #join函数,就是将text中文本加入空格。

#中文特征提取代码
def count_chinese_demo2():
    """
    中文文本特征抽取,自动分词
    :return:
    """
    # 将中文文本进行分词
    data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。",
            "我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。",
            "如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]

    data_new = []
    for sent in data:
        data_new.append(cut_word(sent))
    # print(data_new)
    # 1、实例化一个转换器类
    transfer = CountVectorizer(stop_words=["一种", "所以"])

    # 2、调用fit_transform
    data_final = transfer.fit_transform(data_new)
    print("data_new:n", data_final.toarray())
    print("特征名字:n", transfer.get_feature_names())

    return None
TF- IDF算法
def tfidf_demo():
    """
    用TF-IDF的方法进行文本特征抽取
    :return:
    """
    # 将中文文本进行分词
    data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。",
            "我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。",
            "如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]

    data_new = []
    for sent in data:
        data_new.append(cut_word(sent))
    # print(data_new)
    # 1、实例化一个转换器类
    transfer = TfidfVectorizer(stop_words=["一种", "所以"])

    # 2、调用fit_transform
    data_final = transfer.fit_transform(data_new)
    print("data_new:n", data_final.toarray())
    print("特征名字:n", transfer.get_feature_names())

    return None
特征预处理 归一化

每组特征具有相同的重要性,将数据映射到[0,1]或[-1,1]区间,归一化的缺点:如果有几个数值异常,那么就会影响整个归一化矩阵

def minmax_demo():
    """
    归一化
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("dating.txt")
    data = data.iloc[:, :3] #只取数据的前三列数据
    print("data:n", data)

    # 2、实例化一个转换器类
    transfer = MinMaxScaler(feature_range=[2, 3])

    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:n", data_new)

    return None
标准化

将原始数据转换到均值为0,方差为1的范围。

def stand_demo():
    """
    标准化
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("dating.txt")
    data = data.iloc[:, :3]
    print("data:n", data)

    # 2、实例化一个转换器类
    transfer = StandardScaler()

    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:n", data_new)
    return None

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307670.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号