sklearn知识点总结

一.导入模块

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:线性回归。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

德卡先生的信箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值