机器学习model - sklearn的一些常用的口令与其用法

1.model的算法模型

from sklearn.linear_model import LinearRegression

model = LinearRegression() #这里只是用线性回归算法来举例,还有很多其他的算法~ 括号里面可以输入模型的具体参数,具体什么参数不同模型有着不同的参数。

2.model的训练
model.fit(data_X, data_Y) #data_X, data_Y分别代表了训练集的特征和标签。

3.model的得分
model.score(test_X, test_Y) #用测试集的特征还有标签来对测试的结果进行打分。

4.输出模型的系数
model.coef_ #例如样本是线性回归模型,则会返回他的k值。
model.intercept_ #输出模型与Y轴的交点。

5.输出模型定义的参数
model.get_params()

6.输出模型的预测值
model.predict( ## ) # ‘##’里面是需要用来预测的特征值,输出会是他的结果。
model.predict_proba( ## ) # 输出的是计算出来特征对应的每个标签的可能性。

7.用于从数据集中分割训练集和测试集

from sklearn.cross_validation import train_test_split

具体用法

X_train, Y_train, X_test, Y_test = train_test_split(feature, target, test_size = 0.3)

这里的feature就是我们数据集中的特征,target就是标签,test_size表示我们要从数据集中取出多少来作为我们的测试集。

(在其中运用K折交叉验证的方法

交叉验证的原理图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190729171038907.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk3MTExNg==,size_16,color_FFFFFF,t_70
用5次的测试结果平均一下

代码:

from sklearn.model_selection import cross_val_score
knn = KNeighborsClassifier(n_neighbors=5)
scores = cross_val_score(knn,X,y,cv=5,scoring='accurary')
print(scores.mean())#取平均值

在cross_val_score中参数,knn就是要操作的模型,X,y,是特征和标签,cv是定义K等于几,定义后机器会自动帮我们将数据分割,每次分割的train和test都不一样,这也会让我们的scores有五个值在里面。

8.数据的标准化

#下面这种情况就是我们的特征值不平衡的情况
在这里插入图片描述
注意:标准化是直接对数据集进行处理的

如:

a = np.array([[10,2.7,3.6],
			  [-100,5,-2],
			  [120,20,40],dtype = np.float64
				]])
print(a)
print(preprocessing.scale(a))

结果为:
在这里插入图片描述
由这里可以看出来数据变得更加集中了。

如果想要让数据压缩到指定的范围,则有

a = preprocessing.minmax_scale(a, feature_range=(-1,1))

这里的feature_range里面的范围就是我们想要数据压缩到的范围

9.对于调整单参数学习曲线的写法

k_range = range(1, 31)
k_scores = []
for k in k_range:
	knn = KNeighborsClassifier(n_neighbors=k)
	#loss = -cross_val_score(knn, X, y, cv=10, scoring='mean_squared_error')#用于回归
	scores = cross_val_score(knn, X, y, cv=10, scoring='accuracy') #用于分类
	k_scores.append(scpres_mean())
plt.plot(k_range, k_scores)
plt.xlabel('Value of KNN')
plt.ylable('Cross-Validated Accuracy')
plt.show()

在这里插入图片描述
在其中找score最高的点对应的参数值就OK了~

10.网格搜索调整参数(可以用于多个参数的调整)

from sklearn.model_selection import GridSearchCV

然后定义要搜索的参数和他的范围,用字典的形式定义。

param_grid = {'max_depth':np.arange(1, 20, 1)}   #这里可以有多个参数与它的范围
rfc = RandomForestClassifier(n_estimators=39
							, random_state = 90
							)
GS = GridSearchCV(rfc, param_grid, cv=10) 	 #网格搜索与交叉验证结合
GS.fit(data.data, data.target)			 	#用数据的特征和标签来训练,这里因为用了交叉验证,所以他会自动帮我们分训练集和测试集
print(GS.best_params_)						#输出最好得分时候的参数的取值
print(GS.best_score_)						#输出最好的得分
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值