【Python】学习笔记(三):机器学习基础入门

机器学习简介

1 机器学习

1.1 数据集

数据集 = 特征值 + 目标值

1.2 算法分类

  • 监督学习
    • 目标值:类别 - 分类问题
    • 目标值:连续数据 - 回归问题
  • 无监督学习:无目标值

图片

1.3 机器学习流程

图片

1.4 Scikit-learn

pip3 install Scikit-learn==0.19.1

图片

2 sklearn 特征工程

2.1 scikit-learn数据集API

图片

2.2 数据集

2.2.1 小数据集

图片

2.2.2 大数据集

图片

2.2.3 返回值

# 导入鸢尾花
from sklearn.datasets import load_iris

图片

2.2.4 数据集的划分

from sklearn.model_selection import train_test_split

图片

图片

x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size = 0.2, random_state = 22)
    print(f"测试集:{x_train}, 大小:{x_train.shape}")

2.3 特征工程 Feature Engineering

  • sklearn 特征工程
  • pandas 数据清洗,数据处理

2.3.1 特征抽取API

sklearn.feature_extraction

2.3.2 字典的特征提取

from sklearn.feature_extraction import DictVectorizer

图片

def dict_demo():
    """字典特征抽取"""
    data = [{
   'city': '北京', 'temperayure': 100},
            {
   'city': '上海', 'temperayure': 60 },
            {
   'city': '深圳', 'temperayure': 30 }]
    
    # 1.实例化一个转换器类 
    transfer = DictVectorizer(sparse= False)
    
    # 2.调用fit_transform()
    data_new = transfer.fit_transform(data) # data_new.toarray()
    
    print("数据:", data_new)
    print("特征名字:", transfer.get_feature_names())
    return None
  • 应用场景
    • 特征比较多
      • 1 数据集的特征,转化成字典类型
      • 2 DictVectorizer 转换

2.3.3 文本的特征提取 -1

  • 特征:句子、短语、单词
from sklearn.feature_extraction.text import CountVectorizer

图片

stop_words 停用词

图片

**sparse.toarray() ** — sparse包含变成数组的方法,字典/文本提取均可使用

  • 中文分词
def dict_cn_demo():
    """
    "我爱北京天安门" -> "我 爱 北京 天安门"
    """
    text = "我爱北京天安门"
    a = jieba.cut(text) # 返回迭代器
    b = list(a)         # ['我', '爱', '北京', '天安门']
    c = " ".join(b)     # "我 爱 北京 天安门"  str
    
    print(c)
    return None

def cut_CN(text):
    """
    "我爱北京天安门" -> "我 爱 北京 天安门"
    """ 
    return " ".join(list(jieba(text)))

2.3.4 文本的特征提取 -2

from sklearn.feature_extraction.text import TfidfVectorizer

图片图片

图片

2.4 特征预处理

sklearn.preprocessing

img

2.4.1 归一化

鲁棒性较差,最大值/最小值为Nan容易出现问题

from sklearn.preprocessing import MinMaxScaler

图片

img

def minmax_demo():
    """
    归一化
    """ 
    # 1.获取数据
    
    # data.to_csv("data.csv", index= False)
    data = pd.read_csv("data.csv")
    data = data.iloc[:, :3]
    print("data:", data)
    
    # 2.获取转换器类
    transfer = MinMaxScaler(feature_range= (0, 1))
    
    # 3.fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new", data_new)

    return None

2.4.2 标准化

# 适合大样本
from sklearn.preprocessing import StandardScaler

img

img

def stand_demo():
    """
    标准化
    """
    
    # 1.获取数据
    data = pd.read_csv("data.csv")
    data = data.iloc[:, :3]
    print("data:", data)
    
    # 2.获取转换器类
    transfer = StandardScaler()
    
    # 3.fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new", data_new)

    return None

2.5 特征降维

2.5.1 特征降维

from sklearn.feature_selection import VarianceThreshold

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值