第十三次做業——迴歸模型與房價預測數組
1. 導入boston房價數據集dom
2. 一元線性迴歸模型,創建一個變量與房價之間的預測模型,並圖形化顯示。測試
3. 多元線性迴歸模型,創建13個變量與房價之間的預測模型,並檢測模型好壞,並圖形化顯示檢查結果。spa
4. 一元多項式迴歸模型,創建一個變量與房價之間的預測模型,並圖形化顯示。code
代碼:orm
#導入boston房價數據集 from sklearn.datasets import load_boston import pandas as pd boston = load_boston() df = pd.DataFrame(boston.data) #一元線性迴歸模型,創建一個變量與房價之間的預測模型,並圖形化顯示。 from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt x =boston.data[:,5] y = boston.target LinR = LinearRegression() LinR.fit(x.reshape(-1,1),y) w=LinR.coef_ b=LinR.intercept_ print(w,b) plt.scatter(x,y) plt.plot(x,w*x+b,'orange') plt.show() #多元線性迴歸模型,創建13個變量與房價之間的預測模型,並檢測模型好壞,並圖形化顯示檢查結果。 x = boston.data[:,12].reshape(-1,1) y = boston.target plt.figure(figsize=(10,6)) plt.scatter(x,y) lineR = LinearRegression() lineR.fit(x,y) y_pred = lineR.predict(x) plt.plot(x,y_pred,'r') print(lineR.coef_,lineR.intercept_) plt.show() #一元多項式迴歸模型,創建一個變量與房價之間的預測模型,並圖形化顯示。 from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=3) x_poly = poly.fit_transform(x) print(x_poly) lrp = LinearRegression() lrp.fit(x_poly,y) y_poly_pred = lrp.predict(x_poly) plt.scatter(x,y) plt.scatter(x,y_pred) plt.scatter(x,y_poly_pred) plt.show()
運行結果:blog
第十一次做業——sklearn中樸素貝葉斯模型及其應用ip
1.使用樸素貝葉斯模型對iris數據集進行花分類get
嘗試使用3種不一樣類型的樸素貝葉斯:pandas
高斯分佈型
多項式型
伯努利型
2.使用sklearn.model_selection.cross_val_score(),對模型進行驗證。
3. 垃圾郵件分類
數據準備:
嘗試使用nltk庫:
pip install nltk
import nltk
nltk.download
不成功:就使用詞頻統計的處理方法
訓練集和測試集數據劃分
代碼:
# 導入鳶尾花數據集 from sklearn.datasets import load_iris # 數據選取 iris_data = load_iris()['data'] iris_target = load_iris()['target'] # 用高斯模型進行預測並評估 from sklearn.naive_bayes import GaussianNB mol = GaussianNB() result = mol.fit(iris_data,iris_target) # 對模型進行評估 from sklearn.model_selection import cross_val_score scores = cross_val_score(mol,iris_data,iris_target,cv=10) # 對預測結果的正確個數進行計算 print("高斯模型:") print("數據總數:",len(iris_data)," 錯誤個數:",(iris_target != predi).sum()) print("Accuracy:%.3f"%scores.mean()) # 用貝努裏模型進行預測和評估 from sklearn.naive_bayes import BernoulliNB bnb = BernoulliNB() result2 = bnb.fit(iris_data,iris_target) pred2 = bnb.predict(iris_data) # 計算錯誤個數 print("貝努裏模型:") print("數據總數:",len(iris_data)," 錯誤個數:",(iris_target != pred2).sum()) #模型評分 scores2 = cross_val_score(bnb,iris_data,iris_target) print("Accuracy:%.3f"%scores2.mean()) # 用多項式創建模型進行預測和評估 from sklearn.naive_bayes import MultinomialNB mnb = MultinomialNB() result3 = mnb.fit(iris_data,iris_target) # 預測 pred3 = result3.predict(iris_data) # 計算錯誤個數 print("多項式模型:") print("數據總數:",iris_data.shape[0]," 錯誤個數:",(iris_target != pred3).sum()) # 模型評分 scores3 = cross_val_score(mnb,iris_data,iris_target) print("Accuracy:%.3f"%scores3.mean())
運行結果:
第七次做業——numpy統計分佈顯示
用np.random.normal()產生一個正態分佈的隨機數組,並顯示出來。
np.random.randn()產生一個正態分佈的隨機數組,並顯示出來。
顯示鳶尾花花瓣長度的正態分佈圖,曲線圖,散點圖。
代碼:
import numpy as np # 導入鳶尾花數據 from sklearn.datasets import load_iris data = load_iris() pental_len = data.data[:,2] # 計算鳶尾花花瓣長度最大值,平均值,中值,均方差 print("最大值:",np.max(pental_len)) print("平均值:",np.mean(pental_len)) print("中值:",np.median(pental_len)) print("均方差:",np.std(pental_len)) # 用np.random.normal()產生一個正態分佈的隨機數組,並顯示出來 print(np.random.normal(1,4,50)) print('============================================================================') # np.random.randn()產生一個正態分佈的隨機數組,並顯示出來 print(np.random.randn(50)) # 顯示鳶尾花花瓣長度的正態分佈圖 import matplotlib.pyplot as plt mu = np.mean(pental_len) sigma = np.std(pental_len) num = 10000 rand_data=np.random.normal(mu,sigma,num) count,bins,ignored=plt.hist(rand_data,30,normed=True) plt.plot(bins,1/(sigma*np.sqrt(2*np.pi))*np.exp(-(bins-mu)**2/(2*sigma**2)),linewidth=2,color="r") plt.show() # 顯示鳶尾花花瓣長度曲線圖 plt.plot(np.linspace(1,160,num=150),pental_len,'g') plt.show() # 顯示鳶尾花花瓣長度散點圖 plt.scatter(np.linspace(1,160,num=150),pental_len,alpha=1,marker='x') plt.show()
運行結果: