机器学习算法基础(一):特征工程

本文介绍了机器学习的基础,包括定义、目的、常见算法和数据处理流程。重点讲解了特征工程,涵盖特征抽取、预处理和选择,强调了Scikit-learn库在这一过程中的应用,并给出了数据归一化、标准化和缺失值处理的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习参考书(建议入门后再看)
在这里插入图片描述

一、机器学习概述

(一)什么是机器学习

自动分析数据,获得规律,并用规律进行预测

(二)为什么需要机器学习

  • 解放生产力:将繁琐但是不那么重要的工作交给机器做
  • 解决专业问题:为专业人士提供辅助
  • 提供社会便利:例如城市大脑,可以进行信息的收集和资源的调配,减轻例如城市交通的压力

(三)机器学习的算法

监督式学习、非监督式学习:区别在于是否前者为特征值+目标值,后者只有特征值
监督式学习:若数据为离散型数据,则为分类问题;若数据为连续型数据,则为回归问题。
非监督式学习:聚类、K-means

(四)机器学习的数据

  • mysql:
    1.性能瓶颈,读取速度
    2.格式不符合机器学习要求的数据格式

  • 机器学习的数据:使用的是csv格式的文件
    pandas:读取工具
    numpy:解决了GIL的限制

数据集主要是由特征值+目标值组成的。
特征值:如头发长度、身高、体重
目标值:男女(有些数据可以没有目标值)

(五)机器学习的开发流程

1.收集数据,确定问题
2.数据处理
3.特征工程
4.选择算法
5.预测效果评价

二、数据获取及划分

1.数据获取

获取数据集API:sklearn.datasets(加载流行数据集)
sklearn.datasets.load_():获取小规模数据集
sklearn.datasets.fetch_
(data_home=None):获取大规模数据集,需要从网上下载,下载后存放在data_home中

2.数据划分

数据划分API:sklearn.model_selection.train_test_split

from sklearn.dataset import load_boston
from sklearn.model_selection import train_test_split

li=load_boston()
print("获取特征值",li.data)
print("获取目标值",li.target)

#返回值的顺序是固定的。其中训练集是x_train,y_train;测试集是x_test,y_test
x_train,x_test,y_train,y_test=train_test_split(li.data,li.target,test_size=0.25)

3.转换器及估计器

(1)转换器是实现特征工程的一类API
fit_transform()=fit()+transform()
fit():输入数据,计算转换数据时所需的值
transform():对数据进行转换

(2)估计器estimator时实现算法的API
估计器例如回归、支持向量机等等
流程如下:
①调用fit(),输入训练集x_train,y_train
②输入测试集x_test,y_test
预测的API:predict(x_test)
查看预测的准确率:score(x_test,y_test)

三、特征工程

(一)定义

特征工程:将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性。

例子:将文本特征值转换为数字特征值

(二)意义

直接影响预测效果

(三) Scikit-learn库

包括许多知名的机器学习算法的实现,如分类、回归、聚类、降维、模型选择、特征工程。

(四)第一步:特征抽取

1.特征抽取实例演示

将一个文本转换成为数字,就是特征抽取。
特征值化就是为了电脑更好地去理解数据。

2.sklearn特征抽取API

sklearn.feature_extraction(sklearn特征抽取都在这里面)

3.one-hot编码

原理:把字典中一些类别的数据,分别进行转换成特征(one-hot编码)
类:sklearn.feature_extraction.DictVectorizer(sparse=True,…)
DicVectorizer(sparse=True,…)语法:
(1)DicVectorizer.fit_transform(X)
X:字典或者包含字典的迭代器,最好是将数组放在列表里面
返回值:sparse矩阵
(2)DicVectorizer.inverse_transform(X)
X:array数组或sparse矩阵
返回值:转换为之前的数据格式
(3)DicVectorizer.get_feature_names()
返回类别名称
(4)DicVectorizer.transform(X)
按照原先的标准转换

from sklearn.feature_extraction import DicVectorizer
def dictvec():
	"""
	字典数据抽取
	:return:None
	"""
	#实例化
	dict=DicVectorizer()

	#调用fit_transform
	data=dict.fit_transform([{
   
   'city':'北京','temperature':100},{
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值