人工智能課程實(shí)驗(yàn)二

有啥問題歡迎在評(píng)論區(qū)討論!
鳶尾花分類(測試代碼)
#案例二?鳶尾花分類#
from?sklearn.datasets?import?load_iris#導(dǎo)入iris?數(shù)據(jù)集
from?sklearn.neighbors?import?KNeighborsClassifier#導(dǎo)入近鄰分類算法
from?sklearn.model_selection?import?cross_val_score?#導(dǎo)入K折交叉瞼證模塊
import?matplotlib.?pyplot?as?plt?#導(dǎo)入可視化模塊
#加載數(shù)據(jù)庫
iris?=?load_iris()
x=iris.data
y=iris.target
knn=KNeighborsClassifier(n_neighbors=5)#建立5近鄰模型
scores?=?cross_val_score(knn,x,y,cv?=?10,scoring?=?'accuracy')
print(scores,"\n")
print(scores.mean())
k_range?=?range(1,31)
k_scores?=[]
for?k?in?k_range:
????knn?=?KNeighborsClassifier(n_neighbors?=?k)
????scores?=?cross_val_score(knn,x,y,cv?=?10,scoring?=?'accuracy')
????k_scores.append(scores.mean())
print(k_scores)
plt.plot(k_range,k_scores)
plt.xlabel('The?value?of?the?k?in?KNN')
plt.ylabel('accuracy')
plt.show()

案例三 房價(jià)預(yù)測
#案例三?波士頓房價(jià)預(yù)測#
import?matplotlib.?pyplot?as?plt?#導(dǎo)入可視化模塊
import?pandas?as?pd
import?numpy?as?np
#獲得普通線性模型、嶺回歸模型、套索回歸模型
from?sklearn.linear_model?import?LinearRegression,Ridge,Lasso
from?sklearn.metrics?import?r2_score
import?sklearn.datasets?as?datasets
data_url?=?"http://lib.stat.cmu.edu/datasets/boston"
raw_df?=?pd.read_csv(data_url,sep="\s+",?skiprows=22,header=None)
data?=?np.hstack([raw_df.values[::2,:],?raw_df.values[1::2,?:2]])
target?=?raw_df.values[1::2,2]
#訓(xùn)練數(shù)據(jù)
x_train?=?data[:481]
y_train?=?target[:481]
#測試數(shù)據(jù)
x_test?=?data[481:]
y_true?=?target[481:]
line=LinearRegression()
ridge?=?Ridge()
lasso?=?Lasso()
#訓(xùn)練
line.fit(x_train,y_train)
ridge.fit(x_train,y_train)
lasso.fit(x_train,?y_train)
#預(yù)測
line_y_pre?=?line.predict(x_test)
ridge_y_pre?=?ridge.predict(x_test)
lasso_y_pre?=?lasso.predict(x_test)
plt.plot(y_true,label?=?'True')
#原始房價(jià)
plt.plot(line_y_pre,label?=?'Line')
#普通線性回歸預(yù)測的房價(jià)
plt.plot(ridge_y_pre,label?='Ridge')
#嶺回歸預(yù)測的房價(jià)
plt.plot(lasso_y_pre,label?=?'Lasso')
#套索回歸預(yù)測的房價(jià)
plt.legend()
plt.show()
line_score=r2_score(y_true,line_y_pre)
ridge_score=r2_score(y_true,ridge_y_pre)
lasso_score=r2_score(y_true,lasso_y_pre)
print(?line_score,ridge_score,lasso_score)