机器学习算法之复合算法代码实战及其解析

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 02:33   11   0

复合算法 代码:

#导入包
import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets

#自定义数据
X,y=datasets.make_moons(random_state=41,noise=0.1,n_samples=500)

#绘制数据图形
plt.scatter(X[y==0,0],X[y==0,1],c="r")
plt.scatter(X[y==1,0],X[y==1,1],c="b")
plt.show()

#第一步:数据切分为训练数据和测试数据
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=51)
# print(X_train.shape)  #观察数据的维度

#第二步:创建模型(继承算法模型,各个小算法模型)
#线性回归算法
from sklearn.linear_model import LogisticRegression
lr=LogisticRegression()
lr.fit(X_train,y_train)
# print("线性归回算法得分:",lr.score(X_test,y_test))
#支持向量机SVM
from sklearn.svm import SVC
sc=SVC()
sc.fit(X_train,y_train)
# print("支持向量机算法得分:",sc.score(X_test,y_test))
#决策树算法
from sklearn.tree import DecisionTreeClassifier
dt_c=DecisionTreeClassifier(random_state=666)
dt_c.fit(X_train,y_train)
# print("决策树算法得分:",dt_c.score(X_test,y_test))

#自定义hard方式集成算法
y_lr=lr.predict(X_test)   #[1,0。。。。]
y_sc=sc.predict(X_test)   #【0,1。。。】
y_dt_c=dt_c.predict(X_test)#【0,1.。。。】
#计算预测标签里面多余2个的为一类,否是另外一类
y_jicheng=np.array((y_lr+y_sc+y_dt_c) >= 2,dtype='int')
print(y_jicheng)
print(y_test)
#计算得分
from sklearn.metrics import accuracy_score
print("自定义hard方式集成算法得分:",accuracy_score(y_test,y_jicheng))


#使用sklearn自带的集成算法(Voting=hard)
from sklearn.ensemble import VotingClassifier
vote_clf=VotingClassifier(estimators=[
        ('lr',LogisticRegression()),
        ('sc',SVC()),
        ('dt_c',DecisionTreeClassifier(random_state=666))],
        voting='hard')
vote_clf.fit(X_train,y_train)
print("集成算法Hard方式得分:",vote_clf.score(X_test,y_test))


#使用sklearn自带的集成算法(Voting=soft)
from sklearn.ensemble import VotingClassifier
vote_clf=VotingClassifier(estimators=[
        ('lr',LogisticRegression()),
        ('sc',SVC(probability=True)),
        ('dt_c',DecisionTreeClassifier(random_state=666))],
        voting='soft')
vote_clf.fit(X_train,y_train)
print("集成算法Soft方式得分:",vote_clf.score(X_test,y_test))

随机生成的数据:

下图所示的两个矩阵一个是复合算法预测出来的数据矩阵,一个是真实的label数据矩阵。

以及算法的得分比较。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP