Scikit-learn 介绍
目标
了解特征工程 掌握 sklearn 实现机器学习算法
介绍
算法API 有监督算法、无监督算法 回归算法、分类算法、聚类算法 特征工程 包含了特征抽取,特诊预处理和特征降维等 数据集 包含一些学习的简单数据集:波斯顿房价、癌症预测等 模型调优 模型的一些调优功能:网络搜索、k 折交叉验证等
使用
特征工程
无量纲化 - 归一/标准法 - sklearn.preprocessing.MinMaxScaler - sklearn.preprocessing.StandardScaler 数据编码 - sklearn.preprocessing.OneHotEncoder - 中文转换为数字 - sklearn.preprocessing.LabelEncoder 特征选择 - 低方差特征过滤 - sklearn.feature_selection.VarianceThreshold 特征降维 - PCA,主成分分析 - sklearn.decomposition.PCA
分类算法
回归
逻辑回归,二分类算法 - sklearn.linear_model.LogisticRegression 决策树 - sklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False) KNN - sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=1) 朴素贝叶斯 - sklearn.naive_bayes.GaussianNB(alpha=1.0, fit_prior=True, class_prior=None) - 前提条件,特征相互独立
回归和聚类
线性回归 - sklearn.linear_model.LinearRegression - sklearn.linear_model.SGDRegressor 随机梯度下降 K-means - sklearn.cluster.KMeans(n_clusters=8, init="") DBSCAN - sklearn.cluster.DBSCAN
模型调优
K 折交叉验证 为算法设置 CV 参数,即指定交叉验证的 K - sklearn.model_selection.KFold 网格搜索 Grid Search - sklearn.model_selection.GridSearchCV 随机搜索 - sklearn.model_selection.RandomizedSearchCV
模型保存和加载
模型保存 from sklearn.externals import joblib joblib.dump(model, 'model.pkl') 模型加载 from sklearn.externals import joblib estimator = joblib.load('model.pkl')