def pearson(rating1, rating2):
sum_xy = 0
sum_x = 0
sum_y = 0
sum_x2 = 0
sum_y2 = 0
n = 0
for key in rating1:
if key in rating2:
n += 1
x = rating1[key]
y = rating2[key]
sum_xy += x * y
sum_x += x
sum_y += y
sum_x2 += pow(x, 2)
sum_y2 += pow(y, 2)
# now compute denominator
denominator = sqrt(sum_x2 - pow(sum_x, 2) / n) * sqrt(sum_y2 - pow(sum_y, 2) / n)
if denominator == 0:
return 0
else:
return (sum_xy - (sum_x * sum_y) / n) / denominator
استاد تابع پرسون که نوشتید ارور ایندکس میده مشکلم کجاست؟؟
rating1 = [ 5, 2, 1 ]
rating2 = [ 5, 5, 4 ]
print(pearson(rating1,rating2))
سلام
شما نگاه کن تو تابع دوتا ارگومان داری ولی اینجا سه تا بهش پاس دادی
بعد اینکه این تابع رو همراه کلاس به کار ببر نیاز نیست خودت رو اذیت کنی همین که بتونی تابع را تعریف کنی عالیه
و دوم اینکه من زیاد تلگرام فعال نیستم هر سوالی باشه سریع نوت ایمیل که برسه جواب می دم
با تشکر
استاد من سه تا ندادما
دو تا ارگومان دادم دیگه
rating1 = [ 5, 2, 1 ]
rating2 = [ 5, 5, 4 ]
print(pearson(rating1,rating2))
استاد لطفا یه مثالش بهم بگید...
توی قسمت ویدیو 17 که علی و احمد توضیح دادید به روی کاغذ میشه ضریب همبستگی پرسونش در اوورد ولی با این تابع نمیشه ارور ایندکس ارور و یا میده division by zero
ali=[4.75,4.5,5,4.25,4]
ahmad =[4,3,5,2,1]
سلام با کاما جدا کردی می شه سه تا و بالای تابع هم باید کتابخانه math را وارد کنین چون sqrt دارین
نمونه تابع خروجی
ممنون استاد این تابع جواب داد :)
استاد لطف میکنید تابع شباهت کسینوسی هم برام بفرستید؟؟
ممنون
سلام
با تابع قبلی هیج فرقی نداره فقط جایگذاری ها رو باید بلد باشین
توابع تو پایتون رو حتما مرور کنین