如何修复索引器错误:索引1212超出大小为1212的轴0的界限

2024-05-29 03:05:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习机器学习教程。但我遇到了意想不到的麻烦。我尝试了更多的方法来解决错误。但我不能解决

def tur_dagilim_grafigi(turler=("bradypus_variegatus_0",
                                "microryzomys_minutus_0")):
    """
    Tür dağılımın grafiği
    """
    if len(turler)>2:
        print("Not:İkiden fazla tür sağlandığında sadece ilk ikisi kullanacak")
    t0=time()
    #Baskılanmış veriyi yükle
    veri=fetch_species_distributions()


    xekseni,yekseni=construct_grids(veri)
    #X,Y koordinatları içinde eksen
    X,Y=np.meshgrid(xekseni,yekseni[::-1])
    #Her tür için bir demet oluştur.
    BV_demet=demet_turleri_olustur(turler[0],veri.train,veri.test,veri.coverages,xekseni,yekseni)
    MM_demet=demet_turleri_olustur(turler[1],veri.train,veri.test,veri.coverages,xekseni,yekseni)
    #Değerlendirme için arkaplan puanları

    np.random.seed(13)
    arkaplan_puanlari=np.c_[np.random.randint(low=0,high=veri.Ny,size=10000),
                            np.random.randint(low=0,high=veri.Nx,size=10000)].T
    #Kapsamaya ait tüm ölçümlerin etki kullanımını yapacağız.
    #Kara puanları-Bu bize kara ve su arasında karar vermemize yardım edecektir.
    kara_referansi=veri.coverages[6]
    for a,tur in enumerate([BV_demet,MM_demet]):
        print("_"*80)
        print("Türlerin dağılımı modellemesi %s" % tur.name)
        ortalama=tur.cov_train.mean(axis=0)
        sapma=tur.cov_train.std(axis=0)
        sapmafarki=(tur.cov_train-ortalama)/sapma
        print("-Tek sınıf SVM uydur",end='')
        siniflandirma=svm.OneClassSVM(nu=0.1,kernel="rbf",gamma=0.5)
        siniflandirma.fit(sapmafarki)
        print("yapıldı")
        #Güney Amerika harita arazisi
        plt.subplot(1,2,a+1)
        if tabanharitasi:
            print("Kıyı çizgisi arazisi taban haritası kullanıyor")
            l=Basemap(projection='cyl',llcrnrlat=Y.min(),
                      urcrnlat=Y.max(),
                      llcrnlon=X.min(),
                      urcrnrlon=X.max(),
                      resolution='c')
            l.drawcoastlines()
            l.drawcountries()
        else:
            print("kapsamdan kıyı çizgisi arazisi")
            plt.contour(X,Y,kara_referansi,levels=[-9998],colors='k',linestyles='solid')
            plt.xticks([])
            plt.yticks([])
        print("tür dağılımını tahmin etme")
        #Eğitilmiş veriyi kullanarak tür dağılımını tahmin edelim.
        K=np.ones((veri.Nx,veri.Ny),dtype=np.float64)
        #Biz sadece kara puanlarını tahmin edeceğiz.
        idx=np.where(kara_referansi >= -9999)
        kapsam_karasi=veri.coverages[:,idx[0],idx[1]].T
        tahmin=siniflandirma.decision_function((kapsam_karasi-ortalama) / sapma)
        K *=tahmin.min()
        K[idx[0],idx[1]]=tahmin
        seviyeler=np.linspace(K.min(),K.max(),25)
        K[kara_referansi==-9999]=-9999
        plt.contourf(X, Y, K, levels=seviyeler, cmap=plt.cm.Reds)
        plt.colorbar(format='%.2f')
        #Eğitilmiş/sınama puanlarının saçılımı
        plt.scatter(turler.asf_egitim['dd long'],turler.asf_egitim['dd lat'],s=2**2,c='yellow',marker='*',label='eğitim')
        plt.scatter(turler.asf_sinama['dd long'],turler.asf_egitim['dd lat'],s=2**2,c='blue',marker='^',label='sınama')
        plt.legend()
        plt.title(tur.name)
        plt.axis('eşit')
        arkaplan_tahmini=K[arkaplan_puani[0],arkaplan_puani[1]]
        tahmin_sinama=siniflandirma.decision_function((turler.X-ortalama) / sapma)
        r=np.r_[tahmin_sinama,arkaplan_tahmini]
        sayi=np.r_[np.ones(tahmin_sinama.shape),np.zeros(arkaplan_tahmini.shape)]
        fpr,tpr,esikler=metrics.roc_curve(sayi,r)
        roc_auc=metrics.auc(fpr,tpr)
        plt.text('Alan ROC eğrisi altında:%f' % roc_auc)
        print("\nZaman sarkması:%.2fs" % (time() - t0))

Tags: nptrainpltdaprintidxveritur

热门问题