디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[🔎질문] 비선형 회귀분석 결정계수 r2 최대한 높게

ㅇㅇ(221.153) 2022.05.31 18:15:34
조회 320 추천 0 댓글 10
														

그 지금 하려고 하는게 r2 값을 최대한 올려보려고 하고 있거든

지금 쓰는게 5차 함수 f(x,y) 꼴 다 쓰기는 힘들어서 그냥 저렇게만 넣었거든

저 상태로 계산하면 r2 이 0.95까지는 나옴

저거 최대한 1까지 올리는 방법 없을까?

1에 가까울수록 원래 데이터랑 값이 비슷하다거든


그냥 5차 함수 하나 하나 다 넣으면 값 비슷 하게 나오려나?

플롯은 이래 나옴


viewimage.php?id=3da4c42eeadc&no=24b0d769e1d32ca73deb8efa1bd8233c818608a2c6659a230cf64269cf99821ab1fa25e9c5c3e2c5553eb08ab6667ad8cdaa404f2ad9479392b904f757e74ff94674a0


저 밑에 까지 대부분 다 커버 하게 하고 싶은데

수식 자체를 잘못 고른걸까?



import numpy, scipy, scipy.optimize

import matplotlib

from mpl_toolkits.mplot3d import  Axes3D

from matplotlib import cm # to colormap 3D surfaces from blue to red

import matplotlib.pyplot as plt

import numpy as np

graphWidth = 800 # units are pixels

graphHeight = 600 # units are pixels

import pandas as pd

df = pd.read_excel(r'C:\Users\JRKIM\Desktop\data\2513data.xlsx')



# 3D contour plot lines

numberOfContourLines = 16


xData = df.loc[:,'TRUE_x_0']

yData = df.loc[:,'TRUE_y_0']

zData = df.loc[:,'dr']


# place the data in a single list

data = [xData, yData, zData]



def SurfacePlot(func, data, fittedParameters):

    f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)


    matplotlib.pyplot.grid(True)

    axes = Axes3D(f)


    # extract data from the single list

    x_data = data[0]

    y_data = data[1]

    z_data = data[2]


    xModel = numpy.linspace(min(x_data), max(x_data))

    yModel = numpy.linspace(min(y_data), max(y_data))

    X, Y = numpy.meshgrid(xModel, yModel)


    Z = func(numpy.array([X, Y]), *fittedParameters)


    axes.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=1, antialiased=True, alpha = 0.3)


    axes.scatter(x_data, y_data, z_data) # show data along with plotted surface


    axes.set_title('Surface Plot (click-drag with mouse)') # add a title for surface plot

    axes.set_xlabel('X Data') # X axis data label

    axes.set_ylabel('Y Data') # Y axis data label

    axes.set_zlabel('Z Data') # Z axis data label


    plt.show()



def ContourPlot(func, data, fittedParameters):

    f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)

    axes = f.add_subplot(111)


    x_data = data[0]

    y_data = data[1]

    z_data = data[2]


    xModel = numpy.linspace(min(x_data), max(x_data), 20)

    yModel = numpy.linspace(min(y_data), max(y_data), 20)

    X, Y = numpy.meshgrid(xModel, yModel)


    Z = func(numpy.array([X, Y]), *fittedParameters)


    axes.plot(x_data, y_data, 'o')


    axes.set_title('Contour Plot') # add a title for contour plot

    axes.set_xlabel('X Data') # X axis data label

    axes.set_ylabel('Y Data') # Y axis data label


    CS = matplotlib.pyplot.contour(X, Y, Z, numberOfContourLines, colors='k')

    matplotlib.pyplot.clabel(CS, inline=1, fontsize=10) # labels for contours


    plt.show()




def ScatterPlot(data):

    f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)


    matplotlib.pyplot.grid(True)

    axes = Axes3D(f)


    # extract data from the single list

    x_data = data[0]

    y_data = data[1]

    z_data = data[2]


    axes.scatter(x_data, y_data, z_data)


    axes.set_title('Scatter Plot (click-drag with mouse)')

    axes.set_xlabel('X Data')

    axes.set_ylabel('Y Data')

    axes.set_zlabel('Z Data')


    plt.show()

    



def func(data, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p):


    # extract data from the single list

    x1 = data[0]

    x2 = data[1]


    return a*data[0]**5+b*x1**4+c*x1**3+d*x1**2+e*x1+f*x2**5+g*x2**4+h*x2**3+i*x2**2+j*x2+k*(x1**5)*(x2**5)+l*(x1**4)*(x2**4)+m*(x1**3)*(x2**3)+n*(x1**2)*(x2**2)+o*(x1)*(x2)+p



if __name__ == "__main__":    

    initialParameters = np.random.rand(16)


    # here a non-linear surface fit is made with scipy's curve_fit()

    fittedParameters, pcov = scipy.optimize.curve_fit(func, [xData, yData], zData, p0 = initialParameters, maxfev=10000000)


    ScatterPlot(data)

    SurfacePlot(func, data, fittedParameters)

    ContourPlot(func, data, fittedParameters)

  

    print('fitted parameters', fittedParameters)


    modelPredictions = func(data, *fittedParameters)

    


    absError = modelPredictions - zData


    SE = numpy.square(absError) # squared errors

    MSE = numpy.mean(SE) # mean squared errors

    RMSE = numpy.sqrt(MSE) # Root Mean Squared Error, RMSE

    Rsquared = 1.0 - (numpy.var(absError) / numpy.var(zData))

    print('RMSE:', RMSE)

    print('R-squared:', Rsquared)

    

    fi = fittedParameters

    

    xData = df.loc[:,'vx']

    yData = df.loc[:,'vy']

    zData = df.loc[:,'dr']


    # place the data in a single list

    data = [xData, yData, zData]


    

    t = fi[0]*data[0]**5+fi[1]*data[0]**4+fi[2]*data[0]**3+fi[3]*data[0]**2+fi[4]*data[0]+fi[5]*data[1]**5+fi[6]*data[1]**4+fi[7]*data[1]**3+fi[8]*data[1]**2+fi[9]*data[1]+fi🔟*(data[0]**5)*(data[1]**5)+fi[11]*(data[0]**4)*(data[1]**4)+fi[12]*(data[0]**3)*(data[1]**3)+fi[13]*(data[0]**2)*(data[1]**2)+fi[14]*(data[0])*(data[1])+fi[15]

    

    


추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2864 설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
1733 일반 이게 질문임 ? [2] 주넹갤로그로 이동합니다. 22.06.15 183 3
1731 🔎질문 [자료구조] 스택 리스트 질문 좀 [2] ㅇㅇ(49.164) 22.06.15 139 0
1730 🔎질문 PDF파일 편집해주는 코드가 작동은 잘 되는데 에러창이 뜹니당.. [2] ㅇㅇ(211.51) 22.06.14 219 0
1729 일반 파이썬 콘솔창에 로딩바 추가하기 [5] ㅇㅇ(155.230) 22.06.14 202 1
1727 🔎질문 텔레그램 알리미 봇 만들려는데 잘 안됩니다 [6] 먼디(125.128) 22.06.14 294 0
1723 📚정보 파이썬 계산기(5): 후위표기식으로 전환하는 방법 신촌우왕87갤로그로 이동합니다. 22.06.13 450 5
1721 일반 역시 글삭 좆되네 [3] ㅇㅇ(91.193) 22.06.12 190 1
1718 🔎질문 파이썬 코딩 해주실분 구합니다. [3] ㅇㅇ(211.117) 22.06.12 253 0
1717 🔎질문 싱글톤 <- 이새끼 왜 필수임? [2] 키메라(117.111) 22.06.10 154 0
1716 🔎질문 ml 코드 수정 [3] ㅇㅇ(221.153) 22.06.10 167 0
1713 🔎질문 고수 형님들 파이썬 코드 결과 반전 시킬수 있나요? [10] ㅇㅇ(49.164) 22.06.09 198 0
1712 🔎질문 오늘 교양 셤봤는데 [3] ㅇㅇ(223.39) 22.06.09 164 0
1710 🔎질문 파이썬 폴리움 질문드립니다. [4] ㅇㅇ(175.205) 22.06.08 143 0
1708 🔎질문 파이썬 리스트 질문즘 [5] oo(218.152) 22.06.08 178 0
1707 🔎질문 뷰티풀수프로 셀레니움을 완전히 대체하는게 가능함? [3] ㅇㅇ(168.188) 22.06.08 168 0
1706 일반 파이썬 어렵네 [2] ㅇㅇ(45.8) 22.06.08 129 0
1705 🔎질문 매개변수 여러개일 때 중간매개변수 비워둘 수 있음? [3] ㅇㅇ(45.8) 22.06.08 108 0
1702 🔎질문 파이썬 초보 성불 부탁드립니다. ㅠㅠ [10] ㅇㅇ(222.232) 22.06.07 222 0
1701 📚정보 압축하는거 만들다가 새롭게 알게 된 것,, [3] 주넹갤로그로 이동합니다. 22.06.07 162 1
1698 💡답변 문자열에서 리스트 값 검색해서 결과로 내놓기 [10] ㅇㅇ(118.45) 22.06.06 180 0
1697 🔎질문 고수형님들 도와주십쇼 [16] ㅇㅇ(180.70) 22.06.06 142 0
1695 🔎질문 파이썬 질문드립니다 [3] 흑흑(218.152) 22.06.05 159 0
1692 🔎질문 셀 명령어 파이썬 py파일로 어떻게 짜나요 [8] ㅇㅇ(211.36) 22.06.04 171 0
1690 🔎질문 이거 왜 실행 안되는지 아는 분 계신가요? [4] dd(221.138) 22.06.03 133 0
1688 🔎질문 atom vs VScode [4] ㅇㅇ(121.174) 22.06.03 166 0
1687 🔎질문 둘중 뭐가더낫노? [2] 키메라(112.148) 22.06.02 133 0
1686 🔎질문 왜 개발자들은 찐따처럼 생겼을까 [1] ㅇㅇ(165.132) 22.06.01 189 0
1685 🔎질문 파이썬 생초보 질문드려요~ [3] 어렵다(119.204) 22.06.01 177 0
1684 🔎질문 선생님들 콘솔창에 찍혀있는 로그 읽어들일수는 없나요? [2] ㅇㅇ(59.4) 22.06.01 104 0
1682 일반 코드 올릴때 외부 사이트좀 써주면 안되냐? [1] ㅇㅇ(223.39) 22.05.31 115 0
1681 🔎질문 형님들... [2] ㅇㅇ(182.172) 22.05.31 133 0
🔎질문 비선형 회귀분석 결정계수 r2 최대한 높게 [10] ㅇㅇ(221.153) 22.05.31 320 0
1678 🔎질문 라즈베리파이 파이썬 코드 자동실행 어떻게 하죠 [1] ㅇㅇ(49.164) 22.05.30 164 0
1677 🔎질문 파이썬 과외 좀 받고 싶은데 [2] ㅇㅇ(115.91) 22.05.30 150 0
1676 🔎질문 뉴비 대학 과제 질문입니다!! [2] ㅇㅇ(168.188) 22.05.30 170 0
1675 🔎질문 cp949 오류 대체 어케 해결함? [2] ㅇㅇ(203.252) 22.05.30 111 0
1673 💡답변 3d 플롯 [1] ㅇㅇ(118.45) 22.05.29 107 0
1670 💡답변 뭔가 미묘하게 다른데 [9] ㅇㅇ(118.45) 22.05.29 164 0
1669 🔎질문 파이썬 비선형 회귀분석식 구하기 [4] ㅇㅇ(221.153) 22.05.29 226 0
1668 🔎질문 can't convert expression to float 이거 [2] ㅇㅇ(125.133) 22.05.29 91 0
1665 일반 캐글 무료 코스 강의 재밌노 ㅁㅁㅁㅁㅁ(223.38) 22.05.28 111 0
1664 🔎질문 리스트 튜플 질문 [7] ㅇㅇ(175.203) 22.05.28 111 0
1663 🔎질문 셀레니움으로 크롤링하는데 메모리가 계속 증가하는데 방법 없을까 [1] 셀레니움(211.36) 22.05.27 132 0
1662 일반 뻘글싸기 최적의 타이밍 [3] 키메라(117.111) 22.05.27 118 0
1661 🔎질문 파이썬 bytes 변환 관련 질문 드립니다. [3] ㅇㅇㅇ(112.144) 22.05.26 113 0
1660 🔎질문 라즈베리코드 한번 도와주세요 부탁드립니다. [2] ㅇㅇ(49.164) 22.05.26 121 0
1658 🔎질문 형님들 [2] ㄴㅁㅎ(211.251) 22.05.26 90 0
1654 일반 아니 가르쳐주니까 글삭튀하는 새낀 뭐하는 새끼노 [2] ㅁㅁㅁㅁㅁ(223.38) 22.05.25 139 2
1653 일반 로또 사는게 돈 아까워서 파이썬 배운걸로 로또놀이 만들어봤어요 [5] ㅇㅇ(218.39) 22.05.25 183 3
1650 🔎질문 tkinter PhotoImage 질문있습니다!! [1] ㅇㅇ(180.69) 22.05.25 70 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2