기본 콘텐츠로 건너뛰기

Python Pandas DataFrame, 상관관계, 상관계수

예제
df = pd.read_csv('Salary_Data.csv')
YearsExperienceSalary
01.139343.0
11.346205.0
21.537731.0
32.043525.0
42.239891.0
52.956642.0
63.060150.0
73.254445.0
83.264445.0
93.757189.0
103.963218.0
114.055794.0
124.056957.0
134.157081.0
144.561111.0
154.967938.0
165.166029.0
175.383088.0
185.981363.0
196.093940.0
206.891738.0
217.198273.0
227.9101302.0
238.2113812.0
248.7109431.0
259.0105582.0
269.5116969.0
279.6112635.0
2810.3122391.0
2910.5121872.0

df.corr()
YearsExperienceSalary
YearsExperience1.0000000.978242
Salary0.9782421.000000

예제
df = pd.read_csv('customer_data.csv')
labelidfea_1fea_2fea_3fea_4fea_5fea_6fea_7fea_8fea_9fea_10fea_11
015498266551245.5377000.021551095151300244.948974
105900477941277.01113000.028-11003341759207.173840
205899086271298.01110000.0211-11015720011.000000
315899516871335.51151000.021151103600841.000000
40549873207NaN259000.021151084450081197.403141
..........................................
112005898819651289.01173000.021551123350702200.000000
11210589879265NaN250000.021551084450000169.000000
112205899538171220.0376000.02112905710021.000000
112305899805441250.03137000.0285905720001.000000
112405498978141415.0393000.02851134151300273.861279
c = df.corr()
labelidfea_1fea_2fea_3fea_4fea_5fea_6fea_7fea_8fea_9fea_10fea_11
label1.000000e+00-0.0246190.052071-0.0788080.055658-0.1314590.0172930.028907-0.012271-0.0212515.590642e-170.0008810.002444
id-2.461878e-021.000000-0.0948880.037017-0.011086-0.015092-0.046856-0.066836-0.0271430.025433-1.304576e-020.0239540.029668
fea_15.207118e-02-0.0948881.000000-0.0120460.004391-0.105110-0.0209770.346629-0.0301440.049951-5.500809e-020.1085050.095053
fea_2-7.880778e-020.037017-0.0120461.000000-0.2468830.2844550.0035150.0011760.003682-0.0225919.718013e-02-0.0292730.059464
fea_35.565787e-02-0.0110860.004391-0.2468831.000000-0.119909-0.0170620.1618990.2530590.0252491.285708e-01-0.1172660.066774
fea_4-1.314593e-01-0.015092-0.1051100.284455-0.1199091.0000000.035862-0.137654-0.046294-0.1054511.000482e-010.0665530.039042
fea_51.729286e-02-0.046856-0.0209770.003515-0.0170620.0358621.0000000.055280-0.0178980.003813-2.165627e-020.105127-0.101328
fea_62.890698e-02-0.0668360.3466290.0011760.161899-0.1376540.0552801.000000-0.0109710.0289636.183006e-020.2163620.128467
fea_7-1.227143e-02-0.027143-0.0301440.0036820.253059-0.046294-0.017898-0.0109711.0000000.078722-1.652961e-02-0.2454530.021797
fea_8-2.125122e-020.0254330.049951-0.0225910.025249-0.1054510.0038130.0289630.0787221.000000-1.009981e-010.0958800.133031
fea_95.590642e-17-0.013046-0.0550080.0971800.1285710.100048-0.0216560.061830-0.016530-0.1009981.000000e+00-0.038176-0.048769
fea_108.808212e-040.0239540.108505-0.029273-0.1172660.0665530.1051270.216362-0.2454530.095880-3.817559e-021.0000000.271108
fea_112.444255e-030.0296680.0950530.0594640.0667740.039042-0.1013280.1284670.0217970.133031-4.876862e-020.2711081.000000
uc = c.unstack()
uc.sort_values(kind='quicksort', ascending=False) # quicksort 방식 정렬, 내림차순
sorted = uc.sort_values(kind='quicksort', ascending=False) # quicksort 방식 정렬, 내림차순
sorted.head(20)
label   label     1.000000
id      id        1.000000
fea_10  fea_10    1.000000
fea_9   fea_9     1.000000
fea_8   fea_8     1.000000
fea_7   fea_7     1.000000
fea_6   fea_6     1.000000
fea_4   fea_4     1.000000
fea_3   fea_3     1.000000
fea_2   fea_2     1.000000
fea_1   fea_1     1.000000
fea_5   fea_5     1.000000
fea_11  fea_11    1.000000
fea_6   fea_1     0.346629
fea_1   fea_6     0.346629
fea_2   fea_4     0.284455
fea_4   fea_2     0.284455
fea_11  fea_10    0.271108
fea_10  fea_11    0.271108
fea_7   fea_3     0.253059
dtype: float64

예제
plt.scatter(df['fea_6'],df['fea_1'])














사인파형 곡선 만들기
# 사인파형 곡선이 표시되도록 라인차트를 그려보세요
# x : 0 ~ 360
# y : np.sin()

deg = np.arange(0, 360)
rad = np.radians(deg)

sinv = np.sin(rad)
cosv = np.cos(rad)

plt.scatter(deg, sinv, c='b', s=2, label='Sine Value')
plt.scatter(deg, cosv, c='r', s=2, label='Cosine Value')

plt.xlabel('Degree')
plt.ylabel('Trig.values')

plt.legend()

plt.show()













arr = np.random.normal(5,1,100) # 평균 5, 표준편차 1, 갯수 100
plt.hist(arr) # 히스토그램(데이터 빈도수 표시)
plt.show()














이 블로그의 인기 게시물

Python 인공신경망 추천 시스템(회귀)

예제 # 인공신경망을 이용한 추천 시스템 # - 순차형(Sequential) 신경망 생성법 # - 함수형(Functional) 신경망 생성법 # - 지금까지 나온 추천 방식 중에서 가장 좋은 성능 # - Regression 방식으로 분석가능 # - 영화의 평점 정보(userid, movieid, rating) # - 이용자는 영화에 대한 취향이 모두 다르다 # - 영화는 다양한 장르가 혼합되어 있다 # - 이용자는 자신의 취향에 맞는 영화에 높은 rating을 제시함 # - 어떤 이용자에게 어떤 장르의 영화를 추천할 것인가? # __call__() 함수를 가진 클래스는 파이썬 함수 callable(클래스)를 사용하면 True를 반환한다 from tensorflow.keras.models import Sequential, Model from tensorflow.keras.layers import Dense, Embedding, Input input = Input(shape=(1,)) # 함수형 신경망 생성법 hidden1 = Dense(2, activation='relu')(input) # Dense(2, activation='relu')__call__() hidden2 = Dense(2, activation='relu')(hidden1) # callable.object callable(Dense) # __call__ 함수가 있으면 True, 없으면 False # Using Functional API from keras.models import Sequential from keras.layers import * model = Sequential() model.add(Input(shape=(3,))) # Input tensor model.add(Dense(4)) # hidden layer 1 model.add(Dense(units=4)) # hidden layer 2 model.add(Dense(units=1)) # ou...

Blogger

코드 하이라이트 사이트 http://hilite.me/ 코드 <!-- 나만의 공간 --> <style id='daru_css' type='text/css'> .code {      overflow: auto;      height: 200px;      background-color: rgb(239,239,239);      border-radius: 10px;      padding: 5px 10px; } .code::-webkit-scrollbar-thumb {      background-color: grey;      border: 1px solid transparent;      border-radius: 10px;      background-clip: padding-box;   } .code::-webkit-scrollbar {      width: 15px; } </style> <!-- 나만의 공간 -->

Python 문법

제곱 c = c**2; 주석 # 주석 함수 # 함수 형식 def hello(): # 함수 선언     print("여기는 함수") # 함수 실행문 hello() # 함수 호출 #결과: 여기는 함수 def add(a,b): # 매개변수에 자료형이 필요없다     c = a+b     print(f"{a} + {b} = {c}") add(3,5) #결과 : 3 + 5 = 8 if문 if a > b:     print("a가 큽니다") 객체의 정보 dir(객체) 객체의 주소 id(객체) 생략 if 'a' == 'a':     pass # 생략 else:     pass # 생략 enumerate for i,v in enumerate(range(20, 26)):     print(i,v) display display(df)