Python機器學習 第乙個機器學習專案

2021-10-24 08:55:14 字數 3005 閱讀 2282

資料集:

1.導入庫

import pandas as pd

import numpy as np

import matplotlib as plt

from sklearn.model_selection import train_test_split

from sklearn.model_selection import kfold

from sklearn.model_selection import cross_val_score

from sklearn.metrics import classification_report

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.linear_model import logisticregression

from sklearn.tree import decisiontreeclassifier

from sklearn.discriminant_analysis import lineardiscriminantanalysis

from sklearn.neighbors import kneighborsclassifier

from sklearn.*****_bayes import gaussiannb

from sklearn.svm import svc

2.匯入資料
names=

['separ-length'

,'separ-width'

,'petal-length'

,'petal-width'

,'class'

]data=pd.read_csv(r'd:\shujv\**\機器學習\python機器學習\iris.data.csv'

,names=names)

3.概述資料
print

(data.shape)

#資料維度

#檢視前10行

print

(data.head(10)

)#統計描述

print

(data.describe(

))

3.資料分類
print

(data.groupby(

'class'

).size(

))

發現每一類都是50個

#分離資料集

array=data.values

x=array[:,

0:4]

y=array[:,

4]validation_size=

0.2#80%訓練集,20%測試集

seed=

7x_train,x_validation,y_train,y_validation=train_test_split(x,y,test_size=validation_size, random_state=seed)

#建立模型

#演算法models=

models[

'lr'

]=logisticregression(

)models[

'lda'

]=lineardiscriminantanalysis(

)models[

'knn'

]=kneighborsclassifier(

)models[

'cart'

]=decisiontreeclassifier(

)models[

'nb'

]=gaussiannb(

)models[

'svm'

]=svc(

)#評估演算法

results=

for key in models:

kfold=kfold(n_splits=

10,random_state=seed)

cv_results=cross_val_score(models[key]

,x_train,y_train,cv=kfold,scoring=

'accuracy'

)print

('%s:%f(%f)'

%(key,cv_results.mean(

),cv_results.std())

)

執行結果:

可知,lr,knn,sv結果比較好。

svm=svc(

)svm.fit(x=x_train,y=y_train)

predictions=svm.predict(x_validation)

print

(accuracy_score(y_validation,predictions)

)print

(confusion_matrix(y_validation,predictions)

)print

(classification_report(y_validation,predictions)

)

對演算法進行評估

第乙個機器學習樣例《python與機器學習實戰》

該資料集比較簡單,但是資料相當的大。保留他原始形式是有必要的。我們通過資料標準化處理對他做簡單的處理以降低問題的複雜度 標準化的數學公式為 資料規範化詳見這個博主的 我使用的jupyter notebook編譯器 資料匯入jupyter notebook有兩種方法,一種是直接在notebook就新建...

機器學習第乙個演算法

單變數線性回歸 導包import numpy as np import matplotlib.pyplot as plt plt.rcparams font.sans serif simhei 正常顯示中文 plt.rcparams axes.unicode minus false 正常顯示符號 讀...

入門機器學習的第乙個程式!(python版)

本次實驗使用的是python語言以及scikit learn庫,實驗環境使用的是linux下的ipython。首先將新增sklearn庫中的決策樹tree 接著引入一些模型特徵,我這裡使用認的身高和是否有鬍子來作為特徵 features 而性別來作為標籤 labels 建立如下 tips 資料量越大...