python之迴歸演算法
阿新 • • 發佈:2018-12-08
邏輯迴歸
import pandas as pda fname='E:/programCode/huigui.csv' dataf=pda.read_csv(fname) #自變數x x=dataf.iloc[:,1:4].as_matrix()#[:,1:2]中的右邊代表列取誰,左邊的代表行取誰 #因變數y y=dataf.iloc[:,0:1].as_matrix()#.as_matrix作用為將其轉換為陣列,0:1前閉後開 from sklearn.linear_model import LogisticRegression as LR#邏輯迴歸模型 from sklearn.linear_model import RandomizedLogisticRegression as RLR#隨機迴歸模型 import joblib r1=RLR() r1.fit(x,y)#用資料進行訓練 r1.get_support(indices=True)#進行特徵篩選 #print(dataf.columns[r1.get_support(indices=True)]) t=dataf[dataf.columns[r1.get_support(indices=True)]].as_matrix() r2=LR() r2.fit(t,y) print('訓練結束') print('模型正確率:'+r2.score(x,y))
決策樹(ID3演算法、C4.5演算法、CART演算法)
import pandas as pda import numpy fname='E:/programCode/lesson.csv' dataf=pda.read_csv(fname) x=dataf.iloc[:,1:5].as_matrix()#iloc[:,1:5]提取所有行,1到4列 y=dataf.iloc[:,5].as_matrix() for i in range(0,len(x)): for j in range(0,len(x[i])): thisdata=x[i][j] if(thisdata=='是' or thisdata=='高' or thisdata=='多'): x[i][j]=int(1) else: x[i][j]=-1 for i in range(0,len(y)): thisdata=y[i] if(thisdata=='高'): y[i]=1 else: y[i]=-1 #容易錯的地方:直接輸入x,y訓練 #正確的做法:轉化好格式,將x,y轉化為資料框,然後在轉換為陣列並指定格式 xf=pda.DataFrame(x) yf=pda.DataFrame(y) x2=xf.as_matrix().astype(int) y2=yf.as_matrix().astype(int) #建立決策樹 from sklearn.tree import DecisionTreeClassifier as DTC dtc=DTC(criterion='entropy')#entropy為資訊熵,即為訓練標準為資訊熵 dtc.fit(x2,y2)#進行訓練生成決策樹 #直接驗證的方式,預測銷量高低 import numpy as npy x3=npy.array([[1,-1,-1,1],[1,1,1,1],[-1,-1,-1,-1]]) rst=dtc.predict(x3) print(rst) #決策樹視覺化 from sklearn.tree import export_graphviz from sklearn.externals.six import StringIO with open('E:/programCode/dtc.dot','w') as file: export_graphviz(dtc,feature_names=['combat','num','promotion','datum'],out_file=file)#第二個引數為各特徵的名稱,第三個引數為指定檔案 #生成的dtc.dot檔案可用Gaphic轉換為PDF或其他檔案,檢視決策樹