關於我那~~搞錯的~~AI課
Ch.1 hello world+bstn homework
===
原文:https://hackmd.io/@NeoDoggy/BJnrzvUQu
[ToC]
##### 21/3/6 UPD
更新了浮點數問題也解決了NOX(nan,nan)的問題
```python=20
y=y.astype(np.float64)
```
```python=
from sklearn.datasets import load_boston
import pandas as pd
import numpy as np
from scipy import stats
import seaborn as sns
import matplotlib.pyplot as plt
def dopear(x,y):
return(stats.pearsonr(x,y))
def test(y):
for x in y:
print(x)
name=["CRIM","ZN","INDUS","CHAS","NOX","RM","AGE","DIS","RAD","TAX","PTRATIO","B","LSTAT"]
bstn=load_boston()
bsdata=bstn.data
#test(bsdata)
y=np.arange(506)
y=y.astype(np.float64)
strpos=0
for i in range(0,13):
pos=0
for x in bsdata:
y[pos]=x[i]
pos+=1
ans=dopear(y,bstn.target)
print(name[strpos],":",dopear(y,bstn.target))
plt.scatter(y,bstn.target)
plt.title(name[strpos])
plt.show()
strpos+=1
```
重新輸出結果:
```
CRIM : (-0.3883046085868116, 1.1739870821941207e-19)
ZN : (0.3604453424505427, 5.713584153079929e-17)
INDUS : (-0.4837251600283726, 4.90025998175163e-31)
CHAS : (0.17526017719029835, 7.39062317051802e-05)
NOX : (-0.4273207723732826, 7.065041586251507e-24)
RM : (0.695359947071539, 2.487228871007725e-74)
AGE : (-0.3769545650045961, 1.569982209187648e-18)
DIS : (0.24992873408590394, 1.2066117273368359e-08)
RAD : (-0.3816262306397779, 5.465932569646693e-19)
TAX : (-0.4685359335677675, 5.637733627688442e-29)
PTRATIO : (-0.5077866855375621, 1.6095094784724266e-34)
B : (0.3334608196570665, 1.3181127340751667e-14)
LSTAT : (-0.7376627261740143, 5.08110339438928e-88)
```
前五項仍然沒變
順便學習了matplotlib.pyplot中的圖表語法
並將其結合XLaunch輸出
解決了要上網輸出圖形的困擾
1. LSTAT -0.7376627261740143

2. RM 0.695359947071539

3. PTRATIO -0.5077866855375621

4. INDUS -0.4837251600283726

5. TAX -0.4685359335677675

---
##### 21/3/5
做法:
將波士頓房價相關係數導入python後將其一個個篩出來做pearson
完整程式碼如下
```python=1
from sklearn.datasets import load_boston
import pandas as pd
import numpy as np
from scipy import stats
def dopear(x,y):
return(stats.pearsonr(x,y))
def test(y):
for x in y:
print(x)
name=["CRIM","ZN","INDUS","CHAS","NOX","RM","AGE","DIS","RAD","TAX","PTRATIO","B","LSTAT"]
bstn=load_boston()
bsdata=bstn.data
#test(bsdata)
y=np.arange(506)
strpos=0
for i in range(0,13):
pos=0
for x in bsdata:
y[pos]=x[i]
pos+=1
print(name[strpos],":",dopear(y,bstn.target))
strpos+=1
```
之後在wsl運行將其輸出成檔案bstn.out
```
python3 bstn.py > bstn.out
```
輸出結果如下
```
CRIM : (-0.3848416033917936, 2.6179514699122047e-19)
ZN : (0.3605803600433967, 5.552706329816316e-17)
INDUS : (-0.48921724930603355, 8.303855716927617e-32)
CHAS : (0.17526017719029835, 7.39062317051802e-05)
NOX : (nan, nan)
RM : (0.6216919448193313, 1.92618132755546e-55)
AGE : (-0.37721717375340386, 1.4802394780025958e-18)
DIS : (0.2615333692067058, 2.332662582373424e-09)
RAD : (-0.3816262306397779, 5.465932569646693e-19)
TAX : (-0.4685359335677675, 5.637733627688442e-29)
PTRATIO : (-0.5063983052129798, 2.6020225735178517e-34)
B : (0.33379122141773765, 1.2370491438230797e-14)
LSTAT : (-0.7395048644619826, 1.1210549265969188e-88)
```
由相關係數推得前五項較為關係者為
1. LSTAT -0.7395048644619826

2. RM 0.6216919448193313

3. PTRATIO -0.5063983052129798

4. INDUS -0.48921724930603355

5. TAX -0.4685359335677675

關於如何輸出圖片:
```python=
if i==x:
qwq=0
for w in y:
print("(",w,",",bstn.target[qwq],")",sep = '')
qwq+=1
```
然後使用
https://www.mathsisfun.com/data/correlation-calculator.html
###### tags: ai