sklearn可实现的函数或者功能可分为如下几个方面
1.分类算法
2.回归算法
3.聚类算法
4.降维算法
5.模型优化
6.文本预处理
其中分类算法和回归算法又叫监督学习,聚类算法和降维算法又叫非监督学习
分类算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
|
# knn算法 from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() ''' __init__函数 def __init__(self, n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=1, **kwargs): n_neighbors=5,指定以几个最邻近的样本具有投票权 weight="uniform",每个拥有投票权的样本是按照什么比重投票,"uniform"表示按照等比重投票,"distance"表示按距离反比投票, [callable]表示自己定义的一个函数,这个函数接收一个距离数组返回一个全职数组 algorithm="auto",内部采用什么样的算法实现,有以下几种方法,"ball_tree":球树,"kd_tree":kd树,"brute":暴力搜索。 "auto"表示自动根据数据类型和结构选择合适的算法。一般来说,低维数据用kd_tree,高维数据用ball_tree leaf_size=30:ball_tree或者kd_tree的叶子节点规模 matric="minkowski",怎样度量距离,默认是闵式距离 p=2,闵式距离各种不同的距离参数 metric_params=None,距离度量函数的额外关键字参数,一般默认为None,不用管 n_jobs=1,并行的任务数 用法: knn.fit(X_train, y_train) y_pred = knn.predict(X_test) knn.score(y_pred, y_test) ''' # 朴素贝叶斯算法 from sklearn.naive_bayes import GaussianNB gsn = GaussianNB() ''' __init__函数 def __init__(self, priors=None): self.priors = priors priors=None,先验概率 用法: gsn.fit(X_train, y_train) y_pred = gsn.predict(X_test) ''' # 线性判别分析 from sklearn.discriminant_analysis import LinearDiscriminantAnalysis lda = LinearDiscriminantAnalysis() ''' __init__函数 def __init__(self, solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=1e-4): self.solver = solver self.shrinkage = shrinkage self.priors = priors self.n_components = n_components self.store_covariance = store_covariance # used only in svd solver self.tol = tol # used only in svd solver solver="svd",求解算法,svd表示使用奇异值分解求解,不用计算协方差矩阵。 lsqr表示最小平方qr分解 eigen表示特征值分解 shrinkage=None,是否使用参数收缩 priors=None,用于LDA中贝叶斯规则的先验概率 components,需要保留的特征个数,小于等于n-1 store_covariance,是否计算每个类的协方差矩阵,0.19版本删除 用法: lda.fit(X_train, y_train) 属性: covariances_:每个类的协方差矩阵, shape = [n_features, n_features] means_:类均值,shape = [n_classes, n_features] priors_:归一化的先验概率 rotations_:LDA分析得到的主轴,shape [n_features, n_component] scalings_:数组列表,每个高斯分布的方差σ ''' # 二次判别分析 from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis qda = QuadraticDiscriminantAnalysis() ''' __init__函数 def __init__(self, priors=None, reg_param=0., store_covariance=False, tol=1.0e-4, store_covariances=None): self.priors = np.asarray(priors) if priors is not None else None self.reg_param = reg_param self.store_covariances = store_covariances self.store_covariance = store_covariance self.tol = tol reg_param=None,正则化参数,规范化协方差 ''' # 支持向量机 from sklearn.svm import SVC svc = SVC() ''' __init__函数 def __init__(self, C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=1e-3, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', random_state=None): C,错误项的惩罚系数,即对分错样本的惩罚程度越大,因此在训练样本中准确率越高,但是泛化能力降低,也就是对测试数据的分类准确率降低。 kernel,算法中采用的核函数类型 degree,这个参数只对多项式核函数有用,是指多项式核函数的阶数n gamma,核函数系数,默认为auto coef0,核函数中的独立项 probability,是否启用概率估计 shrinking,是否采用启发式收缩方式 tol,svm停止训练的误差精度 cache_size,指定训练所需要的内存,以MB为单位,默认为200MB。 class_weight,给每个类别分别设置不同的惩罚参数C,如果没有给,则会给所有类别都给C=1,即前面参数指出的参数C. verbose,是否启用详细输出。此设置利用libsvm中的每个进程运行时设置,如果启用,可能无法在多线程上下文中正常工作。一般情况都设为False,不用管它。 max_iter,最大迭代次数,如果为-1,表示不限制 random_state,伪随机数发生器的种子,在混洗数据时用于概率估计。 属性: svc.n_support_:各类各有多少个支持向量 svc.support_:各类的支持向量在训练样本中的索引 svc.support_vectors_:各类所有的支持向量 ''' # 神经网络 from sklearn.neural_network import MLPClassifier mlp = MLPClassifier() ''' __init__函数 def __init__(self, hidden_layer_sizes=(100,), activation="relu", solver='adam', alpha=0.0001, batch_size='auto', learning_rate="constant", learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol=1e-4, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-8): hidden_layer_sizes,长度=n_layers-2, 默认(100,),第i个元素表示第i个隐藏层的神经元的个数。 activation,激活函数,默认为relu solver,默认 ‘adam’,用来优化权重 alpha,可选的,默认0.0001,正则化项参数 batch_size,默认‘auto’,随机优化的minibatches的大小 learning_rate,默认‘constant’,用于权重更新 max_iter,默认200,最大迭代次数。 random_state,可选,默认None,随机数生成器的状态或种子 shuffle,可选,默认True,只有当solver=’sgd’或者‘adam’时使用,判断是否在每次迭代时对样本进行清洗。 tol,可选,默认1e-4,优化的容忍度 learning_rate_int,默认0.001,初始学习率,控制更新权重的补偿,只有当solver=’sgd’ 或’adam’时使用。 power_t,只有solver=’sgd’时使用,是逆扩展学习率的指数.当learning_rate=’invscaling’,用来更新有效学习率。 verbose,是否将过程打印到stdout warm_start,当设置成True,使用之前的解决方法作为初始拟合,否则释放之前的解决方法。 属性: - classes_:每个输出的类标签 - loss_:损失函数计算出来的当前损失值 - coefs_:列表中的第i个元素表示i层的权重矩阵 - intercepts_:列表中第i个元素代表i+1层的偏差向量 - n_iter_ :迭代次数 - n_layers_:层数 - n_outputs_:输出的个数 - out_activation_:输出激活函数的名称。 用法: - fit(X,y):拟合 - get_params([deep]):获取参数 - predict(X):使用MLP进行预测 - predic_log_proba(X):返回对数概率估计 - predic_proba(X):概率估计 - score(X,y[,sample_weight]):返回给定测试数据和标签上的平均准确度 -set_params(**params):设置参数。 ''' # 决策树算法 from sklearn.tree import DecisionTreeClassifier dtc = DecisionTreeClassifier() ''' __init__函数 def __init__(self, criterion="gini", splitter="best", max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0., max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0., min_impurity_split=None, class_weight=None, presort=False): criterion,划分标准;可选项,默认值为”gini”,即基尼指数,”entropy”信息增益 max_depth,最大深度;可选项,默认值为”None”,即不限深度,直到达到某种阈值 min_samples_split,阈值;可选项,默认值为2,当某个结点的样本数小于该值时,停止划分; min_samples_leaf,叶结点中,样本点的最小值;默认值为1 属性: n_classes_ 列出类数目 classes_ 列出类标签 feature_importances_ 列出每一维特征的重要性 n_features_ 特征数目 用法: fix(X,y) 拟合 get_params() 获取参数表中的参数 predict(X) 返回预测出的结果 score(X,y) 返回准确率 ''' # 集成算法-Bagging from sklearn.ensemble import BaggingClassifier bgc = BaggingClassifier() ''' __init__函数 def __init__(self, base_estimator=None, n_estimators=10, max_samples=1.0, max_features=1.0, bootstrap=True, bootstrap_features=False, oob_score=False, warm_start=False, n_jobs=1, random_state=None, verbose=0): base_estimator,基本的估计器,就是你要用到的算法,如果该参数没有赋值,默认为决策树。 这个信息告诉我们bagging,不仅可以用在决策树上,还可以用于其他的算法模型上 n_estimators,基本估计器的个数,就是你要产生多少个子模型,用在决策树时,即表示产生多少条决策树用来融合。 max_samples,节点分裂参与判断的最大样本数 max_features,节点分裂参与判断的最大特征数 bootstrap,是否有放回对样本抽样 bootstrap_features,是否有放回对特征抽样 ''' # 集成算法-随机森林 from sklearn.ensemble import RandomForestClassifier rfc = RandomForestClassifier() ''' __init__函数 def __init__(self, n_estimators=10, criterion="gini", max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0., max_features="auto", max_leaf_nodes=None, min_impurity_decrease=0., min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None): min_samples_split,分裂所需要的最小样本数 min_samples_leaf,叶节点最小样本数 min_weight_fraction_leaf,叶子节点所需要的最小权值 bootstrap,是否有放回的采样。 oob_score,在某次决策树训练中没有被bootstrap选中的数据 warm_start,热启动,决定是否使用上次调用该类的结果然后增加新的。 class_weight,各个label的权重。 用法: predict_proba(x):给出带有概率值的结果。每个点在所有label的概率和为1. predict(x):直接给出预测结果。内部还是调用的predict_proba(),根据概率的结果看哪个类型的预测值最高就是哪个类型。 predict_log_proba(x):和predict_proba基本上一样,只是把结果给做了log()处理。 ''' # 集成算法-AdaBoost from sklearn.ensemble import AdaBoostClassifier abc = AdaBoostClassifier() ''' __init__函数 def __init__(self, base_estimator=None, n_estimators=50, learning_rate=1., algorithm='SAMME.R', random_state=None): learning_rate,学习效率 ''' # 集成算法-GBDT(Gradient Tree Boosting) from sklearn.ensemble import GradientBoostingClassifier gbc = GradientBoostingClassifier() ''' __init__函数 def __init__(self, loss='deviance', learning_rate=0.1, n_estimators=100, subsample=1.0, criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0., max_depth=3, min_impurity_decrease=0., min_impurity_split=None, init=None, random_state=None, max_features=None, verbose=0, max_leaf_nodes=None, warm_start=False, presort='auto'): subsample,训练每个决策树所用到的子样本占总样本的比例,而对于子样本的选择是随机的。 max_ leaf_ nodes,定义了树里最多能有多少个终点节点。 ''' |
回归算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
# 最小二乘回归 from sklearn.linear_model import LinearRegression lg = LinearRegression() ''' __init__参数 def __init__(self, fit_intercept=True, normalize=False, copy_X=True, n_jobs=1): fit_intercept,是否存在截距,默认存在 normalize,标准化开关,默认关闭 用法: lg.fit(X_train, y_train) y_pred = lg.predict(X_test) lg.score(y_pred, y_test) ''' # 岭回归 from sklearn.linear_model import Ridge clf = Ridge() ''' __init__函数 def __init__(self, alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=1e-3, solver="auto", random_state=None): alpha,两项之间的权重; fit_intercept,默认为true,数据可以拦截,没有中心化 normalize,输入的样本特征归一化,默认false copy_X,复制或者重写 max_iter,最大迭代次数 tol,控制求解的精度 solver,求解器 用法: clf.fit(X, y),输入训练样本数据X,和对应的标记y clf.predict(X),利用学习好的线性分类器,预测标记,一般在fit之后调用; clf.corf_,回归系数 clf.intercept_,截距 ''' # 核岭回归 from sklearn.kernel_ridge import KernelRidge clf = KernelRidge() ''' __init__函数 def __init__(self, alpha=1, kernel="linear", gamma=None, degree=3, coef0=1, kernel_params=None): kernel,核的类型 gamma,rbf,laplacian,poly,chi2,sigmoid核中的参数,使用其他核时无效。 degree,poly核中的参数d,使用其他核时无效 coef0,poly和sigmoid核中的0参数的替代值,使用其他核时无效。 属性: dual_coef_,核空间对应的模型参数 X_fit_,训练数据,预测时也需要该值 ''' # 支持向量机回归 from sklearn.svm import SVR svr = SVR() ''' __init__函数 def __init__(self, kernel='rbf', degree=3, gamma='auto', coef0=0.0, tol=1e-3, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=-1): C,惩罚系数 ''' # 套索回归 from sklearn.linear_model import Lasso lasso = Lasso() ''' __init__函数 def __init__(self, alpha=1.0, fit_intercept=True, normalize=False, precompute=False, copy_X=True, max_iter=1000, tol=1e-4, warm_start=False, positive=False, random_state=None, selection='cyclic'): alpha,可选,默认 1.0。当 alpha 为 0 时算法等同于普通最小二乘法,可通过 Linear Regression 实现,因此不建议将 alpha 设为 0. fit_intercept,是否进行拦截计算 max_iter,最大循环次数。 tol,优化容忍度 The tolerance for the optimization warm_start,为 True 时, 重复使用上一次学习作为初始化,否则直接清除上次方案 positive,设为 True 时,强制使系数为正。 selection,若设为 ‘random’, 每次循环会随机更新参数,而按照默认设置则会依次更新 ''' # 弹性网络回归 from sklearn.linear_model import ElasticNet etn = ElasticNet() ''' __init__函数 def __init__(self, alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False, precompute=False, max_iter=1000, copy_X=True, tol=1e-4, warm_start=False, positive=False, random_state=None, selection='cyclic'): ''' # 贝叶斯回归 from sklearn.linear_model import BayesianRidge bys = BayesianRidge() ''' __init__函数 def __init__(self, n_iter=300, tol=1.e-3, alpha_1=1.e-6, alpha_2=1.e-6, lambda_1=1.e-6, lambda_2=1.e-6, compute_score=False, fit_intercept=True, normalize=False, copy_X=True, verbose=False): ''' # 逻辑回归 from sklearn.linear_model import LogisticRegression clf = LogisticRegression() ''' __init__函数 def __init__(self, penalty='l2', dual=False, tol=1e-4, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1): penalty,惩罚项,str类型,可选参数为l1和l2,默认为l2。 dual,对偶或原始方法,bool类型,默认为False。 tol,停止求解的标准,float类型,默认为1e-4。就是求解到多少的时候,停止,认为已经求出最优解 c,正则化系数λ的倒数,float类型,默认为1.0 fit_intercept,是否存在截距或偏差,bool类型,默认为True。 intercept_scaling,仅在正则化项为”liblinear”,且fit_intercept设置为True时有用。float类型,默认为1。 class_weight,用于标示分类模型中各种类型的权重,可以是一个字典或者’balanced’字符串,默认为不输入,也就是不考虑权重,即为None。 solver,优化算法选择参数 ''' # 稳健回归 from sklearn.linear_model import RANSACRegressor rsg = RANSACRegressor() ''' __init__函数 def __init__(self, base_estimator=None, min_samples=None, residual_threshold=None, is_data_valid=None, is_model_valid=None, max_trials=100, max_skips=np.inf, stop_n_inliers=np.inf, stop_score=np.inf, stop_probability=0.99, residual_metric=None, loss='absolute_loss', random_state=None): ''' # 多项式回归 from sklearn.preprocessing import PolynomialFeatures pnf = PolynomialFeatures() ''' __init__函数 def __init__(self, degree=2, interaction_only=False, include_bias=True): degree,控制多项式的度 interaction_only,默认为False,如果指定为True,那么就不会有特征自己和自己结合的项 include_bias,是否包含截距,默认为True。 ''' # 偏最小二乘回归 from sklearn.cross_decomposition import PLSRegression plsr = PLSRegression() ''' __init__函数 def __init__(self, n_components=2, scale=True, max_iter=500, tol=1e-06, copy=True): n_components,要保留的主成分数量,默认为2 scale,是否归一化数据,默认为是 max_iter,使用NIPALS时的最大迭代次数 tol,迭代截止条件 ''' # 典型相关分析 from sklearn.cross_decomposition import CCA cca = CCA() ''' __init__函数 def __init__(self, n_components=2, scale=True, max_iter=500, tol=1e-06, copy=True): ''' |
聚类算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# knn算法 from sklearn.neighbors import NearestNeighbors nbrs = NearestNeighbors() ''' __init__函数 def __init__(self, n_neighbors=5, radius=1.0, algorithm='auto', leaf_size=30, metric='minkowski', p=2, metric_params=None, n_jobs=1, **kwargs): n_neighbors,整数,可选(默认值为5),用k_neighbors查找的近邻数 radius,参数空间的范围 ''' # Kmeans算法 from sklearn.cluster import KMeans k = KMeans() ''' __init__函数 def __init__(self, n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=1e-4, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm='auto'): n_clusters,生成的聚类数,即产生的质心(centroids)数 max_iter,执行一次k-means算法所进行的最大迭代数。 n_init,用不同的质心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果。 init:有三个可选值:’k-means++’, ‘random’,或者传递一个ndarray向量。 此参数指定初始化方法,默认值为 ‘k-means++’。 (1)‘k-means++’ 用一种特殊的方法选定初始质心从而能加速迭代过程的收敛(即上文中的k-means++介绍) (2)‘random’ 随机从训练数据中选取初始质心。 (3)如果传递的是一个ndarray,则应该形如 (n_clusters, n_features) 并给出初始质心。 precompute_distances,三个可选值,‘auto’,True 或者 False。预计算距离,计算速度更快但占用更多内存。 tol,默认值= 1e-4 与inertia结合来确定收敛条件。 random_state,用于初始化质心的生成器(generator)。如果值为一个整数,则确定一个seed。此参数默认值为numpy的随机数生成器。 copy_x,当我们precomputing distances时,将数据中心化会得到更准确的结果。如果把此参数值设为True,则原始数据不会被改变。 如果是False,则会直接在原始数据上做修改并在函数返回值时将其还原。 但是在计算过程中由于有对数据均值的加减运算,所以数据返回后,原始数据和计算前可能会有细小差别。 用法: fit(X[,y]): 计算k-means聚类。 fit_predictt(X[,y]): 计算簇质心并给每个样本预测类别。 fit_transform(X[,y]): 计算簇并 transform X to cluster-distance space。 get_params([deep]): 取得估计器的参数。 predict(X):predict(X) 给每个样本估计最接近的簇。 score(X[,y]): 计算聚类误差 set_params(**params): 为这个估计器手动设定参数。 transform(X[,y]): 将X转换为群集距离空间。 在新空间中,每个维度都是到集群中心的距离。 请注意,即使X是稀疏的,转换返回的数组通常也是密集的。 ''' # 层次聚类 from sklearn.cluster import AgglomerativeClustering agg = AgglomerativeClustering() ''' __init__函数 def __init__(self, n_clusters=2, affinity="euclidean", memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', pooling_func=np.mean): n_clusters,一个整数,指定分类簇的数量 connectivity,一个数组或者可调用对象或者None,用于指定连接矩阵 affinity,一个字符串或者可调用对象,用于计算距离。 memory,用于缓存输出的结果,默认为不缓存 compute_full_tree,通常当训练了n_clusters后,训练过程就会停止,但是如果compute_full_tree=True,则会继续训练从而生成一颗完整的树 linkage,一个字符串,用于指定链接算法 属性: labels:每个样本的簇标记 n_leaves_:分层树的叶节点数量 n_components:连接图中连通分量的估计值 children:一个数组,给出了每个非节点数量 方法: fit(X[,y]):训练样本 fit_predict(X[,y]):训练模型并预测每个样本的簇标记 ''' # DBSCAN from sklearn.cluster import DBSCAN dbs = DBSCAN() ''' __init__函数 def __init__(self, eps=0.5, min_samples=5, metric='euclidean', metric_params=None, algorithm='auto', leaf_size=30, p=None, n_jobs=1): eps,DBSCAN算法参数,即我们的ϵ-邻域的距离阈值,和样本距离超过ϵ的样本点不在ϵ-邻域内。默认值是0.5。一般需要通过在多组值里面选择一个合适的阈值。 eps过大,则更多的点会落在核心对象的ϵ-邻域,此时我们的类别数可能会减少, 本来不应该是一类的样本也会被划为一类。 反之则类别数可能会增大,本来是一类的样本却被划分开。 min_samples,DBSCAN算法参数,即样本点要成为核心对象所需要的ϵ-邻域的样本数阈值。默认值是5. 一般需要通过在多组值里面选择一个合适的阈值。 通常和eps一起调参。在eps一定的情况下,min_samples过大,则核心对象会过少,此时簇内部分本来是一类的样本可能会被标为噪音点,类别数也会变多。 反之min_samples过小的话,则会产生大量的核心对象,可能会导致类别数过少。 metric,最近邻距离度量参数 algorithm,最近邻搜索算法参数 ''' |
降维算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# 主成分分析法 from sklearn.decomposition import PCA pca = PCA() ''' __init__函数 def __init__(self, n_components=None, copy=True, whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto', random_state=None): n_components,PCA算法中所要保留的主成分个数n,即保留下来的特征个数n copy,表示是否在运行算法时,将原始训练数据复制一份。 whiten,白化,使得每个特征具有相同的方差 ''' # 核函主成分 from sklearn.decomposition import KernelPCA kpca = KernelPCA() ''' __init__函数 def __init__(self, n_components=None, kernel="linear", gamma=None, degree=3, coef0=1, kernel_params=None, alpha=1.0, fit_inverse_transform=False, eigen_solver='auto', tol=0, max_iter=None, remove_zero_eig=False, random_state=None, copy_X=True, n_jobs=1): ''' # 因子分析 from sklearn.decomposition import FactorAnalysis fac = FactorAnalysis() ''' __init__函数 def __init__(self, n_components=None, tol=1e-2, copy=True, max_iter=1000, noise_variance_init=None, svd_method='randomized', iterated_power=3, random_state=0): ''' |
数据预处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
from sklearn.preprocessing import scale import numpy as np x = np.array([[ 1. , - 1. , 2. ], [ 2. , 0. , 0. ], [ 0. , 1. , - 1. ]]) # 将每一列特征标准化为标准正太分布,注意,标准化是针对每一列而言的 x_scale = scale(x) x_scale.mean(axis = 0 ) x_scale.mean(axis = 1 ) x_scale.std(axis = 0 ) ''' preprocessing这个模块还提供了一个实用类StandarScaler, 它可以在训练数据集上做了标准转换操作之后,把相同的转换应用到测试训练集中。 ''' from sklearn.preprocessing import StandardScaler # 调用fit方法,根据已有的训练数据创建一个标准化的转换器 scaler = StandardScaler().fit(x) # 使用上面这个转换器去转换训练数据x,调用transform方法 scaler.transform(x) # 规模化特征到一定的范围内 from sklearn.preprocessing import MinMaxScaler min_max_scaler = MinMaxScaler() x_minmax = min_max_scaler.fit_transform(x) # MaxAbsScaler ''' 原理与上面的很像,只是数据会被规模化到[-1,1]之间。 也就是特征中,所有数据都会除以最大值。这个方法对那些已经中心化均值维0或者稀疏的数据有意义。 ''' from sklearn.preprocessing import MaxAbsScaler max_abs_scaler = MaxAbsScaler() x_train_maxsbs = max_abs_scaler.fit_transform(x) # 正则化Normalization ''' 正则化是将样本在向量空间模型上的一个转换,经常被使用在分类与聚类中。 函数normalize 提供了一个快速有简单的方式在一个单向量上来实现这正则化的功能 ''' from sklearn.preprocessing import normalize x_normalized = normalize(x, norm = 'l2' ) from sklearn.preprocessing import Normalizer # 根据训练数据创建一个正则器 normalizer = Normalizer().fit(x) # 对训练数据进行正则 normalizer.transform(x) # 二值化–特征的二值化 from sklearn.preprocessing import Binarizer binarizer = Binarizer().fit(x) binarizer.transform(x) |
sklearn可实现的函数或者功能可分为如下几个方面的更多相关文章
- 在Excel中使用频率最高的函数的功能和使用方法
在Excel中使用频率最高的函数的功能和使用方法,按字母排序: 1.ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值. 使用格式:ABS(number) 参数说明:number代表需要求绝 ...
- matlab中subplot函数的功能
转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...
- 【原创】Matlab中plot函数全功能解析
[原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...
- 【转】如何开启notepad++函数列表功能
原文网址:http://jingyan.baidu.com/article/4b07be3c41e05e48b380f3f6.html Notepad++是window下特有的一款开源编辑器软件,相信 ...
- Matlab中plot函数全功能解析
Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName ...
- 如何在不使用系统函数的情况下实现PHP中数组系统函数的功能
PHP中为我们提供了各种各样的系统函数来实现我们需要的各种功能,那么,在不使用系统函数的情况下我们要怎样来实现这些功能呢?以下就是几种系统函数的实现方式. 首先,我们来定义一个数组: $arr= ar ...
- C:函数:功能:实现字符数组中所有字母的倒序存放并输出
前两天小测碰到一道题,建立一个函数,功能:实现字符数组中所有字母的倒序存放并输出,一开始觉得简单跟数字数组差不多,运行一下发现很多格式错误,这些是不必要的错误,现在就来说下,先说一下代码思路:定义一个 ...
- JQuery常用函数及功能
JQuery常用函数及功能小结 来源:http://blog.csdn.net/screensky/article/details/7831000 1.文档加载完成执行函数 $(document).r ...
- 自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。
写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复.邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母.小写字母.数字和特殊字符 和上一期一样 代码中间有段比较混沌 有 ...
随机推荐
- 定时执行exe、windows任务计划、windows服务
环境: Windows10 + VS2015 + SQL Server2014 + .NET Framework4.5 + C# + WCF 问题: 业务功能需要,做了一个windows应用程序供主程 ...
- jdbc简单使用
1.代码 import java.sql.*; public class DBUtil { public static void main(String[] args) throws ClassNot ...
- Luogu P1600[NOIP2016]day1 T2天天爱跑步
号称是noip2016最恶心的题 基本上用了一天来搞明白+给sy讲明白(可能还没讲明白 具体思路是真的不想写了(快吐了 如果要看,参见洛谷P1600 天天爱跑步--题解 虽然这样不好但我真的不想写了 ...
- 正确理解Widget::Widget(QWidget *parent) :QWidget(parent)这句话
原文:https://zhuanlan.zhihu.com/p/31310536 /********原文********/ 最近很多学习Qt的小伙伴在我的微信公众号私信我,该如何理解下面段代码的第二行 ...
- 简单了解运用Git
Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. SVN是集中式的. Git没有中央服务器,每台电脑就是一个完整的版本库 ,工作无需 ...
- uboot 主Makefile 分析。
本文以uboot_1.1.6 对应的CPU是S3C2440 为例 uboot_1.1.6 根目录下的主Makefile开头: VERSION = PATCHLEVEL = SUBLEVEL = EXT ...
- spring boot入门与进阶教程
SpringBoot入门.SpringBoot进阶.Spring Cloud微服务.Spring Ecosystem 微服务相关.Spring Boot 入门 IDEA 版本.Spring Boot集 ...
- python 目录管理与文件管理
目录管理(os) system:执行系统命令 # 执行系统命令 os.system('cls') name:获取操作系统名称 # 操作系统名称,nt代表Windows, posix代表类unix pr ...
- python 运算符与流程控制
运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...
- Excel中的常用快捷键
1)工作表之间快速切换 Ctrl+PageUp切换的是当前所在工作表的前一个工作表, Ctrl+PageDown切换的是当前所在工作表的后一个工作表. 2)Ctrl +Home 强迫回到最前一个单元格 ...