使用TPOT进行机器学习的一次测试

使用TPOT进行机器学习的一次回归测试

使用的包

初次使用TPOT进行机器学习,要从一个文件中取得包含特征值的X,从另外五个文件中取得真实值Y。
写下一点关于使用pandas numpy的心得
特征值类型:
特征值
真实值类型:
真实值Y

scikit-learn

from sklearn.model_selection import train_test_split

xlrd

    for i in range(1, 6):
        datalist.append(str("supplementary data%s.xlsx" % i))
    #得到所有VRHE值

        old_value = xlrd.open_workbook(filename=datalist[i-1])
        sheet = old_value.sheet_by_name(sheet_name='Sheet1')

        for j in range(2, 20):
            #将第j行2-14列数值放入list1中
            list1.append((sheet.row_values(j, 2, 14)))
               for k in range(21, 26):
            list1.append((sheet.row_values(k, 2, 14)))

通过for循环读取1,5号文件,使用xlrd打开workbook,打开sheet,通过row_values获取每行的值,当然也可以通过col_values获取每列的数值,同理可以获取特定位置的特征值:

feature_set='supplementary data7.xlsx'
current_densities=[[0.05],[5],[10],[15],[20]]  #电流密度单位(mA/cm2)
#打开xlsx文件
old_feature = xlrd.open_workbook(filename=feature_set)
    sheet1 = old_feature.sheet_by_name(sheet_name='Sheet1')
    for c in range(len(current_densities)):
        for l in range(2, 25):
            list2 = []
            #获取指定位置的特征值放入list2
            list2.append((sheet1.row_values(l, 30, 38)))
            在list2内层列表末端加入一个current_densities值
            list2[0].extend(current_densities[c])
            #将每组特征值重复12次,因为每组特征值对应12组Y值
            for i in range(12):
                list3.append(list2[0])

pandas,numpy

pandas,numpy的作用是将获得的list转换成Dataframe类型

a=np.array(list1)
    a.shape=1380,1
    X=pd.DataFrame(list3)
    Y=pd.DataFrame(a)    

TPOT使用

本次使用的是tpot的Regressor功能

from tpot import TPOTRegressor
#split values
def tpot_sim(X,Y):
    X_train,X_test,y_train,y_test = train_test_split(X,Y,train_size=0.8)
# #建模、拟合
    tpot=TPOTRegressor(generations=10,population_size=20,verbosity=2)
    tpot.fit(X_train,y_train)
    print(tpot.score(X_test,y_test))
    #输入最佳的pipeline
    tpot.export('tpot_SR_pipeline.py')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wangxiancao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值