기본 콘텐츠로 건너뛰기

Python Sklearn load_iris

from sklearn.datasets import load_iris

예제
# iris 데이터를 로드하여 결측치, 이상치를 검사하고 이상치가
# 있다면 각 품종별 평균값으로 대치해보세요
# 위의 검사를 마치고 품종별로 색상을 적용해 산정도를 그려보세요
# 산정도에는 3개의 변수만 사용할 수 있으므로 상관계수를 확인하여
# 높은 변수를 사용하여 차트를 그려보세요
# 산정도가 정상적으로 표시되면 그 데이터를 csv 파일에 저장해보세요
# sample_iris.csv

iris = load_iris()
sample_iris = pd.DataFrame(iris.data,columns=iris.feature_names)

# 결측치 검사
sample_iris.is_null()
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
0FalseFalseFalseFalseFalse
1FalseFalseFalseFalseFalse
2FalseFalseFalseFalseFalse
3FalseFalseFalseFalseFalse
4FalseFalseFalseFalseFalse
..................
145FalseFalseFalseFalseFalse
146FalseFalseFalseFalseFalse
147FalseFalseFalseFalseFalse
148FalseFalseFalseFalseFalse
149FalseFalseFalseFalseFalse

# 이상치 시각화
plt.boxplot(df)














# 이상치 검출
rows_name = "sepal length (cm)"
desc = df.iloc[:,rows_name].describe()
Q1 = desc['25%']
Q3 = desc['75%']
IQR = Q3 - Q1
min_lim = Q1 - IQR*1.5
max_lim = Q3 + IQR*1.5
display(df[df.loc[:,rows_name]>max_lim])
display(df[df.loc[:,rows_name]<min_lim])

# 이상치를 평균으로 변경
rows_name = 'sepal width (cm)'
mean = df.loc[:,rows_name].mean()
df.loc[df[rows_name]>max_lim,rows_name] = mean
df.loc[df[rows_name]<min_lim,rows_name] = mean

# 상관계수
df.corr()
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
sepal length (cm)1.000000-0.1230510.8717540.8179410.782561
sepal width (cm)-0.1230511.000000-0.400165-0.335913-0.400176
petal length (cm)0.871754-0.4001651.0000000.9628650.949035
petal width (cm)0.817941-0.3359130.9628651.0000000.956547
target0.782561-0.4001760.9490350.9565471.000000

# 산점도 시각화
plt.scatter(df['petal length (cm)'],df['petal width (cm)'],c=df['target'])














# csv파일로 저장
df.to_csv('sample_iris.csv')

이 블로그의 인기 게시물

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 Sklearn make_blobs

from sklearn.datasets import make_blobs 예제 X, y = make_blobs(n_samples=500, centers=3, n_features=2, random_state=0) # 500개의 점을 3개로 모이게 한다, 변수는 2개, 무작위 상태는 0 X.shape, y.shape # ((500, 2), (500,)) plt.scatter(X[:,0],X[:,1],c=y,s=5) plt.show() # 학습 데이터 나누기 from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=.25, random_state=0) x_train.shape, x_test.shape, y_train.shape, y_test.shape # ((375, 2), (125, 2), (375,), (125,)) # 지도 학습 하기 from sklearn.linear_model import LogisticRegression logisticReg = LogisticRegression(max_iter=5000) # 기본 반복 100 logisticReg.fit(x_train, y_train) # 추정하기 pred = logisticReg.predict(X) # 결정계수 logisticReg.score(x_test, y_test) # 0.92 # 한글 깨짐 없이 나오게 설정 from matplotlib import rcParams # 인코딩 폰트 설정 rcParams['font.family'] = 'New Gulim' rcParams['font.size'] = 10 # 산점도 plt.figure(figsize=(10,4)) plt.subplot(1,2, 1) plt.scatter(X[:,0],X[:,1],c=y) plt.title('정답') plt.su...

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)