特征工程入门与实践笔记
将数据转换为能更好的表示潜在问题的特征,从而提高机器学习性能
特征工程适用于任何阶段的数据,通常将数据处理成表格形式,数据组织成行(观察值)列(属性)的形式。
特征是对机器学习的过程有意义的数据属性。
无意义的只是普通属性,而有意义的才称之为特征
需要使用的数据代表了某领域内的某问题,转换数据的目的是为了更好的表达更大的问题
特征工程不仅需要获得更干净的数据,而且最重要在机器学习流水线中使用这些数据。
特征工程的目的是让我们获取更好的数据,以便学习算法从中挖掘模式,取得更好的效果
监督学习算法专门处理一个值的任务,通常是用数据中的其他属性来预测余下的一个属性
也可以认为监督学习是一种利用数据结构的算法:利用漂亮的数据提取模式。 通过探索结构进行预测
漂亮的数据:使用特征工程处理的数据
从数据中提取结构,一般对数据的数值矩阵或迭代过程应用数学变换,提取新特征
例如聚类:从一堆数据中对一些相似的值,将其划分成为某一类,成为一个新的特征
将监督学习分为两种更具体的类型:分类和回归
使用5折交叉验证计算逻辑回归模型的准确率
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
X = some_data_in_tabular_format
y = response_variable
lr = LinearRegression()
scores = cross_val_score(lr, X, y, cv=5, scoring='accuracy')
scores
使用均方误差(MSE)进行评估,使用五折交叉验证
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
X = some_data_in_tabular_format
y = response_variable
lr = LinearRegression()
scores = cross_val_score(lr, X, y, cv=5, scoring='mean_squared_error')
scores
因为无监督学习不做出预测,所以无法直接更具模型预测的准确率进行评估。
attributes = tabular_data
cluster_labels = outputted_labels_from_clustering
from sklearn.metrisc import silhouette_score
silhouette_score(attributes, cluster_labels)
相关系数、t检验、卡方检验、以及其他方法评估并量化原始数据和转换后数据的的效果
利用对数据的理解修改数据集,使用数据变换增强给定数据,但是并不删除或插入新数据
属性在何种程度上才能成为真正的特征
哪些列对机器学习没有帮助且有害,如何决定删除数据集中的哪些数据
构建全新的特征,并正确插入数据集
目的:生成新的模式
构建特征来源:
如何通过高度非结构化的数据手动创建特征(文本-图像)
自动创建特征,如果数据理解为一个n维空间的向量,考虑创建一个k维(k
用算法自动构建特征,以改善机器学习和AI流水线
尝试对数据进行理解和建模的一种架构,从而发觉数据的模式并创建新数据