디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅇㅇ(221.153) 2022.05.31 18:15:34
조회 410 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
- AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
🔎질문 비선형 회귀분석 결정계수 r2 최대한 높게 [10] ㅇㅇ(221.153) 22.05.31 410 0
1678 🔎질문 라즈베리파이 파이썬 코드 자동실행 어떻게 하죠 [1] ㅇㅇ(49.164) 22.05.30 197 0
1677 🔎질문 파이썬 과외 좀 받고 싶은데 [2] ㅇㅇ(115.91) 22.05.30 184 0
1676 🔎질문 뉴비 대학 과제 질문입니다!! [2] ㅇㅇ(168.188) 22.05.30 191 0
1675 🔎질문 cp949 오류 대체 어케 해결함? [2] ㅇㅇ(203.252) 22.05.30 163 0
1673 💡답변 3d 플롯 [1] ㅇㅇ(118.45) 22.05.29 124 0
1670 💡답변 뭔가 미묘하게 다른데 [9] ㅇㅇ(118.45) 22.05.29 182 0
1669 🔎질문 파이썬 비선형 회귀분석식 구하기 [4] ㅇㅇ(221.153) 22.05.29 258 0
1668 🔎질문 can't convert expression to float 이거 [2] ㅇㅇ(125.133) 22.05.29 107 0
1665 일반 캐글 무료 코스 강의 재밌노 ㅁㅁㅁㅁㅁ(223.38) 22.05.28 160 0
1664 🔎질문 리스트 튜플 질문 [7] ㅇㅇ(175.203) 22.05.28 132 0
1663 🔎질문 셀레니움으로 크롤링하는데 메모리가 계속 증가하는데 방법 없을까 [1] 셀레니움(211.36) 22.05.27 163 0
1662 일반 뻘글싸기 최적의 타이밍 [3] 키메라(117.111) 22.05.27 140 0
1661 🔎질문 파이썬 bytes 변환 관련 질문 드립니다. [3] ㅇㅇㅇ(112.144) 22.05.26 126 0
1660 🔎질문 라즈베리코드 한번 도와주세요 부탁드립니다. [2] ㅇㅇ(49.164) 22.05.26 137 0
1658 🔎질문 형님들 [2] ㄴㅁㅎ(211.251) 22.05.26 111 0
1654 일반 아니 가르쳐주니까 글삭튀하는 새낀 뭐하는 새끼노 [2] ㅁㅁㅁㅁㅁ(223.38) 22.05.25 158 2
1653 일반 로또 사는게 돈 아까워서 파이썬 배운걸로 로또놀이 만들어봤어요 [5] ㅇㅇ(218.39) 22.05.25 200 3
1650 🔎질문 tkinter PhotoImage 질문있습니다!! [1] ㅇㅇ(180.69) 22.05.25 92 0
1649 📚정보 인공지능(1): CNN(합성곱 신경망)에서 출력 크기 신촌우왕87갤로그로 이동합니다. 22.05.25 221 2
1648 🔎질문 안녕하세요 파린이 궁금한거있어서 여쭤봅니다. [5] sadfg(168.131) 22.05.25 139 0
1647 🔎질문 재시작버튼 활성화좀 도와주세요 [3] ㅇㅇ(112.216) 22.05.24 129 0
1644 🔎질문 오류 질문드립니다 ㅠㅠ [2] ㅇㅇ(182.230) 22.05.24 108 0
1643 🔎질문 변수 3개일때 잘보는법 없노? [3] 키메라(112.148) 22.05.23 163 0
1642 🔎질문 Unpacking Operator, *가 어떻게 동작한건지 모르겠음 ㅇㅇ(220.121) 22.05.23 118 0
1641 🔎질문 파이썬 개씹고수형님들 도와주세요 [5] ㅇㅇ(1.247) 22.05.23 174 0
1637 🔎질문 다시올려요옷 [2] ㅇㅇ(118.37) 22.05.22 159 0
1636 🔎질문 이거왜안됨 [2] ㅇㅇ(121.141) 22.05.22 122 0
1634 🔎질문 파이썬 곳수들 질문좀 [2] ㅇㅇ(156.146) 22.05.22 129 0
1633 🔎질문 파이썬 input 질문 [3] oo(39.127) 22.05.22 120 0
1632 🔎질문 파이썬 ㅈ 고수형님들 질문좀 [3] ㅇㅇ(1.247) 22.05.22 146 0
1630 💡답변 백단위수 중복 제거 신촌우왕87갤로그로 이동합니다. 22.05.22 142 0
1629 🔎질문 뉴비 파이썬 코드 질문입니다!! [2] ㅇㅇ(180.69) 22.05.21 136 0
1628 🔎질문 파이썬 함수 질문입니다 [2] ㅇㅇ(58.104) 22.05.21 135 0
1627 🔎질문 아래 백단위수 중복 제거 답변 [1] ㅇㅇ(58.124) 22.05.21 126 0
1626 🔎질문 도와주세요!!! [1] 응애(58.126) 22.05.21 132 0
1625 🔎질문 pygame 질문있어요 [2] ㅇㅇ(122.35) 22.05.21 152 0
1624 🔎질문 뉴비 진짜 마지막으로 한번만 더 도와주실분...?? [9] ㅇㅇ(223.38) 22.05.21 166 0
1623 📚정보 파이썬 계산기(4): 후위표기식과 계산방법 신촌우왕87갤로그로 이동합니다. 22.05.21 144 2
1622 🔎질문 해결부탁드립니다..!ㅜㅜ [1] 2(125.191) 22.05.21 186 0
1621 🔎질문 질문 [13] ㅇㅇ(1.177) 22.05.21 162 0
1620 🔎질문 [모듈에러] for 관련 질문 [5] 개밥도둑(112.147) 22.05.20 157 0
1619 🔎질문 뉴비 한번만 더 도와주실분 [1] ㅇㅇ(180.69) 22.05.20 138 0
1618 📚정보 파이썬 계산기(3): 토큰 리스트 리턴 신촌우왕87갤로그로 이동합니다. 22.05.20 110 1
1617 🔎질문 궁금합니다 [4] ㅇㅇ(58.126) 22.05.20 107 0
1616 🔎질문 늅이 대학 과제 도와주세여... [5] ㅇㅇ(180.69) 22.05.20 214 0
1609 🔎질문 요소 찾기 도움좀 주세요 ㅠㅠㅠㅠ [2] 미침(121.168) 22.05.19 122 0
1608 일반 프로그래밍 유튜브 신기한점 [3] 키메라(112.148) 22.05.18 298 0
1604 🔎질문 딕셔너리 나 리스트 인서트 할때 [4] ㅇㅇㅇㅇㅇ(114.206) 22.05.18 127 0
1603 🔎질문 파이썬 갤러리가 프갤다음아님? [2] ㅇㅇ(1.247) 22.05.18 178 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2