我是靠谱客的博主 淡淡刺猬,最近开发中收集的这篇文章主要介绍sklearn知识点总结一.导入模块二.机器学习流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这里写目录标题

  • 一.导入模块
    • 1.数据集加载
    • 2.模型选择
    • 3.预处理和规范化
    • 4.降维
    • 5.模型
      • 5.1线性模型 Linear Models
      • 5.2决策树
      • 5.3KNN
      • 5.4集成学习
      • 5.5聚类
      • 5.6支持向量机SVM
    • 6.评估模块. 主要用于对结果好坏的评测.
      • 6.1回归模型评估指标
      • 6.2分类模型评估指标
      • 6.3聚类评估指标
    • 7.特征
      • 7.1特征选择
      • 7.2文本特征提取
    • 8.相关模块
  • 二.机器学习流程
    • 1、数据加载
    • 2、数据的清洗和转换
    • 3、提取特征XY
    • 4、数据分割
    • 5、特征工程的操作
    • 6、模型对象的构建
    • 7. 模型的训练
    • 8、模型效果的评估
    • 9、模型保存/模型持久化方式

一.导入模块

1.数据集加载

from sklearn.datasets import make_blobs
from sklearn.datasets import fetch_20newsgroups
from sklearn.datasets.samples_generator import make_classification
示例:
X, y = make_classification(n_samples=6, n_features=5,
n_informative=2, n_redundant=2, n_classes=2,
n_clusters_per_class=2, scale=1.0,
random_state=20)
# n_samples:指定样本数
# n_features:指定特征数
# n_classes:指定几分类
# random_state:随机种子,使得随机状可重
from sklearn import datasets
iris = datasets.load_iris() # 导入数据集
X = iris.data # 获得其特征向量
y = iris.target # 获得样本label

2.模型选择

from sklearn.model_selection import
GridSearchCV #网格交叉验证
from sklearn.model_selection import train_test_split #数据分割

3.预处理和规范化

from sklearn.preprocessing import PolynomialFeatures #多项式扩展
from sklearn.preprocessing import StandardScaler
#标准化(基于均值的标准化)Standardization#即标准化,尽量将数据转化为均值为零,方差为一的数据,形如标准正态分布
from sklearn.preprocessing import Normalizer
#正则化
from sklearn.preprocessing import
LabelEncoder
#pandas
的哑编码
-->pd.get_dummies(X)

from sklearn.preprocessing import OneHotEncoder #哑编码
#最大最小值缩放(基于最大最小值的标准化)MaxMinScaler是将数值缩放到[0,1]区间内,使用的公式是x−xminx/max−xmin
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import Imputer
#缺失值填充
from sklearn.preprocessing import Binarizer #二值化

4.降维

from sklearn.decomposition import PCA
#PCA降维

5.模型

5.1线性模型 Linear Models

from sklearn.linear_model
import LinearRegression
#线性回归
from sklearn.linear_model import Ridge
#L1正则
from sklearn.linear_model import RidgeCV
#岭回归+交叉验证
from sklearn.linear_model import LassoCV Lasso
#回归+交叉验证
from sklearn.linear_model import ElasticNetCV
#弹性网络+交叉验证
from sklearn.linear_model import SGDRegressor

5.2决策树

from sklearn.tree import DecisionTreeRegressor
#决策树回归器
from sklearn.tree import DecisionTreeClassifier
#决策树分类器

5.3KNN

from sklearn.neighbors import KDTree #KD树
from sklearn.neighbors import KNeighborsClassifier #K近邻分类器
from sklearn.neighbors import KNeighborsRegressor #K近邻回归器

5.4集成学习

from sklearn.ensemble import BaggingClassifier
Bagging分类
from sklearn.ensemble import BaggingRegressor
Bagging回归
from sklearn.ensemble import RandomForestClassifier 随机森林分类器
from sklearn.ensemble import RandomForestRegressor 随机森林回归器
from sklearn.ensemble import RandomTreesEmbedding
from sklearn.ensemble import IsolationForest
异常点检测
Gradient Boosting Machine(简称GBM)梯度提升算法
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble import GradientBoostingClassifier
from xgboost
import XGBRegressor
from xgboost
import XGBClassifier
Stacking #类似深度学习,现在机器学习不用
from sklearn.ensemble import
StackingClassifier

5.5聚类

from sklearn.cluster import Kmeans
from sklearn.cluster import MiniBatchKMeans

5.6支持向量机SVM

from sklearn.svm import SVC
from sklearn.svm import OneClassSVM
#异常点检测
from sklearn.svm import SVR
### 5.7贝叶斯
from sklearn.naive_bayes import GaussianNB

6.评估模块. 主要用于对结果好坏的评测.

6.1回归模型评估指标

from sklearn.metrics import confusion_matrix #混淆矩阵
from sklearn.metrics import accuracy_score
#准确率分数
from sklearn.metrics import recall_score #召回率分数
from sklearn.metrics import precision_score #精度分数
from sklearn.metrics import f1_score
#平衡F分数 balanced F Score
from sklearn.metrics import auc
#(Area Under Curve)被定义为ROC曲线下的面积
from sklearn.metrics import roc_curve
from sklearn.metrics import classification_report #分类报告

6.2分类模型评估指标

from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error
from sklearn.metrics import median_absolute_error#(中位误差)
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import silhouette_score

6.3聚类评估指标

from sklearn.metrics import silhouette_score
#轮廓系数

ss = silhouette_score(x, algo.predict(x))# 可以用来参考选择K值
from sklearn.metrics.pairwise import pairwise_distances_argmin
#pairwise_distances_argmin(A,B)对于集合A中的每个元素
集合B中距离A中每个元素最近的样本的下标,并返回

7.特征

7.1特征选择

from sklearn.feature_selection import VarianceThreshold
from sklearn.feature_selection import chi2
from sklearn.feature_selection import
f_classif
from sklearn.feature_selection import
mutual_info_classif
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_regression
from sklearn.feature_selection import RFE
from sklearn.feature_selection import SelectFromModel
Filter 1.去掉取值变化小的特征(Removing features with low variance)
Filter 2.单变量特征选择 (Univariate feature selection)
单变量特征选择的原理是分别单独的计算每个变量的某个统计指标,根据该指标来判断哪些指标重要,剔除那些不重要的指标。
对于分类问题(y离散) 可采用:
卡方检验,f_classif, mutual_info_classif,互信息
对于回归问题(y连续) 可采用:
皮尔森相关系数,f_regression, mutual_info_regression,最大信息系数

7.2文本特征提取

from sklearn.feature_extraction.text import CountVectorizer
#词袋法或词集法
from sklearn.feature_extraction.text import HashingVectorizer #哈希法
from sklearn.feature_extraction.text import TfidfVectorizer
#TF-IDF
from sklearn.feature_extraction.text import TfidfTransformer

8.相关模块

from sklearn.pipeline import Pipeline 管道流
from sklearn.utils import shuffle
数据洗牌
from sklearn.externals import joblib #模型保存和加载
joblib.dump(model, '.model.pkl')# 保存模型
model = joblib.load('model.pkl') #载入模型 后缀可以随便写,写为pkl表示二进制

二.机器学习流程

1、数据加载

2、数据的清洗和转换

(0)对数据进行初步的预处理,需要将其转换为-种适合机器学习模型的表示形式,对许多模型类型来说,这种表示就是包含数值数据的向量或者矩阵
(1)将类别数据编码成为对应的数值表示(- .般使用1-of-k哑编码方法)
(2)从文本数据中提取有用的数据(一般使用词袋法或者TF-IDF)
(3)处理图像或者音频数据(像素、声波、音频、振幅等<傅里叶变换>)
(4)对特征进行正则化、标准化,以保证同一.模型的不同输入变量的取值范围相同
(5)数值数据转换为类别数据以减少变量的值,比如年龄分段
(6)对数值数据进行转换,比如对数转换
(7)对现有变量进行组合或转换以生成新特征(基于对数据以及对业务的理解)
比如平均数(做虚拟变量),需要不断尝试才可以确定具体使用什么虚拟变量。df.replace(‘?’, np.nan, inplace=True)
对于非数字的数据进行处理,这里可以删除数据df = df.dropna(axis=0, how=‘any’, inplace=False)

3、提取特征XY

根据需求和原始模型从最原始的特征属性中获取具体的特征属性矩阵X和目标属性矩阵Y

4、数据分割

将数据分割为训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=28)

5、特征工程的操作

(1)特征工程也就是将特征矩阵X做一个数据的转换,也就是从数据A转换为数据B
(2)在转换的过程中,是存在一些不同的转换规则的,那这个规则可以认为是某种函数,那这个函数也就需要基于训练数据找出来。
(3)特征工程有时候可以认为和算法模型对象一样
(4) 在sklearn中,fit API的功能就是基于给定的训练数据进行模型训练,也就是找出输入数据X和输出数据之间的映射关系
(5)在sklearn中,predict API的功能就是使用训练好的模型对输入的特征属性X做一个转换预测,得到输出值Y,该API仅在算法模型对象上存在。
(6)sklearn中,transform API的功能就是使用训练好的模型对输入的特征属性X做一个转换,得到一个新的特征属性矩阵X,该API仅在可以作为特征工程的API上存在。
7)在sklearn中,fit_transform API的功能就是fit + transform, 也就是首先使用给定的数据来训练模型,然后用训练好的模型对数据X做一个转换操作,并返回转换之后新的数据X

6、模型对象的构建

#NOTE: 在sklearn中,fit API的功能就是基于给定的训练数据进行模型训练,也就是找出输入数据X和输出数据之间的映射关系
#NOTE: 在sklearn中,predict API的功能就是使用训练好的模型对输入的特征属性X做一个转换预测,得到输出值Y,该API仅在算法模型对象上存在。algo.fit(x_train, y_train)

7. 模型的训练

8、模型效果的评估

9、模型保存/模型持久化方式

(1)直接保持模型预测结果方式
(2)将模型持久化为磁盘文件方式
(3)将模型参数保持到数据库中,仅适合可以获取参数的模型,eg:线性回归。

最后

以上就是淡淡刺猬为你收集整理的sklearn知识点总结一.导入模块二.机器学习流程的全部内容,希望文章能够帮你解决sklearn知识点总结一.导入模块二.机器学习流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部