机器学习入门学习个人笔记【Day01】

注:本文章不涉及基本概念,只记录核心代码与部分说明!

一、目录

        1、获取并划分Iris数据集

        2、字典特征提取

        3、英文文本特征提取

        4、中文文本特征提取

        5、中文文本特征提取:自动分词(jieba分词)

二、正文

1、获取并划分Iris数据集

from sklearn.datasets import  load_iris
from sklearn.model_selection import train_test_split
def datasets_demo():
    """
    sklearn数据集使用
    :return:
    """
    #获取数据集
    iris = load_iris()
    print("鸢尾花数据集:\n",iris)
    print("查看数据集描述:\n",iris["DESCR"]) #describe
    print("查看特征值的名字:\n",iris.feature_names)
    print("查看特征值:\n",iris.data,iris.data.shape)

    #数据集划分
    x_train, x_test, y_train, y_test = train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
    print("训练集的特征值:\n",x_train,x_train.shape)

    return None

if __name__  == "__main__":
    #代码1:sklearn数据集使用
    datasets_demo()

2、字典特征提取

from sklearn.feature_extraction import DictVectorizer

def dict_demo():
    """
    字典特征提取
    :return:
    """
    data = [{'city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}]
    #1、实例化一个转换器类
    #transfer = DictVectorizer()
    transfer = DictVectorizer(sparse=False)
    #2、调用fit_transform()
    data_new = transfer.fit_transform(data)
    print("data_new:\n",data_new)
    print("特征名字:\n",transfer.get_feature_names())

    return None

if __name__  == "__main__":
    #代码2:字典特征提取
    dict_demo()

 结果如下:

data_new:
 [[  0.   1.   0. 100.]
 [  1.   0.   0.  60.]
 [  0.   0.   1.  30.]]
特征名字:
 ['city=上海', 'city=北京', 'city=深圳', 'temperature']

  3、英文文本特征提取

from sklearn.feature_extraction.text import CountVectorizer

def count_demo():
    """
    文本特征提取
    :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

if __name__  == "__main__":
# 代码3:文本特征提取:CountVectorizer

结果如下:

data_new:
 [[0 1 1 2 0 1 1 0]
 [1 1 1 0 1 1 0 1]]
特征名字:
 ['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too']

4、中文文本特征提取

from sklearn.feature_extraction.text import CountVectorizer

def count_chinese_demo():
    """
    中文文本特征提取
    :return:
    """
    data = ["我爱机电工程学院", "机电工程学院顶呱呱"]  #Jieba 分词
    #1、实例化出一个转换器类
    transfer = CountVectorizer()

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

    return None
if __name__  == "__main__":
# 代码4:中文文本特征提取:CountVectorizer
    count_chinese_demo()

结果如下:

data_new:
 [[1 0]
 [0 1]]
特征名字:
 ['我爱机电工程学院', '机电工程学院顶呱呱']

5、中文文本特征提取:自动分词(jieba分词)

from sklearn.feature_extraction.text import CountVectorizer
import jieba

def cut_word(text):
    """
    进行中文分词:"我爱北京天安门" ---> ""我 爱 北京 天安门""
    :param text:
    :return:
    """
    text = " ".join(list(jieba.cut(text)))
    print(text)
    return text

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

        # 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

if __name__  == "__main__":
# 代码4:中文文本特征提取:CountVectorizer
    count_chinese_demo2()

 结果如下:

一种 还是 一种 今天 很 残酷 , 明天 更 残酷 , 后天 很 美好 , 但 绝对 大部分 是 死 在 明天 晚上 , 所以 每个 人 不要 放弃 今天
我们 看到 的 从 很 远 星系 来 的 光是 几百万年 前 发出 的 , 这样 当 我们 看到 宇宙 时 , 我们 是 在 看 它 的 过去
如果 只用 一种 方式 了解 某样 事物 , 你 就 不会 真正 了解 它 。 了解 事物 真正 含义 的 秘密 取决于 如何 将 其 与 我们 所 了解 的 事物 相 联系 。
data_new:
 [[2 0 1 0 0 2 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 2 0 1 0 2 1 0 0 0 1 1 0 0 1 0]
 [0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 3 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 1 0 1]
 [1 1 0 4 3 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 2 1 0 0 1 0 0 0]]
特征名字:
 ['一种', '不会', '不要', '了解', '事物', '今天', '光是', '几百万年', '发出', '取决于', '只用', '后天', '含义', '大部分', '如何', '如果', '宇宙', '我们', '所以', '放弃', '方式', '明天', '星系', '晚上', '某样', '残酷', '每个', '看到', '真正', '秘密', '绝对', '美好', '联系', '过去', '还是', '这样']

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值