<jupyter_start><jupyter_text>머신러닝 연습용 데이터 가져오기  머신러닝을 공부 할 때, 유용한 데이터셋 저장소는 아래와 같다. | 저장소 | url ||---|---||[UC Irvine 아카이브](http://archive.ics.uci.edu/ml/) | http://archive.ics.uci.edu/ml/ ||[Kaggle 데이터셋](http://www.kaggle.com/datasets) | http://www.kaggle.com/datasets ||[Amazon AWS 데이터셋](http://aws.amazon.com/ko/datasets) | http://aws.amazon.com/ko/datasets ||[Wikipedia 데이터셋](https://en.wikipedia.org/wiki/List_of_datasets_for_machine-learning_research) | https://en.wikipedia.org/wiki/List_of_datasets_for_machine-learning_research |  UC Irvine 아카이브돈 많은 아시안이 많이 사는 곳으로 유명한 얼바인. 캠퍼스 도시 얼바인에서는 데이터셋 무료나눔서비스 중이다.url을 타고 들어가면 아래와 같은 사이트를 들어 갈 수 있다.![uci 아카이브 1](./uci_capture_1.png)UCI 마스코트인 개미핥기가 반겨준다.빨간 표시 한 `view all data sets`를 클릭해 들어가면 데이터셋들이 잘 정리되어 있다.![uci 아카이브 2](./uci_capture_2.png)일단 맨 위의 데이터셋을 들어가보면 이렇저런 정보들이 있는데, 시간 날 때 잃어보고 `Data Folder`로 직행!나중에 보니 abalone은 전복이란다. 전복 종 분류 문제인듯?![uci 아카이브 3](./uci_capture_3.png)`.data` 파일에는 데이터셋이 들어 있고 `.names` 파일에는 feature명이나 데이터셋 설명이 들어 있다. ![uci 아카이브 4](./uci_capture_4.png)`.data`를 죄클릭해서 바로 다운받아도 되고, 우클릭해서 `링크 주소 복사`를 해도 된다.다운 받은 디렉토리 또는 복사한 링크 주소를 아래 url에다 넣으면 된다.<jupyter_code>import pandas as pd

url="http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data"
df=pd.read_csv(url)
print(df.head().to_markdown())<jupyter_output>|    | M   |   0.455 |   0.365 |   0.095 |   0.514 |   0.2245 |   0.101 |   0.15 |   15 |
|---:|:----|--------:|--------:|--------:|--------:|---------:|--------:|-------:|-----:|
|  0 | M   |   0.35  |   0.265 |   0.09  |  0.2255 |   0.0995 |  0.0485 |  0.07  |    7 |
|  1 | F   |   0.53  |   0.42  |   0.135 |  0.677  |   0.2565 |  0.1415 |  0.21  |    9 |
|  2 | M   |   0.44  |   0.365 |   0.125 |  0.516  |   0.2155 |  0.114  |  0.155 |   10 |
|  3 | I   |   0.33  |   0.255 |   0.08  |  0.205  |   0.0895 |  0.0395 |  0.055 |    7 |
|  4 | I   |   0.425 |   0.3   |   0.095 |  0.3515 |   0.141  |  0.0775 |  0.12  |    8 |<jupyter_text>column명이 없고 첫 행이 column으로 올라가 있다. `read_csv`의 인수를 살짝 조절해주면 된다.<jupyter_code>df=pd.read_csv(url, header=None)
print(df.head().to_markdown())<jupyter_output>|    | 0   |     1 |     2 |     3 |      4 |      5 |      6 |     7 |   8 |
|---:|:----|------:|------:|------:|-------:|-------:|-------:|------:|----:|
|  0 | M   | 0.455 | 0.365 | 0.095 | 0.514  | 0.2245 | 0.101  | 0.15  |  15 |
|  1 | M   | 0.35  | 0.265 | 0.09  | 0.2255 | 0.0995 | 0.0485 | 0.07  |   7 |
|  2 | F   | 0.53  | 0.42  | 0.135 | 0.677  | 0.2565 | 0.1415 | 0.21  |   9 |
|  3 | M   | 0.44  | 0.365 | 0.125 | 0.516  | 0.2155 | 0.114  | 0.155 |  10 |
|  4 | I   | 0.33  | 0.255 | 0.08  | 0.205  | 0.0895 | 0.0395 | 0.055 |   7 |<jupyter_text>근데 이제는 feature명이 숫자다. `.name` 파일에서 feature명을 확인해보자. | Name | Data Type | Meas. | Description|---|---|---|---|Sex | nominal |  | M, F, and I (infant)Length | continuous | mm | Longest shell measurementDiameter | continuous | mm | perpendicular to lengthHeight | continuous | mm | with meat in shellWhole weight | continuous | grams | whole abaloneShucked weight | continuous | grams | weight of meatViscera weight | continuous | grams | gut weight (after bleeding)Shell weight | continuous | grams | after being driedRings | integer |  | +1.5 gives the age in years 전복 길이, 반지름, 높이, 몸무게 등등...내가 맨날 보는 데이터는 축약형 줄임말 투성이라 정신없는데 이 데이터는 아주 친숙해서 좋다.feature도 9개 밖에 없다.<jupyter_code>names=['Sex','Length','Diameter','Height','Whole weight' ,'Shucked weight','Viscera weight','Shell weight','Rings']
df=pd.read_csv(url, header=None, names=names)
print(df.head().to_markdown())<jupyter_output>|    | Sex   |   Length |   Diameter |   Height |   Whole weight |   Shucked weight |   Viscera weight |   Shell weight |   Rings |
|---:|:------|---------:|-----------:|---------:|---------------:|-----------------:|-----------------:|---------------:|--------:|
|  0 | M     |    0.455 |      0.365 |    0.095 |         0.514  |           0.2245 |           0.101  |          0.15  |      15 |
|  1 | M     |    0.35  |      0.265 |    0.09  |         0.2255 |           0.0995 |           0.0485 |          0.07  |       7 |
|  2 | F     |    0.53  |      0.42  |    0.135 |         0.677  |           0.2565 |           0.1415 |          0.21  |       9 |
|  3 | M     |    0.44  |      0.365 |    0.125 |         0.516  |           0.2155 |           0.114  |          0.155 |      10 |
|  4 | I     |    0.33  |      0.255 |    0.08  |         0.205  |           0.0895 |           0.0395 |          0.055 |       7 |<jupyter_text>Kaggle 데이터셋 캐글은 회원가입 안하면 데이터를 안준다. 회원가입을 하고 네비게이션 바에서 `Data`를 클릭해준다. ![kaggle 데이터셋 1](./kaggle_capture_1.png)데이터셋들이 있는데 지금은 더러운 데이터를 클렌징 하는걸 해 볼 예정이라 US Mass Shooting 데이터셋을 검색해서 다운로드 받았다.![kaggle 데이터셋 2](./kaggle_capture_2.png)`.csv`파일을 받을 수 있는데 받은 디렉토리를 잘 복사해서 넣으면 된다. 여기서, `encoding`은 `utf-8`과 `cp949`가 있는데, 이 데이터는 `utf-8`에서 에러가 떠서 `encoding`을 바꿨다. `utf-8`은 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나라고 하는데 난 컴공 아니라 그런건 모르겠고 내가 알 필요 없는거같은데 일단 뇌에 넣어놓는다.<jupyter_code>url="./Mass Shootings Dataset Ver 2.csv"
df=pd.read_csv(url, encoding='cp949')
print(df.head().to_markdown())<jupyter_output>|    |   S# | Title                                | Location           | Date      | Summary                                                                                                                                                                                                                                                                                                                                                                                                 |   Fatalities |   Injured |   Total victims | Mental Health Issues   | Race   | Gender   |   Latitude |   Longitude |
|---:|-----:|:-------------------------------------|:-------------------|:----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[...]
{'fraction_non_alphanumeric': 0.2380089006098566, 'fraction_numerical': 0.08488544585462338, 'mean_word_length': 1.2906757266893167, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 20, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '352374', 'license': 'MIT', 'n_tokens_mistral': 3032, 'n_tokens_neox': 3116, 'n_words': 528, 'path': '_ipynb/2020-10-02-Post3.ipynb', 'repo_name': 'DrSprout111/DrSprout111.github.io', 'size': '6067'}