반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

sklearn.linear regression.다차원(wine)등급 예상하기(정규화) 본문

[AI]/python.sklearn

sklearn.linear regression.다차원(wine)등급 예상하기(정규화)

givemebro 2020. 4. 10. 15:19
반응형
# 와인의 속성을 사용해서 점수 예측
import numpy as np
import matplotlib.pyplot as plt
wine=np.loadtxt('winequality-red.csv',skiprows=1,delimiter=';')
# x=전체 속성값
X=wine[:,:-1]
# y=와인 등급
y=wine[:,-1]

# lienar regression
from sklearn.linear_model import LinearRegression
model=LinearRegression()
model.fit(X,y)

#result
w=model.coef_
b=model.intercept_

print('w=',w)
print('b=',b)

'''
w= [ 2.49905527e-02 -1.08359026e+00 -1.82563948e-01  1.63312698e-02
 -1.87422516e+00  4.36133331e-03 -3.26457970e-03 -1.78811638e+01
 -4.13653144e-01  9.16334413e-01  2.76197699e-01]
b= 21.965208449448404
'''

 

plt.boxplot(wine)
pass

pred_y=model.predict(X)

plt.scatter(y,pred_y,c=y)
plt.plot([y.min(),y.max()],[pred_y.min(),pred_y.max()])
# 정규화를 하지 않아서 오류가 있음

# 정규화
X_norm=(X-X.mean(axis=0))/X.std(axis=0)


plt.boxplot(X_norm)
pass

model=LinearRegression()
model.fit(X_norm,y)

#result
w=model.coef_
b=model.intercept_

print(w,b)


'''
[ 0.04349735 -0.19396667 -0.03555254  0.02301871 -0.08818339  0.04560596
 -0.10735582 -0.03373717 -0.06384247  0.1552765   0.29424288] 
 5.636022514071305
 '''

 

plt.scatter(y,pred_y,c=wine[:,-1])
plt.plot([y.min(),y.max()],[pred_y.min(),pred_y.max()])

plt.bar(range(11),w)

반응형
Comments