机器学习算法基础(一)

1275-李同学

发表文章数:25

首页 » Python » 正文

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

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

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

未经允许不得转载:作者:1275-李同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《机器学习算法基础(一)》 发布于2021-10-09

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

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

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录